# Downgrade #23

uav1606

Журнал "Downgrade" #23

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


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

Тема этого номера – «Сделано у нас», т.е. всё про старые компьютеры и программы, сделанные на территории СССР, стран СЭВ и на постсоветском пространстве.

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

Жаль только, что всего пять авторов, включая меня…

Большую часть материала прислал Андрей Шаронов, за что ему большое спасибо.

Также я рад, что flaz14 уже фактически стал постоянным автором – в этом номере есть его интересная статья про компьютерные библиотеки.

А ещё в этом номере у нас два интервью – с Дмитрием Мостовым и мини-интервью с Виктором Ковалёвым (статья про «Интегратор Виктория»).

Как обычно, если у вас есть предложения, замечания, статьи – присылайте их на мой e-mail: uav16060 [Baskerville] mail.ru


uav1606


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


25 лет процессору Intel Pentium

22 марта 1993 года начались продажи первых процессоров Pentium.

Это были модели с частотами 60 и 66 MHz, сделанные по техпроцессу 800 нм. От своего предшественника – 80486 – они отличались несколькими особенностями:

– суперскалярная архитектура (наличие двух конвейеров, что позволяло выполнять две команды за такт);

– 64-битная шина данных;

– механизм предсказания ветвлений;

– раздельный кэш для кода и данных;

– ну и множество других улучшений.


Выставка советских синтезаторов

19 мая в рамках акции «Ночь в музее» Музей индустриальной культуры провёл выставку, посвящённую синтезаторам, цифровой ретромузыке и тому подобному.

Было представлено и компьютерное направление – Pentium с midi-клавиатурой, ZX Spectrum, 386-й компьютер с Covox, на них запускались различные звуковые программы (к примеру, FastTracker) и демки.

Небольшой фотоотчёт о выставке можно посмотреть здесь:

http://museum-ic.ru/news/noch-v-muzee-2018


20 лет Unreal

22 мая 1998 года состоялся официальный релиз игры Unreal. Революционный движок Unreal engine быстро завоевал популярность среди геймеров и стал основной множества дополнений, продолжений и даже новых игр, никак не связанных с вселенной Unreal.

В связи с юбилеем в течение 48 часов все желающие могли бесплатно получить игру Unreal Gold через Steam и GOG.


Multimatograf 2018

29-30 апреля в Вологде прошло очередное демопати Multimatograf 2018.

Принимались работы в номинациях 8bit music, ASCII/ANSI, 8bit intro 256b, 8Bit Demo и т.д.

С результатами фестиваля можно ознакомиться здесь:

http://events.retroscene.org/mf2018

Официальный сайт:

http://multimatograf.ru/


Новый PCEm v14

20 апреля 2018 года вышла новая (14-я) версия известного эмулятора старых компьютеров PCEm.

Из новшеств можно отметить эмуляцию машин Compaq Portable Plus, Toshiba T1000, IBM PS/2 Model 70, Packard Bell PB520R и многих других, поддержку новых видеокарт – ATI Korean VGA, Cirrus Logic CL-GD5429, OAK OTI-037 и др. Также были исправлены мелкие баги, добавлены дополнительные опции и т.д.

Скачать эмулятор можно с официального сайта:

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


Новый музей ретрокомпьютеров в Беларуси

На территории Белорусского государственного университета информатики открылся музей ретрокомпьютеров Bytespace.

Официальное открытие состоялось 11 апреля, было представлено более 500 экспонатов, как произведённых в СССР, так и зарубежных.

Посещение музея бесплатное, но требуется предварительная регистрация.

Официальные страницы проекта:

https://bytespace.by/

https://vk.com/bytespaceby


Звук запуска Windows 95 замедлили в 40 раз

Получилось действительно интересно – новую почти четырёхминутную «мелодию» знатоки отнесли к жанру эмбиент или чему-то похожему.

Послушать результат замедления можно здесь:

https://youtu.be/BnoX3E2WFcc


Лекция «История компьютерной графики»

26 мая в Открытой гостиной Центральной библиотеки имени М. Ю. Лермонтова прошла лекция на тему «История компьютерной графики».

Прозвучали выступления Петра Соболева aka Frog про демосцену и Тимофея Мокиенко про, собственно, историю компьютерной графики.


Длиннофокусный объектив приспособили к Nintendo GameBoy

Энтузиаст Бастиан Экелер сумел присоединить объектив с фокусным расстоянием 70—200 мм к штатной камере консоли Nintendo GameBoy.

Правда, сама GameBoy Camera имеет довольно скромные характеристики – разрешение 128x112 и исключительно чёрно-белое изображение.

Часть деталей для крепления объектива Бастиану пришлось изготовить на 3D-принтере.

Посмотреть примеры получившихся снимков можно здесь:

http://ekeler.com/game-boy-camera-canon-ef-mount/


Microsoft открыла исходники Диспетчера файлов

Microsoft опубликовала исходные коды Windows File Manager (winfile.exe) – предшественника Проводника из состава ранних Windows. Последней версией File Manager была 4.0.1381.318 из состава Windows NT 4.0 Service Pack 6a.

EXE-файл и исходники можно скачать здесь:

https://github.com/Microsoft/winfile

Исходный код доступен под лицензией MIT. Он был слегка модифицирован, чтобы File Manager можно было запустить на современных Windows (7 и выше).


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

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

flaz14

uav1606


### Интервью с Дмитрием Мостовым


Вашему вниманию предлагается интервью с Дмитрием Юрьевичем Мостовым. На постсоветском пространстве он наиболее известен, пожалуй, как автор первого отечественного антивирусного ревизора ADinf. Кроме того, Дмитрий Юрьевич работал совместно с фирмой «ДиалогНаука» при разработке антивирусного пакета DSAV, а также сделал ещё многое в сфере борьбы с компьютерными вирусами.


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


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


Как Вы впервые познакомились с компьютером? Что это была за модель?


Я очень благодарен моему отцу, Юрию Афанасьевичу Мостовому, известному физику-ядерщику, который привёз мне из Франции один из первых массовых компьютеров – 8-битный Amstrad 64. Внешне этот компьютер имел все атрибуты современного – моноблок с полноразмерной клавиатурой и цветной монитор. Правда, памяти у него было только 64 килобайта, а носитель информации – музыкальная компакт-кассета. Чуть позже раздобыл для него «родной» дисковод с уникальными нестандартными 3-х дюймовыми дискетами. Это была просто революция, позволившая поставить вместо встроенного бейсика операционную систему CP/M (предшественник MS-DOS с аналогичным интерфейсом). Но, главное, с дисководом появилась возможность использовать компиляторы с языков Pascal и даже C++!!! Компиляторы были, конечно, очень простые. И программы они компилировали «поверх себя», затирая свой собственный код в 64-х килобайтах памяти. Но мои первые программы написаны именно так.


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


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


Можете немного рассказать об истории создания ADinf? Почему Вы решили делать собственный антивирус, чья была идея и как это всё начиналось, какие были наиболее значимые этапы в разработке, какие трудности возникали? На каком языке программирования был написан ADInf (для DOS и Windows)?


ADinf? Сначала надо вспомнить и погрузиться в то время. Это было время первых персональных компьютеров и первых слов «компьютерный вирус», которые пугали, но которых никто реально пока не видел. Я тогда работал в Институте прикладной математики им. М.В. Келдыша РАН. И к нам «залетел» первый реальный вирус. Мы изучали его как некоторую экзотику, и мой большой друг Виталий Ладыгин написал против него антивирус-сканер, который назывался VirusD1. Позже мы сравнивали даты и, похоже, это была самая первая антивирусная программа, написанная в СССР! Потом появился второй, третий вирус. Виталий добавлял их в свою программу, а я наблюдал этот труд. Где-то после пятого вируса Виталий остановился. Это непростая работа, ручной анализ вирусов и их ручная обработка. А я в это время задумался, как бы сделать так, чтобы ловить вирусы автоматически. Чтобы это делала программа, а не человеческие глаза и руки. Так родилась идея программы-ревизора диска. И я написал первый ревизор Dinf (Disk Informator).

Это сегодня уже проведена классификация антивирусов, всё разложено по полочкам. Есть сканеры, есть резидентные сторожа, есть ревизоры и т.д. А тогда ничего этого не существовало. Мы шли первыми и придумывали все эти типы программ первый раз.

Dinf был написан на чистом Си, имел простейший интерфейс командной строки и все найденные различия выдавал на алфавитно-цифровой экран компьютера.


Что было потом? Потом появился первый маскирующийся стелс-вирус, и в этот день мой Dinf моментально устарел. Он работал через вызовы операционной системы и стелс-вирусы не обнаруживал. Это был вызов. И после какого-то времени раздумий я написал ревизор диска, разбирающий файловые системы FAT, читая диски по секторам через 13h прерывание (физическое чтение диска). Перехватить такой метод стелс-вирусам было невозможно. И на основе этого алгоритма был написан новый ревизор ADinf (Advanced Disk Informator, позже переименованный маркетологами ЗАО «ДиалогНаука» в Advanced Diskinfoscope).

ADinf был написан на языке Borland C++ 3.0. Причём, что было редкостью в то время у нас в стране, у меня была лицензионная копия этого компилятора. Получил её в качестве приза от фирмы Borland на одном из конкурсов компьютерных программ. До сих пор храню красивую коробку от этого компилятора.

ADinf уже получил многооконный интерфейс пользователя, работающий в текстовом режиме монитора. Я использовал свой собственный оконный пакет, который написал, работая по программе «Буран», о чём я расскажу ниже.


ADinf v10.10


Кроме Вас, разработчиками ADinf значатся  В. Ладыгин и Д. Зуев – расскажите немного об их роли в создании этой программы.


На самом деле, там указаны четверо. Ещё Александр Самотохин. Все они – мои большие друзья и коллеги по работе в Институте прикладной математики им. М.В. Келдыша РАН. О Виталии я уже упомянул ранее. Он с самого начала очень интересовался проблемой вирусов, и мы постоянно обсуждали подходы и алгоритмы поиска. Денис подключился к нашей работе чуть позже, когда перестало «хватать рук», чтобы реализовывать все идеи. Александр увлекался изучением всевозможных форматов файлов. Например, он писал программы преобразования всевозможных форматов изображений. Опять же, сегодня это делает любой стандартный редактор картинок. А в начале 90-х ничего такого не было. По рукам на дискетах и через станции BBS ходили самописные программы. Для ADinf Александр написал алгоритмы анализа файлов-документов Microsoft для поиска макровирусов. Эти алгоритмы работают и в современных версиях программы ADinf32.


Ю.П. Лященко, Д. Зуев, В. Ладыгин, Д. Мостовой 1998 год


Насколько я знаю, Вы сотрудничали с фирмой «Диалог Наука» практически с момента создания. Можете рассказать немного о её истории? Кто стоял у истоков, как она была основана? Вы общались с  И. Даниловым, с Д. Лозинским? Сотрудничаете ли с этой фирмой сейчас?


Фирма «ДиалогНаука» (пишется в одно слово) – это одно из предприятий группы компаний «Диалог», созданных в конце 80-х годов Петром и Татьяной Зреловыми. О создании этой очень необычной и интересной компании ходят легенды, написаны многие статьи. Собственно «ДиалогНауку» поднял, к сожалению недавно ушедший от нас, талантливейший организатор бизнеса Сергей Григорьевич Антимонов. Изначально это был научно- технический центр вычислительного центра АН СССР, позже переоформившийся в ЗАО «ДиалогНаука» с учредителями в лице СП «Диалог» и ВЦ РАН.

«ДиалогНаука» изначально занималась внедрением высоконаучных разработок и искала свой путь в бизнесе высоких технологий и программного обеспечения. Когда Дмитрий Николаевич Лозинский написал свой первый антивирус, знаменитый на всю страну Aidstest, «ДиалогНаука» предложила ему сотрудничество в продвижении программы. Так возникло антивирусное направление в ЗАО «ДиалогНаука», которое возглавил Юрий Павлович Лященко (сейчас заместитель Генерального директора ЗАО «DrWeb»). Где-то через год после этого, неожиданно для меня, получил предложение о сотрудничестве и я. Чуть позже мы познакомились с Игорем Даниловым и его талантливейшей разработкой, опередившей своё время на несколько лет и выросшей в современный антивирус DrWeb. Игорь тоже принял предложение о сотрудничестве с «ДиалогНаукой», и так сложился коллектив разработчиков и набор продуктов, много лет существовавший под брендом «Антивирусный набор ДиалогНауки» или на зарубежных рынках – DSAV. Этот продукт удостоился большой обзорной статьи (https://www.virusbulletin.com/uploads/pdf/magazine/1999/199906.pdf) в уважаемом английском издании Virus Bulletin.

Хотя уже больше 18-ти лет формально не работаю в фирме «ДиалогНаука», у меня очень хорошие отношения с этой компанией. Они до сих пор имеют право распространять ADinf32. За эти годы я несколько раз был приглашён и участвовал в их новогодних корпоративах. И очень благодарен им за то, что все 18 лет они обо мне не забывают и присылают шикарный подарок на каждый Новый год.


Евгений Касперский, Дмитрий Лозинский и Дмитрий Мостовой (середина 90-х годов)


Приходилось ли вам общаться с членами группы SGWW (Stealth Group World Wide) или другими вирмейкерами? Может быть, имело место какое-нибудь сотрудничество, переписка или какие-нибудь розыгрыши? Если да – расскажите, пожалуйста, подробнее.


Никогда. В нашей среде отношение к авторам вирусов всегда было крайне негативное. Я бы даже сказал, брезгливое. В своё время мы активно участвовали в конференциях сети FIDO SU.VIRUS и SU.ADINF, где встречались интересующиеся темой люди. Но если кто-то упоминал, что он писал вирус, общение немедленно прекращалось. Мы считали и считаем это нечистоплотным занятием.


Участвовали ли Вы в каких-нибудь тематических конференциях, выставках и т.д.? Расскажите про наиболее запомнившиеся Вам.


В 90-е годы проводилось много выставок и конференций, посвящённых программному обеспечению, и обязательной частью были вопросы, касающиеся антивирусной проблематики. Мы старались принимать участие практически во всех мероприятиях. Лозунг генерального директора ЗАО «ДиалогНаука» Сергея Григорьевича Антимонова звучал так: «Без PUBLICITY не бывает PROSPERITY». И компания строго следовала этому правилу. Конечно, в выставках в основном был задействован отдел маркетинга. Разработчики приезжали только на какое-то событие, вроде открытия-закрытия или пресс-конференции. Иначе некогда было бы программы писать. А вот в конференциях мы участвовали по всему миру.


Выставка SofTool'96: слева Д. Лозинский, справа И. Данилов и Д. Мостовой


Запомнились очень интересные украинские конференции в Киеве в самом начале 90-х, где я рассказывал ещё об идеях первого ревизора Dinf, и в Ялте в 1997 году, где проходила большая конференция по компьютерной безопасности. Но самой запоминающейся, конечно, была конференция журнала VIRUS BULLETIN в 1995 году (VB'95) в Бостоне, США (https://www.virusbulletin.com/conference/vb95/).

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


Докладчики конференции Virus Bulletin'95, Boston, USA (Д. Мостовой 3-й слева)


Какое количество зарегистрированных пользователей было у ADinf?


Не могу ответить на этот вопрос. Сам я не занимался его распространением и поддержкой. Пользователей было очень много, поскольку ADinf и позже ADinf32 официально были лицензированы для многих государственных организаций, начиная с ГАС «Выборы» и кончая Министерством обороны. Была бесплатная лицензия для ВУЗов и школ. Это не говоря о частных пользователях.


Как сейчас обстоят дела с ADinf? Программа продолжает обновляться? Продолжают ли её где-то использовать, поступают ли Вам заказы?


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

В результате этих изменений Игорь Данилов решил создать свою собственную компанию для разработки и продвижения DrWeb. Туда же ушли практически все сотрудники антивирусного направления ЗАО «ДиалогНаука», включая Дмитрия Николаевича Лозинского и Юрия Павловича Лященко. Так распался знаменитый в то время «Антивирусный набор». Хотя мы и сейчас дружим с Игорем Даниловым и даже иногда созваниваемся по не связанным с вирусами вопросам, но идеи создать новый комплект не возникало. У DrWeb свой бизнес, а я уже 18 с лишним лет занимаюсь совсем другим делом. Хотя совместимость продуктов поддерживается всё это время. ADinf32 мог и может управлять работой сканера DrWeb, а сканер DrWeb во всех версиях поддерживал и поддерживает протокол взаимодействия.

Что касается того, живёт ли программа. Да, вполне живёт и обновляется по мере надобности. Как ADinf родился как некоммерческая идея, так и ADinf32 продолжает существование как некоммерческий продукт. Я его поддерживаю и развиваю «для себя», при этом дав возможность всем желающим пользоваться за небольшую символическую плату. Почему за плату? Просто потому, что у меня нет возможности обеспечить массовую техническую поддержку пользователей, а без этого ни один продукт не может существовать. Тем же, кому реально нужен и интересен ADinf32, я оставил возможность его приобрести через Share-It или SoftKey. Официальным пользователям я стараюсь отвечать на вопросы немедленно. Таким образом, сейчас есть несколько тысяч легальных пользователей. Сколько нелегальных, я не знаю, поскольку несколько версий ADinf32 были взломаны, что, кстати, чуть не привело меня к решению вообще убрать ADinf32 из доступа в Сети и оставить только для себя.

Если говорить о самых интересных последних изменениях в программе, то мне интереснее всего было разбираться с изменением в NTFS, возникшим с выходом Windows 10. На дисках NTFS с большим кластером (больше 64 КБ) ADinf32 перестал работать. Собственно, драйвер Linux тоже перестал работать с такими дисками. Это было интересное исследование, которое привлекло моё плотное внимание обратно к ADinf32 на пару месяцев. Вы же знаете, что Microsoft практически не публикует ничего конкретного о деталях NTFS и всё приходится разбирать «руками». С удовольствием тогда с головой нырнул в это расследование, которое для меня сродни детективу, нашёл изменение и исправил алгоритм разбора.

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


ADinf32 v4.00 – идёт сканирование


ADinf32 v4.00 – результаты сканирования


Бывали ли какие-нибудь смешные случаи или курьёзы, связанные с Вашим ревизором?


В начале 90-х годов для того, чтобы провезти дискету самолётом, необходимо было за неделю подать заявление и передать дискету на обследование. Естественно, заниматься этим не хотелось. Приехал я в Шереметьево, лечу на антивирусную конференцию в Киев. В сумке пачка дискет. Интернета ещё не было, всё своё возили на дискетах, начиная от программ и кончая презентациями к выступлениям. На досмотре меня и повязали с дискетами. Стали изымать. Ровно до того момента, пока не посмотрели в паспорт. Настолько популярен был в то время наш «Антивирусный комплект»! Задали только один вопрос: «Тот самый?!». Получив утвердительный ответ, провели меня через VIP-зал. Естественно, с дискетами. Вот так, единственный раз в жизни воспользовался популярностью, которая была в то время.


Были ли у Вас какие-то другие проекты, кроме ADinf? К сожалению, в Интернете не нашёл такой информации.


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


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


У антивирусов-ревизоров есть своя ниша. Достаточно подробно эта тема раскрыта в «Вопросах и ответах» на сайте:

http://adinf.com/ru/faq/

Добавлю только, что связка ADinf32+DrWeb установлена на всех моих компьютерах и несколько раз реально выручала.


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


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


Существовала ли для DOS-версии явная конкуренция и борьба за клиента между ADinf и другими отечественными антивирусами, скажем, AVP?


Очень интересный вопрос. В то время мы были молодыми, с горящими глазами, изучающими новую для всего мира область. Наверное, в этом месте уместно будет немного высокопарное слово «Первопроходцами». И потому в то время, когда бизнесмены злостно конкурировали, мы с разработчиками AVP ДРУЖИЛИ. Достаточно сказать, что пару лет подряд в сентябре наша команда разработчиков из «ДиалогНауки», включая Дмитрия Николаевича Лозинского и Игоря Данилова, и команда разработчиков AVP во главе с Женей Касперским встречались на турбазе, на берегу Чёрного моря рядом с Новороссийском (откуда родом Евгений Касперский), и две недели обсуждали идеи развития антивирусов, сидя ночью на пляже у большого костра за бутылками пива или чего покрепче. А по возвращении в Москву начиналась гонка, кто быстрее воплотит идеи в коммерческие продукты.


Я слышал, Вы имели отношение к созданию отечественного космического корабля многоразового использования «Буран»?


Да, мне повезло принять участие в этом проекте. Закончив Московский авиационный институт с красным дипломом, я был распределен в НПО им. Лавочкина в Химках. Но в то время предприятия, работающие по программе многоразового корабля «Буран», имели льготу брать сверх квоты по распределению любых двух специалистов с выпуска. Так я и Виталий Ладыгин получили предложение выйти на работу в Институт прикладной математики им. М.В. Келдыша РАН. Конечно, мы с радостью согласились. Это работа, которая фактически «сделала меня». Я очень благодарен руководителю работ по «Бурану» в ИПМ Юрию Георгиевичу Сихарулидзе, профессору, доктору наук. Я научился у него очень многому.

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


Расскажите, чем Вы занимаетесь (где работаете) сейчас?


Уже 18 лет работаю в крупной зарубежной компании. Возглавляю одно из направлений разработки программного обеспечения.


Чем вы увлекаетесь помимо работы (Ваше хобби)?


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


Есть ли у вас семья, дети? Чем они занимаются?


Есть. Сын пошёл по стопам деда, моего отца. С отличием учится на физическом факультете МГУ.


Слышали ли Вы что-нибудь до этого интервью про downgrade-сообщество? Т.е. про людей, которые изучают компьютерную историю, коллекционируют и используют старые компьютеры, программное обеспечение и т.п.? Как Вы к этому относитесь? Не «ностальгируете» иногда сами? :-)


К сожалению, должен признаться, не слышал. Что касается ностальгии, то может быть и да. Всегда интересно заниматься чем-то, что делается впервые. Это касалось и антивирусов, и работы по «Бурану». Хотя и сейчас система, которую мы разрабатываем, в своей среде общепризнана одной из двух или трёх лучших в мире при многих сотнях конкурентов. Так что жизнь продолжается! И очень интересная жизнь!


Что бы Вы хотели пожелать нашим читателям?


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

И спасибо за всё, что вы делаете. И вы, и читатели, вы энтузиасты истории нашего программного обеспечения. А ведь это и правда НАША ИСТОРИЯ, а историю забывать нельзя.

Спасибо.


Большое спасибо, что поделились Вашими воспоминаниями!


Дмитрий Юрьевич Мостовой

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

uav1606

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


### Аппаратный «чит»


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

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

Но кнопка, заставляющая персонажа выстреливать очереди из любого оружия, как выяснилось, вершина айсберга. Перелистывая журнал «Моделист-конструктор», я случайно наткнулся на занимательную статью – «Синтезатор игровых ситуаций» Р. Сергеенко («Моделист-конструктор» №7'1997, стр. 18-21  – http://publ.lib.ru/ARCHIVES/M/%27%27Modelist-konstruktor%27%27/''Modelist-konstruktor'',1997,N07.[djv-fax].zip). Автор данной статьи предлагает реализовать не только быстрое нажатие одной кнопки, а «автоматизировать» последовательное нажатие нескольких кнопок, дабы вызвать суперудар или что-то в этом духе. Для этого автор разработал на логических элементах схему, состоящую из задающего генератора, счётчика-дешифратора и шифратора, формирующего сигналы, имитирующие нажатие тех или иных кнопок. Причём программирование последовательности нажатий выполняется именно в «блоке» шифратора с помощью переключателей. Для запуска и остановки такого безобразия есть переключатель – «вкл/откл». Нет – он не выключает устройство, не коммутирует тактовые импульсы, подаваемые на вход счётчика – он просто управляет сбросом. В режим «откл» счётчик-дешифратор находится в «вечном сбросе», но стоит только перевести переключатель в состояние «вкл», как счётчик начнёт бодро считать, а шифратор – имитировать нажатие кнопок.

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


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


### Формоза i810F: неофициальное дополнение к официальному мануалу


«Послушайте все! О-го-го! Э-ге-ге! Впервые за много лет непролазной трясины свершилось чудо! В кои-то веки разработан современный и конкурентоспособный отечественный продукт! Не программа! Не самолёт! Не танк! Материнская плата! В союзе с российским представительством Intel! На передовом чипсете!» – хотелось бы написать, что кричали все компьютерные журналы в 1998-м году, но... нет, не напишу, однако несколько статей, посвящённых материнской плате Formoza i810F появилось, и содержимое было примерно таким, как написал автор. Возможно, не так эмоционально, возможно, не так явно, но казалось, что посыл был именно таким. Рассказывали, что фирма «Формоза» достаточно давно занимается сборкой материнских плат по схемам и чертежам печатных плат, приходящим из-за рубежа – ни вправо, ни влево от присланных «лекал» не отступить – в общем, кривились от забугорной схемотехники российские инженеры, кряхтели, но делали. Вот только казалось, что в одном месте можно было бы сделать лучше, в другом – эффективней, а где-то бы вообще ошибку подправить, в общем, раздражение накапливалось. Да и как-то получилось, что руководство тоже стало чесать затылок: «А не разработать ли нам свой продукт?». Якобы сели, посчитали, да и получилось, что вполне возможно – по стране ходят безработные высококвалифицированные кадры с бывших оборонных заводов – вот они и разработают по дешёвке схему, платы красиво, аккуратно, а главное – грамотно разведут, и возьмут недорого – всё равно другие даже таких денег не предлагают. В общем, примерно так, судя по статьям, и получилась материнская плата Formoza i810F.


Рис. 1. Героиня обзора собственной персоной


Прошло десять лет, и автор, будучи студентом, раскопал в куче старого железа в ларьке, торгующем радиодеталями, пыльную материнскую плату. Немного потряс, осмотрел – вроде бы дорожки целы, конденсаторы, разъёмы и микросхемы чипсета на месте, выводы не погнуты, да ещё, вроде бы, болталась выкидушка от встроенной видеокарты. Вспомнились компьютеры товарищей с такими видеокарточками, и возникло острое желание материнку взять. Продавщица попросила где-то рублей 50-100 без гарантии работоспособности, на что ваш покорный слуга согласился. Материнская плата была куплена, где-то был откопан процессор, подключен блок питания, вставлена память – ключ на старт и... ничего не работает.

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

Прошло ещё шесть-семь лет, и, просматривая тогда ещё Молоток.ру, автор узрел примерно такую же материнскую плату. Вспомнились давние институтские приключения, захотелось всё же заполучить чудо отечественной промышленности, так что, материнская плата была заказана. Кроме того, к ней шёл процессор (Celeron 500 МГц), что уже радовало – если что, как минимум одной проблемой при запуске будет меньше. Как ни странно, после получения платы эксперименты сразу не начались – плата вылёживалась до лета прошлого года, когда автор снова захотел-таки собрать компьютер типа тех, что были у его товарищей в 2002-2004-м году. Начал искать подходящую материнскую плату, а заодно заглянул и в свои запасники. Не сказать, что само наличие платы удивило – удивило больше, что за плата – за два-три года после покупки и название платы, и почему плата показалась такой интересной начисто выветрилось, а тут – такая находка.

Почему-то запомнилось, что брал подобие 6VIA85 – средняя материнская плата – Socket 370, AGP, PCI, ISA... вот только незадача – ни AGP, ни ISA нет, зато есть встроенное видео, встроенный звук, наклейка российской компании и статьи в интернете, повествующие о встающей с колен отечественной электронике.

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


Так о чём же молчит мануал?

Мануал когда-то нашёл редактор журнала, за что ему огромное спасибо. Сейчас этот документ можно скачать по ссылке https://yadi.sk/i/Fh9jb2DFeJQLH – специально сходил, проверил – ссылка работает. Также в отсканированном виде выкладывал Mihail-1 – его сканы можно увидеть на «Полигоне призраков», в теме, посвящённой материнской плате:

http://www.phantom.sannata.ru/forum/index.php?t=17422&st=10

«Но о чём же молчит-то мануал?» – нетерпеливо спросит читатель? А молчит он о сущей мелочи – распиновках разъёмов на материнской плате. В мануале рассказано, как установить частоту шины, множитель процессора, планки памяти, описываются настройки CMOS, но не описываются разъёмы-гребёнки для подключения выкидушек для видео, звука, game-порта (звук и игровой порт сидят на одном разъёме), мыши.

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

Проблема с распиновками гребёнок видео и звука решилась руководством к материнским платам PC-Partner:

http://pcpart1.narod.ru/pinout.htm

Для удобства, данные по распиновкам разъёмов VGA, аудио и game-порта и гребёнки PS/2-мыши приведены в таблицах ниже.


Таблица 1. Разъём VGA


Таблица 2. Разъём игрового порта и аудио


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


Таблица 3. Разъём PS/2


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

Для проверки же остальных распиновок автор прозванивал мультиметром выводы VCC и GND. Собственно, этого хватило, чтобы убедиться в совпадении купленной выкидушки для VGA (см. рис. 2) и разъёма, поэтому с подключением монитора к материнской плате проблем не возникло.


Рис. 2. Вот такой «переходник»-выкидушка и используется для подключения монитора к таким материнским платам. Оказалось, что не особо редкая вещь


Также не возникло проблем и с PS/2 – у автора было несколько планок с таким разъёмом – одну из них переделал под указанную выше распиновку, что решило проблему с мышью. Сложнее всего оказалось со звуком – у местных продавцов стандартных выкидушек такого плана не было, а курочить творение от ASUS было жалко. Наконец автор просто купил подходящий разъём PBD-26 и аудио-разъём 3,5 мм. «Звуковые» выводы разъёма были подключены к выводам 25 и 26 PBD-26, а вывод общего провода – к 24-му выводу того же PBD-26. Получилась конструкция, показанная на рис. 3. Собственно, в метаниях «купить – не купить» прошёл год с начала эпопеи и только сейчас сделан такой «переходник».


Рис. 3 Самодельная выкидушка – для установки в корпус компьютера не пойдёт, зато для экспериментов – самое то


Поехали?

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

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

Дальше, собственно, ничего сложного не возникло – был подключен жёсткий диск на 10 ГБ, на который была установлена русская версия Windows 98 SE. Драйвера были, видимо, взяты или с диска, который выкладывал Mihail-1, или же с сайта «Формозы», который сейчас доступен через Web-архив. Брались драйвера от F810-AT. В составе были:

• Драйвер чипсета – Intel Chipset Software Installation Utility 4.10 Build 1012.

• Драйвер дисковой подсистемы Intel ATA Storage Driver 6.20.

• Драйвер встроенной видеокарты Intel Chipset: Chipset Graphics Driver Software 6.7.

• Драйвер встроенной звуковой карты Avance AC’97 Audio Setup (4.70) – файл alc200_98.exe.

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

С установкой драйверов, кроме звукового, проблем не возникло – инсталлятор нормально запускался, самостоятельно всё настраивал и максимум, что требовал – перезагрузки компьютера. Со звуковыми драйверами такого не получилось. Возможно, что у них есть привязка к CD-ROM, поэтому инсталлятор нормально не отрабатывает. Поэтому драйверы на звуковую карту были установлены посредством диспетчера устройств. При установке также не был найден самостоятельно файл alcxwdm.sys – для этого самостоятельно укажите папку win98gold в каталоге драйвера. Автору этого хватило, чтобы звуковая карта была нормально установлена и начала воспроизводить звук, как в плеере, так и в играх.


Заключение

Что можно сказать в заключение? В принципе, собранная на основе материнской платы конструкция оказалась вполне себе работоспособной. Встроенная видеокарта и имеющиеся процессорные мощности позволили запустить пару трёхмерных игр – AirXonix и Quake 3 Arena – ни в одной из игр автор не чувствовал дискомфорта из-за тормозов. Единственное неудобство было решено подключением оптической мыши ☺. По самой же материнской плате можно отметить не очень крепкий разъём для процессора – выступ, за который должна цепляться застёжка крепления кулера, такое ощущение, отломился.

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

Так что если вам не очень критично наличие слота ISA и хочется чего-то не очень навороченного, вполне возможно, что данная материнская плата приглянется и вам.

Ну и напоследок хочется выразить надежду, что фирма «Формоза» также продолжает разработку и сборку собственных плат, что было бы весьма приятно.


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


### Эпопея принтера Robotron K6314


Народный комбинат Robotron выпускал достаточно много различных печатающих устройств. Наибольшую известность в наших широтах получила серия К6311-6314 или же СМ6329 – специальная маркировка для Советского Союза. Унифицированные корпуса, блочная конструкция позволили создавать достаточно широкий спектр печатающих устройств – удобных в эксплуатации или легко адаптируемых под конкретную ЭВМ. Снималось и заменялось практически всё:

• интерфейс сопряжения с компьютером;

• печатающая головка;

• модуль с прошивкой.

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

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

• Centronics – для обычного LPT-порта (для экспорта в капиталистические страны существовала вставка со стандартным 36-пиновым разъёмом);

• V.24 – фактически RS-232 – также в варианте как с собственным 26-пиновым разъёмом, так и с DB-25;

• IFSP – интерфейс ИРПР;

• IFSS – интерфейс ИРПС или «токовая петля».

Кроме того, для экспортных моделей серии Prasident существовали адаптеры интерфейсов компьютеров Commodore C64, а также компьютеров Atari.

Одной из наиболее удачных моделей стала K6314 – принтер формата А3 поставлялся с интерфейсной вставкой Centronics с 39-пиновым разъёмом, но с фирменным кабелем для стандартного LPT-порта. Это, а также наличие адаптера для катушек печатной машинки и поддержка системы команд принтеров Epson и IBM Graphics делало данный принтер неплохим выбором для счастливого обладателя IBM PC-совместимого компьютера в начале 90-х.

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


Начало

Как принтер попал в Пермь, неизвестно. Похоже, что уже изначально он комплектовался вставкой под Centronics, возможно, и родным кабелем. На этикетке родного модуля прошивки написано, что устройство предназначено для Болгарии. То ли предназначался для Болгарии, но привезли в Россию, то ли ещё на Балканах принтер успел побывать вначале. Пользователь принтера быстро смекнул способность устройства работать с лентами от механических печатных машинок, потому вкрутил соответствующий адаптер. Другой, за ненадобностью, или выкинул, или потерял, или же ещё чего. В какой-то момент, видимо, достали и вставку. Зачем? Может быть, попался более компактный принтер формата А4, у которого был какой-то другой (из трёх оставшихся) интерфейс, или же просто подвело интерфейсную вставку, что она не фиксировалась болтами и где-то вылетела. Так или иначе, но автор приобрёл принтер в следующей комплектации:

• собственно, сам принтер;

• модуль с прошивкой 4.46 для Болгарии;

• адаптер для ленты печатной машинки.

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


Рис. 1. Принтер К6314 собственной персоной. Собственно, сейчас выглядит он также, но внутри более комплектен ☺


Увы, в далёком 2006-м году столь некомплектное устройство запустить не получилось. Были мысли подпаяться к выводам внутреннего разъёма и собрать плату адаптера Centronics на Z80PIO и двух шинных формирователях, но риск испортить кривыми ручками (а принтер включался и уверенно проходил самотест) то, что ещё работало, останавливал порывы.

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


Эпопея оживления. Часть первая

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


Рис. 2. Найденная вставка. Надпись CEN указывает на нужный интерфейс


Вставка была взята, но, как было сказано выше, нестандартный разъём делал задачу подключения не намного проще. Что делать? Возможно, получится найти разъём? А, может быть, кабель отдельно от принтера? А может... Вот как раз «может» – у разъёма был шаг 2,54 мм – раньше такой разъём (даже просто 39 штырьков в три ряда по 13) мог представлять проблему, но сейчас... Сейчас продаётся разъём типа PBS или BLS, который прекрасно воткнулся в разъём интерфейсной вставки. Оставалось только взять три штуки и подсоединить к кабелю. Был взят кабель, три разъёма BLS, которые обжал товарищ, и разъём DB-25M. Кабель делал согласно статье А. Белухи из журнала «Радиоаматор» №5 за 2002 г. (вторая часть цикла):

http://www.ddrservice.info/f0z/Journals/Radioamator/2002/ra2002_05.pdf

Соответствие контактов показано в таблице 23 статьи и таблице 1 (думаю, никто против не будет).


Таблица 1. Соответствие выводов разъёма DB-25 со стороны компьютера выводам 39-контактного разъёма интерфейсной вставки принтера


Буквенные ряды считаются снизу вверх – самый верхний ряд – С, самый нижний – А. Вот, из коммуникационного кабеля, купленного в радиомагазине, отдельного разъёма DB-25 с корпусом и трёх разъёмов PBS, подстриженных до 13 пин, был сделан первый вариант кабеля.

Увы, с испытанием не заладилось – при включении печати пробной страницы или текста из ворда при любой системе команд – хоть Epson, хоть IBM Graphics – принтер печатал какую-то околесицу и хаотично проматывал лист. Были подозрения на провод, но прозвонка показывала, что всё соединено правильно. При этом, если вставить интерфейсную вставку Centronics в заведомо рабочий СМ6329.01 и соединить его спаянным кабелем с компьютером, всё печаталось отлично. Что можно было предпринять? Например, переставить модуль прошивки с СМ6329.01 на К6314. Сказано – сделано – переставил, решил проверить самотест, и... Принтер напечатал только одну букву и дальше всё.

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


Эпопея оживления. Часть вторая

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


Рис. 3. Вверху – модуль с родной прошивкой для Болгарии, внизу – модуль для СССР


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

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

Подключаем назад? Да. Ещё до порчи принтера перестановкой прошивки PBSы были заменены родным разъёмом производства RFT. Найден разъём был на eBay.de по запросу или RFT, или DDR – уже не помню. Причём, с третьей попытки – в первый раз были куплены корпуса разъёмов, которые сейчас лежат в кульке. Во второй раз пришли похожие разъёмы, но в два раза больше.

И только в последний – третий раз удалось приобрести нужный разъём в составе платы и ещё одного разъёма. Казалось, что лот содержит только одну плату, но на деле пришла целая коробка, где кроме нужной платы была ещё парочка, поролон с воткнутыми советскими процессорами и контроллерами и ГДР-овскими микросхемами мелкой логики. Кроме того, в комплекте был целый кулёк полярных конденсаторов, болтов и гаек, которые так и лежат у товарища в ящике, хотя конденсаторы спасали не раз ☺.

Нужный разъём же был припаян к кабелю (см. рис. 4).


Рис. 4. Теперь установлен родной разъём – хоть и не аутентичный кабель, но и не «сопли»


Немного о настройке принтера под Windows 3.11

Для чего покупался принтер в далёком 2006-ом году? Для подключения к 486-му компьютеру и запуска под Windows 3.11. А раз сейчас у нас есть и рабочий принтер, и кабель к нему, и 486-ой компьютер, то почему бы не собрать всё вместе и не попробовать запустить?

Так и поступим. Первое, что нужно будет сделать – сконфигурировать принтер, благо, множество переключателей это позволяет сделать. За основу была взята статья С. Косенко и С. Рыбкина «Стыковка принтера Robotron с компьютером IBM PC». Журнал можно взять, например, тут:

http://radiolub.ru/page/zhurnal-radio-2001-3

В данной статье описывается стыковка принтера с компьютером через последовательный интерфейс V.24 или RS-232. В нашем же случае используется интерфейс Centronics, поэтому с помощью первой части статьи А. Белухи из журнала «Радиоаматор» №4'2002  (http://www.ddrservice.info/f0z/Journals/Radioamator/2002/ra2002_04.pdf) «раскладка» переключателей была несколько изменена – см. таблицу 2.


Таблица 2. Положение переключателей на передней панели принтера


Как и в статье С. Косенко и С. Рыбкина, принтер настраивается на работу в системе команд Epson. Автору показалось, что с системой команд IBM Graphics принтер «мажет». Возможно, что такой эффект можно убрать, если поколдовать с настройками драйвера в Windows, но оказалось проще выставить систему команд Epson. Более того, в упомянутой выше статье Косенко и Рыбкина о режиме IBM Graphics не говорится вообще.

Теперь же приступим к установке принтера на Windows 3.11. Для начала откроем панель управления в программной группе «Главная» или «Main» и щёлкнем по ярлыку «Принтеры». Откроется диалоговое окно добавления принтера. Если сейчас нажать кнопку «Добавить», развернётся список доступных принтеров (см. рис. 5).

Косенко и Рыбкин предлагают использовать драйверы от Epson FX-80 – именно этот драйвер сейчас установлен, как вы можете видеть на рисунке, однако драйвера от Epson FX-85 также оказались работоспособны. И, как видно на рис. 5, доступен вариант для узкой и широкой каретки (автор пробовал широкую и остался, в принципе, доволен).


Рис. 5. Список доступных принтеров


При нажатии на кнопку «Соединить» откроется меню выбора порта подключения принтера. Здесь вы можете выбрать нужный порт, но это более критично при подключении через RS-232. Снятие галочки «Быстрая печать прямо в порт», на взгляд автора, ни на что не повлияла.

Зато много интересного находится в диалоговом окне, открываемом по нажатию кнопки «Параметры» (см. рис. 6).


Рис. 6. Диалоговое окно «Параметры» – достаточно много всего интересного


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


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


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

Одной из проблем печати на «Роботроне» оказались большие отступы от края. На СМ6329.01 это решалось механически с помощью лотка бумаги – можно было подобрать положение листа так, чтоб отступ был 20-30 мм от края. Однако в составе К6314 не было лотка, да и изображения его в интернете не удалось найти – только на обложке документации на принтер. Во всех объявлениях о продаже принтер отдавался без чего-либо напоминающего лоток. Единственный раз, когда принтер продавался с лотком, был установлен лоток для листов А4. В остальном же принтер оказался вполне работоспособен.


Заключение к далеко не короткой заметке

Изначально автору хотелось сделать действительно короткую и сухую заметку о принтере Robotron K6314. Написать, что их оказалось достаточно много на постсоветском пространстве, что, возможно, везли их из Болгарии, а, возможно, часть делалась специально для СССР. Что провод с разъёмом DB-25 и совместимость систем команд с Epson и IBM Graphics, а заодно и возможность работать с лентой для печатной машинки делали принтер неплохим выбором для начинающего и небогатого пользователя IBM PC. Заодно и помянуть родную прошивку – всякие были.

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

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


Рис. 8. Robotron K6314 в составе рабочего места


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


### Карманные библиотеки: из прошлого в прошлое. Часть 1


Введение

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

На самом деле, «Библиотека в кармане» (мне в своё время попалась 11-я версия) – не единственная электронная библиотека, сделанная у нас. Мне же просто не довелось тогда познакомиться с другими.


Библиотека в кармане 11

Библиотека содержит тонны оцифрованных книг и несметные богатства фольклора того времени (в т.ч. компьютерного). Книги – обычные текстовые файлы в кодировке CP-866. Длина каждой строки – не более 80 символов. Таблицы, схемы, рисунки – всё выполнено в псевдографике. Некоторые книги были набраны не сплошным текстом, а явно разбиты на страницы с номерами в предполагаемых уголках. Таким образом, не только содержание книг, но и их форма представляют большую ценность. В принципе, читать их можно на самом древнем персональном компьютере.

Графическая оболочка проливает чуть-чуть света на издателей библиотеки. Так, в свойствах исполняемого файла в поле Производитель значится «DescoFury Labs», а в Товарные знаки – «TRI Group». Поиск в Сети по этим названиям не приводит к фирмам, имеющим отношение к издательскому делу. Видимо, делали оболочку «на коленке». Причуд у неё хватает. :)

Главное окно представляет собой таблицу:


Но сколько я не щёлкал по заголовкам граф, не получалось отсортировать записи ни по автору, ни по названию, ни по чему-либо ещё.

Список последних открытых книг хранится не в реестре и не в пользовательском каталоге, а прямо в C:\WINDOWS\library3.ini. Так что в Windows XP попытка открыть книгу закончится неудачей:


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


C:\> COPY /B /Y NUL C:\WINDOWS\library3.ini

C:\> CACLS C:\WINDOWS\library3.ini /E /G "Пользователи":F


Windows XP у меня русская, так что вместо Users понадобилось написать Пользователи (к слову, если собираетесь открыть доступ всем, т.е. гостевым пользователям тоже, то вместо Everyone надо писать Все).

Проверим:


C:\> CACLS C:\WINDOWS\library3.ini

C:\WINDOWS\library3.ini BUILTIN\Пользователи:F

BUILTIN\Опытные пользователи:C

BUILTIN\Администраторы:F

NT AUTHORITY\SYSTEM:F

HOME-3608C77559\admin:F


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


Для плавного скроллинга требуется: процессор с частотой более 500 МГц

Для субпиксельного супер скроллинга требуется: процессор с частотой выше 1 ГГц и быстрая видеокарта


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


├── 001

│   ├── 100HOURS.RAR

│   ├── 10JERTVA.RAR

│   ...

├── 002

│   ├── GAGANIE.RAR

│   ├── GOROSKOP.RAR

│   ...

├── 003

│   ├── 12CHAIRS.RAR

│   ├── 1LETTER.RAR

│   ...


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


Другие библиотеки


TView

Эта версия «Библиотеки в кармане» выходила на DVD (2,59 ГБ). Производитель – «Classic Fond, code by Denis Zhulitov». А исполняемый файл называется просто: TView.exe. Конечно, TView не похоже на имя программы, это, скорее всего, стандартное название компонента в среде программирования Borland Delphi.


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


├── ACTION

│   ├── 501.rar

│   ├── 7daysmay.rar

│   ...

├── ACTS

│   ├── can_norm.rar

│   ├── constits.rar

│   ...

├── ADVENTUR

│   ├── 10mill.rar

│   ├── 15brave.rar

│   ...

...


В целом, DVD-версия – вполне удачная компиляция существующих материалов.


HighCastle

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


Downgrade!

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

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

С другой стороны, так ли уж нужно осовременивать старые книжки? Ведь вместе с появлением преимуществ вроде безболезненного изменения размера шрифта в зависимости от диагонали экрана, работающего как набор гиперссылок оглавления, выделения полужирным шрифтом и т.п. книги потеряют текстовый колорит. А для его сохранения нет иного пути, нежели downgrade.

Хорошо было бы не ограничиваться ОС MS-DOS, а сделать так, чтобы посещение библиотеки оставалось простым и понятным и в древних Unix'ах, и даже в VMS вместе с Amiga'ми. Придётся отказаться от архивов RAR, поработать с разными языками командной строки (и, возможно, написать на них несколько утилит), тщательно следить за совместимостью имён файлов и каталогов, чтобы обходить ограничения конкретных файловых систем. Да и консольные программы в старых ОС не такие мощные по сравнению с современными (например, утилиты от GNU содержат массу полезных расширений). Так что путь предстоит долгий. Поговорим о нём в следующий раз. А на сегодня – всё!


flaz14


### Виктория – значит победа


Когда я впервые познакомился с компьютерами (было это в начале 90-х), стандартными файловыми менеджерами на них были Norton или Volkov Commander. Ну, в крайнем случае, как некая экзотика, иногда попадался DOS Navigator. Другие оболочки тех времён как-то прошли мимо меня.

Поэтому, случайно наткнувшись недавно на программу с интересным названием «Интегратор Виктория», я был достаточно сильно удивлён. Как оказалось, в 90-е годы она была достаточно популярна, про неё писали статьи, её устанавливали на новые компьютеры и т.д. Да и сделана эта программа была качественно и добротно. Не говоря уже о том, что это был не просто файл-менеджер, а многофункциональная программа с кучей возможностей.

Давайте познакомимся с ней поближе.


Где скачать и как установить?

Скачать программу можно здесь:

http://old-dos.ru/index.php?page=files&mode=files&do=show&id=4060

Там доступны портативные версии 1.6, 1.9, а также установочная дискета версии 1.9.

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

Все описываемые ниже эксперименты я проводил на версии 1.9, её вам и рекомендую установить.

Установить «Интегратор Виктория» проще всего с установочной дискеты – можно и на эмуляторе. На DOSBox, после монтирования дискеты командой IMGMOUNT A: путь_и_имя_образа –t floppy, всё установилось нормально.

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

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


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


Документация

Найти документацию на «Интегратор» оказалось крайне непросто. К счастью, она сохранилась у Виктора, создателя сайта http://radiopicture.listbb.ru/, и он любезно согласился мне её прислать. Огромное ему за это спасибо!

Само руководство пользователя разделено на две книжки, причём нумерация страниц у них сквозная. То есть первая книжка заканчивается на 162-й странице, вторая же начинается с 163-й.

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

Правда, руководство к версии 1.8, а я нашёл только 1.9, но практически вся информация подходит и для неё.

Документация выглядит следующим образом:


Вверху – лицензионное соглашение. Да, бумажное – эра электронных тогда ещё не началась. :-)

Я отсканировал эти руководства (вместе с лицензионным соглашением) и выложил тут:

http://old-dos.ru/index.php?page=lib&do=show&id=546

Извиняюсь за плохое качество – спешил выпустить номер, да и сканер у меня не очень…

Кроме того, «Виктории» было посвящено много статей в журнале «КомпьютерПресс» – к примеру, в №6 за 1991 год и в №4 за 1992 год.

Кстати, «КомпьютерПресс» также занимался и распространением программы.


Файл-менеджер

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


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

На первый взгляд можно подумать, что это типичный клон Norton Commander, но это не так – отличий очень много. Хотя некоторые горячие клавиши совпадают. Например, копирование/перемещение делается через F5/F6. F3/F4 – просмотр и редактирование. А вот чтобы создать каталог или файл, нужно нажать Insert. Показать экран DOS (убрать панели) – F2. Быстрый поиск по именам файлов включается нажатием Backspace. Выбор диска – Alt+1 и Alt+2.

Выход – F10. Управление панелями – F7.

Интересная особенность «Интегратора» – все функциональные клавиши (F1-F10) в комбинациях с Alt/Ctrl/Shift свободны, на них можно назначить пользовательские макрокоманды (например, запуска каких-нибудь программ).

На панелях может быть выведено содержимое каталога, дерево каталогов, система меню (см. ниже) или содержимое текущего файла:


Для смены атрибутов есть специальный режим (Файл–>MSDOS-атрибуты файлов), в котором меняется вид панелей и назначение функциональных клавиш:


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

Также в «Интеграторе Виктория» есть достаточно мощная система ассоциаций файлов – можно отдельно настроить, какая программа будет запускаться при нажатии Enter, F3 или F4 на файле с определённым расширением. (Настраивается это в меню Конфигурация–>Операции по типу файла.)

Более того, для каждого файла, нажав Ctrl+Enter, можно вызвать нечто вроде контекстного меню, где можно выбрать для открытия ассоциированную с другим расширением программу:


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

Пару слов о встроенном просмотрщике и редакторе. И тот, и другой поддерживают шестнадцатеричный режим:


Кроме того, в редакторе есть все стандартные функции: работа с блоками, форматирование абзацев, поиск с заменой, печать (причём и в графическом режиме!).

Жаль, нет поддержки других кодировок (кроме 866) и размер файла ограничен 63 КБ.


Система меню

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

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

Попробуем, к примеру, создать пункт меню, который будет вызывать для выбранного в правой панели файла «Слово и дело», а по завершению его работы куда-нибудь копировать файл.

Чтобы перейти в режим редактирования меню, нажимаем F7 и выбираем «Меню». Переходим, если необходимо, с помощью Tab в панель «Корневое меню», оно у нас должно быть пустое. Жмём Insert, выбираем «Пункт». Вводим название и описание пункта меню. Появится редактор действий «Содержание пункта». Пишем там следующее (тот значок вводится через Ctrl+F) :


Выходим через F10. Собственно, всё. Теперь мы можем выбрать в правой панели какой-то файл, Tab’ом перейти в панель меню, нажать Enter. Запустится «Слово и дело», после выхода выбранный файл отправится в C:\Backup.

Но это, конечно, только вершина айсберга, возможностей на самом деле намного больше. В комплект поставки программы входят примеры построения меню. Чтобы их подключить, нужно набрать следующее (до запуска «Интегратора»):


SUBST S: полный_путь_директории_EXAMPLE

SET USERSYSTEM=S:\

SET VICONFIG=S:\CONFIG.VIC


Должен загрузиться пример меню, можете полазить по пунктам, посмотреть, как всё организовано. Пароли, если они понадобятся, показываются внизу экрана («I», «Q», «P» и т.п.).


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


Дополнительные возможности

Кроме всего перечисленного, в программе есть ещё много интересного.

Например, тренажёр клавиатуры:


«Интегратор Виктория» умеет форматировать дискеты:


Настроек немного, только выбор объёма.


В оболочке есть встроенный архиватор, правда, работает он только со своим собственным форматом ARV. С архивами можно работать как с обычными директориями.

Можно создавать самораспаковывающиеся архивы.


В версии  1.9 в меню Файл добавился пункт Текстовые документы, который запускает некую «Систему ведения деловых бумаг»:


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

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


А ещё в «Интеграторе Виктория» есть система восстановления удалённых файлов:


Ф-у-ух, я аж устал перечислять все возможности «Виктории». Хотя, вообще, это ещё и не все, но пока хватит. :-)


Немного истории

В заключение хотелось бы немного рассказать об истории программы.

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


uav1606: Расскажите, с чего началась разработка программы, когда была выпущена первая версия? Как возникло название программы?


Виктор Ковалёв: Первый серийный экземпляр был продан 19 августа 1991 года.

Это была некая альтернатива, среднее между Norton Commander и DosShell. «Виктория» – по двум причинам: я Виктор и, как мне казалось, по функционалу это была победа (прорыв). Эх, молодость. :)

Интегратор – потому что умела запускать внешние программы с параметрами по заданному бизнес-алгоритму (сейчас бы это назвали BPM).


На каком языке программирования была написана «Виктория»?


Написана на ассемблере в Обнинске в ФЭИ (первая атомная), сначала для своих рабочих нужд. Кстати, дольше всех использовалась на Билибинской атомной – аж до 2000 г.


Как развивался проект дальше?


В начале девяностых была такая фирма-сборщик компьютеров «Аквариус» (типа международная). Они купили одними из первых в России интеллектуальные права на «Викторию» для OEM-предустановки на все выпускаемые компьютеры.

В 1995 вышел нормальный Windows. Век алфавитно-цифровых решений пошёл на спад.  В 1998 я из наукограда уехал покорять Москву. На том проект «Виктория» и закончился.


Какая была последняя версия программы?


Прошло 25 лет. Номер последней версии просто не помню. Но точно «Виктории» 2.0 не было. :)


Много ли копий программы было продано?


В 1991 году (с августа по декабрь) было продано чуть более 10 000 (за счёт OEM), если не ошибаюсь, по 450 р. По числу копий мы уступали только бесплатному Лозинскому, но в несколько раз опережали «Лексикон» Жени Веселова. Потом легальные покупки пошли на спад – приблизительно по 2 000 в год с затуханием. Лихие 90-е убивали лицензионный софт.


Не думали ли Вы попробовать сделать что-то аналогичное для Windows?

Ведь двухпанельные файловые менеджеры для Windows пользуются определённой популярностью, скажем, Total Commander или Far.


«Волков», Total, Far появились через 2-3 года после «Виктории». Но меня это не сильно интересовало. Названное ПО относится к файл-менеджерам – реальных задач оно не решает. А «Интегратор» был ориентирован на бизнес-пользователей для создания среды управления бизнес-задачами. То, что в нём был и свой файл-менеджер, так это для администратора-настройщика оболочки и, как мне казалось, составляло приблизительно 30% полезного функционала.

А когда появился работоспособный графический Windows, я уже увлёкся технологиями ГИС и профессиональными СУБД (Oracle, Sybase...).


У Вас в то время были ещё какие-то проекты под DOS?


Я работал в вычислительном центре ФЭИ начальником лаборатории САПР. В том числе с нуля разработал операционную систему для двухпроцессорного графического комплекса ГРАФИТ с векторной графикой. Получил государственную премию им. Лейпунского за программы для лазеров с ядерной накачкой. Первоначальная идея интегратора появилась при разработке тренажеров для БЩУ атомной станции и для подготовки персонала управления реакторами подводных лодок. Другими словами «Интегратор Виктория» – это побочный продукт профессиональной деятельности.


Большое спасибо за ответы!


uav1606

В. Ковалёв


### Неприятности на ровном месте, или Работа старой CuneiForm и HP ScanJet 5P


Понадобилась мне для опытов CuneiForm, да не любая, а версия 2.95, что была выпущена в 1995-м году, если верить сообщениям инсталлятора. Ну, скажет читатель – скачал и поставил – эка невидаль. Согласен – примерно так и сделал. Скачал с old-dos версию 2.95b, установил на компьютер. После этого поставил родной софт от ScanJet 5P, о котором уже писал и в статье, посвящённой сканерам, и при описании возни с «Русским офисом» – нигде программа не подводила, а тут – не желает с ней CuneiForm работать, и хоть ты тресни. Причём уже CuneiForm 96 работает без проблем, а более старая – артачится. А с другой стороны именно у второй версии есть функции, которых уже нет у более поздних. Поэтому понадобилось запустить такую связку – CuneiForm 2.95 и ScanJet 5P – к сожалению, другого планшетного сканера, который можно подцепить к старому компьютеру, у меня нет. Придётся выкручиваться тем, что есть.

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


Заход первый, или Знакомство с DeskScan II

Собственно, получив сообщение об ошибке, я и не подумал сперва бодаться с норовистой программой. Самым простым решением было перезагрузить компьютер, но пара перезагрузок не дала никакого результата – сообщение от CuneiForm о том, что она не может получить доступа к TWAIN-источнику, не уходило. Но так как версия бета, то сообщение об ошибке было списано именно на «сырость» программы. В релизе должны поправить. С релизом повезло – удалось найти нужную версию на одном из сборников (сейчас архив доступен на Old-dos: http://old-dos.ru/dl.php?id=17359), но и она также жаловалась на ошибку получения данных о TWAIN-источниках.

Что делать? В процессе гугления ошибки, сканера и сообщений о проблемах с несчастной CuneiForm, я нашел вот такую статью: https://www.ixbt.com/digimage/sj5p0s2.html – автор как раз заводит HP ScanJet 5P, с такой же платой SCSI-контроллера от SYMBIOS (она штатная ☺)... под OS/2. И, как ни странно, добивается работоспособности не только сканера под полуосью, но и работоспособности запущенных под Win-OS/2 FineReader 1.3 и CuneiForm 2.95. Вот это дела! А как? Может быть, полуосевая программа для работы со сканером имеет более совместимый TWAIN, чем программы от HP? Может быть, но автор также поставил HP DeskScan II – для получения цветных сканов. А, может быть, и мне попробовать?

Автор указывал, что использовал версию 2.2, но файловый поисковик вывалил более позднюю – 2.3, но русскую. Решено было ставить её.

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

Что делать? Может быть, найти версию поновее, но способную запуститься под Windows 3.11? Можно взять, например, DeskScan II 2.4 или даже 2.5? Можно! Вот только одна незадача – 2.4 удалось найти только китайскую (ftp://ftp.dyu.edu.tw/pub/Hardware/stuff/scanner/HP/Classic/DeskScan/2.4/sj124tc.exe), а 2.5 в начале установки стала заявлять о том, что версия Windows явно не та, что требуется. Приехали? Но ведь автор помянутой статьи как-то обошёл эту проблему? Да, он воспользовался драйвером контроллера от OS/2, но и у нас есть драйвер, и его можно попытаться поставить ручками. В дистрибутиве DeskScan II 2.4 находим такой файл: ASPI416.SYS – это драйвер штатного контроллера на основе микросхемы 53C416. Его нужно будет скопировать на нашу систему и прописать в config.sys (ага, это я сейчас такой умный – на самом деле я скопировал не только этот файл, но и до кучи SYM53416.SYS, SYM53416.MPD и SYM53416.INF, но они, видимо, для Windows 95).

Четыре файла из дистрибутива были сложены в каталог C:\Symbios, а в config.sys была прописана строка DEVICE=C:\SYMBIOS\ASPI416.SYS

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

Что ж, теперь устанавливаем программу DeskScan (снова ☺ – я удалил 2.3, когда пытался поставить более новые). При установке нам нужно указать, что мы используем свою плату, для которой уже установлены ASPI-драйверы. Когда появляется диалог с описанием конфигурации (рис. 1), нажимаем кнопку «Изменить».


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


Мне подумалось, что сейчас откроется диалог по типу тех, что используется Microsoft в установщике Windows, но запустился отдельный мастер, который спросил меня о модели сканера (рис. 2), каталоге установки (рис. 3), названии группы в Диспетчере программ (рис. 4), и только потом был задан вопрос «А контроллер SCSI у Вас какой?», где и нужно было выбрать «Свой с отдельным драйвером» – см. рис. 5.


Рис. 2. Нажав кнопку «Изменить» мы попадаем в «объятия» настоящего мастера, который в отдельных диалогах спросит нас о том, какой у нас сканер...


Рис. 3. ...куда необходимо поставить программу...


Рис. 4. ...как назвать программную группу...


Рис. 5. ...и только под конец осведомится, какая же у нас плата контроллера


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

Всё установлено, выключаем компьютер, снова втыкаем контроллер, подключаем сканер, запускаем снова и... Сканер обнаруживается и становится доступен программе. Теперь с помощью DeskScan мы можем сканировать изображения (хоть утилита диагностики и сообщает о проблемах). Но можем ли мы сканировать в CuneiForm?

Запускаем программу, вызываем диалог настройки сканера Действие–>Выбор сканера. Выбираем интерфейс TWAIN, вызываем список доступных устройств, а там... пусто. CuneiForm не видит ни сканера, ни обслуживающего сканер софта. Что делать? Возможно, что нужна более старая версия DeskScan? Ведь в списке ISIS-драйверов не значится даже ScanJet 3, а наш DeskScan готов работать даже с четвёртым. Попробуем скачать всё же версию 2.2.


Заход второй, или DeskScan II именно 2.2

Так где же найти эту версию? И тут случайно удалось найти страничку, посвящённую драйверам и программам для HP ScanJet:

http://mikescamp.us/VisualTopic/orig/ref_soft.htm

В таблице приведены названия файлов дистрибутивов различных версий DeskScan, утилит копирования, PaperPort и других программ, которые поставлялись со сканерами HP. Увы, указаны только англоязычные версии драйверов и утилиты, которые, видимо, предполагались для англоязычных пользователей – ни русских версий DeskScan, ни усечённых версий CuneiForm не было представлено. Но зато удалось узнать название файла дистрибутива DeskScan II 2.2 и найти его на одном из FTP-серверов:

ftp://ftp.uni-potsdam.de/pub/systems/win95/drivers/scanner/sj121en.exe

Архив скачан, запущена инсталляция. Снова нам приводят конфигурацию по умолчанию (рис. 6). Для изменения настроек нажимаем кнопку «Modify».


Рис. 6. Настройки по умолчанию, но в этот раз на английском


И снова нас ведёт мастер, который также спрашивает об адресе установки, программной группе (о модели сканера спросили раньше) и, наконец, доходит до выбора платы (см. рис. 7). Также выбираем свою плату.


Рис. 7. Выбираем что угодно, но не плату от HP ☺


Ещё одна тонкость – все файлы должны находиться в папке с названием Disk1. Иначе могут возникнуть проблемы на этапе копирования. Когда же копирование закончено, создана группа в Диспетчере программ, казалось бы, можно вздохнуть спокойно и перезагрузиться, но при загрузке драйвер сканера сообщил, что он лично сканера не видит. Данная проблема решилась заменой файла SJIIX.SYS. Он также был взят из китайской версии DeskScan II 2.4, но помещён в папку C:\SYMBIOS, и в config.sys строчка вызова этого драйвера была исправлена на C:\SYMBIOS\SJIIX.SYS

После этого система начала опознавать сканер.

Если сейчас вызвать диалог настройки CuneiForm, программа сразу обнаружит TWAIN-устройство (см. рис. 8).


Рис. 8. Как только Вы выберете TWAIN в качестве интерфейса работы со сканером, программа сама выведет название источника


Можно нажать кнопку «Сканер» и открыть список всех устройств, где DeskScan также будет указан (см. рис. 9).


Рис. 9. DeskScan II в списке TWAIN-источников


Теперь, если нажать в окне программы кнопку «Скан & распозн» или «Скан & показ», откроется окно DeskScan II (см. рис. 10) и тут же запустится пробное сканирование.


Рис. 10. Диалоговое окно DeskScan с результатом предварительного сканирования


Если нажать кнопку «Final», сканер сделает итоговое сканирование, а результат передаст вызвавшей программе. Увы, CuneiForm оказалась достаточно привередливой к разрешению получаемого изображения. Мне так и не удалось настроить нужное разрешение в диалоге DeskScan, поэтому я поступил радикально – отключил вызов диалога сканирования в настройках работы со сканером (доступен по кнопке «Установить» в диалоге, показанном на рисунке 8) – см. рис. 11. Теперь CuneiForm сама передаёт параметры сканирования.


Рис. 11. С такими настройками CuneiForm уже сама определит необходимые параметры, и не будет выводить при сканировании диалог DeskScan


Как видно из рис. 12, вполне получилось отсканировать листок с распечатанным текстом. Так что такая связка вполне работоспособна.


Рис. 12. Текст отсканирован и готов к дальнейшей обработке


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


### Вездесущий Stylus


Среди достоинств переводчика ПРОМТ частенько отмечается «дружелюбность» программы не только по отношению к пользователю, но и к соседним софтинам. После установки переводчика пользователь получает возможность перевести не только в основном окне программы, но и в других программах, которыми он пользуется повседневно. Конечно же, классикой является интеграция с Microsoft Office – установка панелек в Word и Excel, но на этом возможности ПРОМТа только начинаются. Современная версия встраивается в браузер, скайп, аську. Кроме того, говорили об интеграции с системами распознавания текста, словарями и программами проверки орфографии. Когда-то автор ради того, чтобы увидеть, как будет работать переводчик вместе со словарем, установил в компанию к PROMT XT «Лингво» 8.0, но так и не понял, что нужно делать дальше, чтоб заставить две программы работать вместе.

Со временем узнал о существовании версии переводчика для Windows 3.x под названием Stylus. Ещё тогда возник вопрос об интеграции со сторонними программами. Stylus 2.0 интегрировался с вордом достаточно мудрёно, и полученный результат не радовал. В дальнейшем оказалось, что более поздние версии, например, Stylus 2.5 из комплекта Stylus Lingvo Office, уже встраивают в Word полноценные панели инструментов, с помощью которых можно запустить переводчик из редактора. Кроме того, описанный пакет показал, что Stylus  может интегрироваться не только в продукты Microsoft, но и с другими программами, например, с Fine Reader и Lingvo. Но одно дело, когда речь идёт о программах, поставляемых в рамках единого пакета, а другое – когда речь заходит об интеграции отдельно установленных программ. Сможет ли Stylus подхватить уже установленную систему распознавания текста, словарь или что-то ещё? Этому посвящён настоящий обзор.


С чем может интегрироваться Stylus

В принципе, про более поздние версии PROMT и Stylus 3.0 для Windows 95 писали, что они могут интегрироваться со следующими программами:

• Распознавалками текста ABBYY FineReader и CuneiForm.

• Электронными словарями ABBYY Lingvo, «Контекст» и «Мультилекс».

• Системой проверки орфографии ОРФО.

Для опытов было решено использовать следующие программы:

• CuneiForm 2.95.

• Контекст 2.0.

• ОРФО 3.5.

• Lingvo 4.0 и 4.5.

Все программы можно скачать с сайта old-dos.ru, откуда, собственно, они и были взяты. Кроме интеграции с перечисленными программами, решено было проверить, опознают ли Stylus, а также CuneiForm «Дела в порядке». Популярные программы зарубежного производства – в первую очередь продукты Microsoft (не только Word и Excel, но и, как выяснилось, даже MS Works и Visual C++) – программа легко опознаёт и добавляет кнопку быстрого запуска на специальной панели, а вот как поведёт она себя с программами российского производства?

Во избежание проблем, все программы, в которые предполагается интегрировать Stylus, кроме «Дел в порядке», были установлены до переводчика и, по возможности, интегрированы с Word.

Кроме того, для полноценного испытания CuneiForm были установлены драйвера и программы от сканера HP LaserJet, с которого предполагается ввести англоязычный текст для распознавания, либо текст на русском, чтобы перевести его на английский язык. К сожалению, CuneiForm 2.95 отказалась работать с поставляемыми вместе со сканером драйверами, и пришлось установить для неё DeskScan 2.2, настройке которого посвящена отдельная статья.

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


Устанавливаем переводчик

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

В общем, как вы уже поняли, чтобы нормально поставить Stylus, нам придётся воспользоваться дискетами. Автор выбрал версию 2.21 (http://old-dos.ru/dl.php?id=9014) и пакет обновления до версии 2.51 (http://old-dos.ru/dl.php?id=9015). Для корректной установки достаточно записать на дискеты только установочный комплект версии 2.21. В принципе, на этом проблемы с установкой заканчиваются. Вместе с программой идёт файл SERIAL, где, кроме серийного номера программы, приводятся некоторые слова из руководства, которые инсталлятор может Вас спросить. Обычно при первой установке вы сразу найдёте нужное слово. Если же программа спрашивает Вас слово, которого нет в данном списке (первая цифра перед словом обозначает страницу, а вторая строчку – автор не сразу понял такую хитрость ☺), перезапустите инсталлятор. После хитрых проверок остаётся только ждать, когда всё будет установлено. Также инсталлятор предложит Вам интегрировать поддержку Word, если он установлен на компьютере. Видимо, версия поддерживает только Word 6.0, максимум ещё Word 2.0. Интеграцию с 7-ым (из 95-го офиса) предлагают только более поздние версии переводчика.

Обновление до версии 2.51 можно уже устанавливать с жёсткого диска. Программа просто проверит наличие предыдущей версии Stylus’a, а потом установит в ту же папку свои файлы. Интересно, что после обновления в программной группе переводчика будут соседствовать два ярлыка – от версии 2.21 и версии 2.51 (см. рис. 1).


Рис. 1. Программная группа Stylus. Как видно, в одной группе соседствуют ярлыки двух версий


Ещё одно интересное новшество версии 2.51 – она может интегрироваться не только с Word (пусть даже с 6.0 и 7.0, как это делала версия 2.5 из состава Stylus Lingvo Office), но и с Excel – поддерживаются Excel 5.0, а также Excel 7.0 из MS Office 95.

Также может возникнуть такая проблема – даже если Вы производили установку Stylus’a на русском языке, при первом запуске программа откроется с английским интерфейсом. Не беда, в меню опций, вызываемых командой Options–>Preferences (см. рис. 2), можно изменить язык интерфейса на русский


Рис. 2. Меню настроек Stylus


Теперь программа может разговаривать с нами на русском (см. рис. 3).


Рис. 3. Главное окно программы Stylus 2.51 на русском языке


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

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


Интеграция с программами Microsoft Office

Как было сказано выше, настроить интеграцию с программами Microsoft можно уже при установке программы: Stylus 2.21 предлагает интегрировать функции перевода в MS Word 6.0, Stylus 2.51 также поддерживает Word 7.0 и Excel 7.0 из пакета Microsoft Office 95 и Excel 5.0.

Однако если пользователь не успел при установке настроить интеграцию с нужными программами, либо желает что-то изменить, диалоговое окно доступно по команде Опции–>Поддержка приложений (см. рис. 4).


Рис. 4. Окно настройки интеграции с программами Microsoft Office


Если пользователь желает встроить панель Stylus в то или иное приложение Microsoft, он перемещает его название в правый список. При этом программа задаёт вопрос о локализации данной версии Word или Excel.

После чего при запуске Word и Excel получают панели Stylus (см. рис. 5 и 6 соответственно).


Рис. 5. Панель Stylus в Word


Рис. 6. Панель Stylus в Excel


Однако интеграцией отечественного продукта с основными программами Microsoft удивить трудно – к 1995-му году это умела практически любая офисная программа, произведённая на постсоветском пространстве. Даже первые две версии «Сократа», входящего в состав «Русского офиса», имели возможность добавлять панельку в Word, а что говорить про Stylus? Куда интереснее посмотреть, как данный переводчик интегрируется с другими программами, о чём и будет рассказано дальше.


Интеграция с другими программами

Как было сказано выше, Stylus может интегрироваться с системой оптического распознавания символов, электронным словарём и системой проверки орфографии. Диалоговое окно настроек, отвечающее за интеграцию с данными программами, можно открыть с помощью команды Опции–>Сервис. По команде откроется диалоговое окно, показанное на рис. 7.


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


В данном диалоговом окне единственное, что может сделать пользователь, это выбрать тот или иной программный продукт в каждом из трёх выпадающих списков. Адрес установки выбранной программы Stylus должен определить самостоятельно. При этом, как выяснилось, программа должна быть именно установлена, а не скопирована без инсталляции. Так получилось со словарями. Автор попытался натравить программу на скачанные и распакованные «Контекст» 2.0 и Lingvo 4.5. Lingvo 4.0 вообще была установлена из дистрибутива, однако во всех случаях переводчик не находил словари, о чём он сообщал после нажатия кнопки OK (см. рис. 8).


Рис. 8. Словарь не найден – такой результат выдавала программа для «Контекста» 2.0 и «Лингво» версий 4.0 и 4.5. Словари установлены в директории C:\CONTEXT, C:\CONTWIN – «Контекст», и C:\LINGVO, C:\WLINGVO – «Лингво». Кстати, «Лингво» 4.0 устанавливался с помощью инсталлятора


Зато удалось нормально установить дистрибутив «Контекста»: http://old-dos.ru/dl.php?id=16886 (автор его нашёл несколько позже, чем начал эксперименты), но для этого образы пришлось также расписать на дискеты. Правда, сама программа располагается только на первой дискете, а словарь общей лексики на второй и третьей, чего для начального этапа может хватить. Также удалось выяснить, что словарь компьютерных терминов располагается на пятой дискете. Так как словари устанавливаются индивидуально, думаю, нет смысла записывать на дискеты их все. Хотя, автором был также установлен и словарь русских синонимов с четвёртой дискеты.


Рис. 9. После того, как Stylus обнаружил и установил словарь, становится активным пункт «Справочный словарь»


CuneiForm 2.95 же и ОРФО 3.5 без каких-либо проблем и дополнительных манипуляций были подхвачены «Стилусом». После чего в главном окне программы стали активными новые кнопки (см. рис. 10) – вызов системы распознавания символов – кнопка OCR, и проверка орфографии – рядом с кнопкой OCR неактивна – она станет активной только тогда, когда появится текст.


Рис. 10. После интеграции с программой сканирования и распознавания текста и проверки орфографии в главном окне Stylus появляются новые кнопки: OCR – вызов распознавалки текста, а рядом с ней – проверки орфографии. Последняя кнопка станет активной только тогда, когда в окне переводчика появится текст.


Кроме того, становятся активными пункты меню, отвечающие за запуск системы распознавания текста и настройку проверки орфографии: Сервис–>Запуск OCR и Опции–>Орфография. Если первая команда меню дублирует появившуюся кнопку, то вторая открывает диалоговое окно настройки проверки орфографии (см. рис. 11). Данное окно позволяет выбрать используемый для орфографической проверки словарь. Похоже, что сама программа проверки не используется. Хотя, как показали эксперименты с MS Works, трудно определить, когда проверяет орфографию сама ОРФО, а когда – встроенные средства программы. По крайней мере, диалоговое окно замены неизвестного или ошибочного слова одинаковы в обоих случаях. Другое дело, что Stylus, похоже, вообще не располагает собственным орфографическим словарём.


Рис. 11. Диалоговое окно проверки орфографии


Теперь же хочется проверить эту интеграцию в действии. Для этого запускаем CuneiForm нажатием на кнопку OCR, и перед нами открывается основное окно программы (см. рис. 12).


Рис. 12. Основное окно программы CuneiForm 2.95


Средствами данной программы мы можем отсканировать и распознать текст. Для сканирования был использован HP ScanJet 5P, который уже описывался в статье, посвящённой сканерам, в 18-м номере журнала и участвовал в испытании «Русского офиса» в 21-м номере. Заодно со сканером в экспериментах будет принимать участие и первая страничка аппнота, использованная для проверки FineReader и «Сократа».

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

• запустить сканирование с распознаванием;

• открыть уже отсканированный (в нашем случае, например, средствами OmniPage или DeskScan) файл;

• запустить только сканирование.

Мы выберем третий вариант. Если у Вас настроена работа через TWAIN-интерфейс, будет вызвано диалоговое окно сканирования, где можно выбрать, например, режим сканирования и запустить само сканирование документа. Автор, казалось бы, настроил работу со сканером через TWAIN, и программа, вызванная из диспетчера задач, действительно сканировала изображение, но вот незадача – когда программу вызвал из Stylus’a, она зависала на этапе получения изображения из сканирующей программы. Проблему удалось решить, установив интерфейс сканирования AccuPage в меню выбора сканера (см. рис. 13). И только после этого всё заработало.


Рис. 13. Не знаю, как читатель, а я подумал, что AccuPage – марка сканера, настолько нестандартного, что с ним невозможно работать ни через TWAIN, ни через ISIS, а оказалось, что это, похоже, тоже интерфейс взаимодействия со сканером...


Наконец, после окончания сканирования результат будет передан программе распознавания (см. рис. 14).


Рис. 14. Отсканированная страница ждёт распознавания


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


Рис. 15. Приглашение к выделению области распознавания текста


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


Рис. 16. Идёт распознавание...


Распознанный текст будет открыт во встроенном редакторе программы и доступен для корректировки и исправления. К сожалению, выделить блок текста и просто выбросить не получится, но исправить неправильно распознанную букву можно (см. рис. 17). Более того, Вам даже покажут фрагмент скана оригинала, чтобы Вы смогли своими глазами разобрать, какая же должна быть буква. Ведь алгоритм не совершенен, а человеческому глазу и мозгу такая задача – раз плюнуть. Ну, или два раза – всё равно одну буковку-то можно разглядеть. Тем более, есть встроенные средства коррекции.


Рис. 17. Встроенный редактор CuneiForm для предварительного исправления распознанного текста


Но мы сейчас говорим не о самой программе CuneiForm, а о её взаимодействии со Stylus. Вот тут возникла действительно заминка. Ведь по опыту общения со Stylus Lingvo Office мы помним, что Fine Reader имел заветную кнопочку «Передать результаты распознавания в Stylus». Может быть, попытаться найти нечто подобное здесь?

Увы, но CuneiForm может экспортировать результаты распознавания только в текстовый файл, Word, Excel, закинуть в базу данных через драйвер ODBC (да, и такое может) и Lotus Ami Pro поддерживает, а вот со Stylus’ом незадача. Тогда, может быть, просто выделим и скопируем текст? Но и тут не повезло – выделить мышью весь текст в редакторе не получится. Как же тогда быть?

К сожалению, с CuneiForm 96 – действительно никак. Самое простое, что можно сделать – воспользоваться экспортом результата распознавания в Word и из него вызывать уже Stylus. В конечном итоге именно так поступил «Русский офис» – все операции выполнялись в окне текстового редактора. Однако для CuneiForm 2.95 есть другое, неявное, но в чём-то даже красивое в своей дерзости решение – нужно просто закрыть программу... Да, закрыть, не сохраняя текста. Просто она при выходе спросит – следует ли передавать результат распознавания вызвавшей CuneiForm программе или нет (см. рис. 18).


Рис. 18. Так отдаём «Стилусу» распознанный текст или так закроемся?


Рис. 19. Та же самая ситуация с CuneiForm 96 – если нажмёте «Да» – программа закроется, а Stylus не получит ничего


И, в случае согласия пользователя, Stylus получит результат работы CuneiForm и может производить с ним какие-либо дальнейшие действия (см. рис. 20).


Рис. 20. Текст передан Stylus’у и открыт в виде отдельного документа


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

Как видно, после того, как в окне Stylus’a появился текст, стала активной кнопка проверки орфографии, находящаяся рядом с кнопкой запуска OCR. Нажмём её, чтобы запустить проверку орфографии. Как только программа найдёт неизвестное или написанное с ошибкой слово, откроется диалоговое окно исправления (см. рис. 21).

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


Рис. 21. Диалоговое окно исправления ошибки


Когда же проверка орфографии будет закончена, программа выдаст об этом сообщение (см. рис. 22).


Рис. 22. Проверка орфографии закончена. Можно переходить к переводу


После того, как мы проверили введённый текст, давайте попробуем перевести его на английский язык. К сожалению, на панель инструментов выведены кнопки для перевода текущего и следующего абзаца. Можно ещё выделить весь текст и нажать кнопку перевода выделенного фрагмента. Но можно и перевести всё и сразу командой Перевод–>Весь текст. В этом случае окно документа разделится надвое и в нижней половинке отобразится текст, переведённый программой (см. рис. 23). Если программа использовала некириллический шрифт, вместо русского текста будут кракозябры, что легко решается выделением текста и установкой шрифта с поддержкой кириллических символов. Автор выбрал Arial Cyr.


Рис. 23. Конечно, таланты переводчика не особо велики, но всё же кое-что он действительно перевёл


Казалось бы, а что в этой идиллии делать электронному словарю? Но есть и для него работа. Если Вам не нравится, как переведено конкретное слово, вы можете выделить его и вызвать словарь. Например, автору не понравился перевод выражения closed-loop (обратная связь). Вот его-то и решено проверить с помощью «Контекста». Выделяем словосочетание и запускаем словарь командой Сервис–>Справочный словарь. Запускается словарь – в данном случае «Контекст» – и ему передаётся слово (см. рис. 24).


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


После перевода результат можно сохранить либо в формате документа Stylus, либо в одном из доступных текстовых документов. К сожалению, формат MS Word не поддерживается – только RTF, как и не получится перебросить текст лёгким щелчком мыши по какой-либо кнопке или пункту меню. Для этого нужно было вызывать переводчик из ворда.

После экспериментов с системой распознавания текста, словарём и системой проверки орфографии оставалось только одно – проверить, распознает ли программа «Дела в порядке» своего питерского собрата. Увы, здесь нас ждёт разочарование. По крайней мере, доступная на old-dos.ru демоверсия переводчика не опознаёт, хотя сразу добавляет кнопки запуска Word и Excel (см. рис. 25). К сожалению, также не подхвачена CuneiForm – ни среди кнопок, ни в меню текстового редактора не удалось найти возможности вызова OCR. Хотя, например, производитель декларировал возможность интеграции с FineReader.


Рис. 25. Увы, но «Дела в порядке» Stylus’a не признают, хотя, вроде бы обе программы были разработаны питерскими программистами. Зато софт мировых брендов сразу подхватывается


Переводим откуда угодно

Кроме возможности вызвать переводчик из Word и Excel, Stylus предлагает ещё два варианта интеграции – быстрый перевод содержимого буфера обмена и механизм связи с любым приложением через DDE. Начнём с более простого варианта – буфера обмена. Думаю, читатель уже начал подозревать «неладное» – скопировать из любой программы и вставить в окно Stylus’a – невеликая проблема, но раз автор заостряет внимание... Правильно – для работы с буфером обмена в состав Stylus 2.51 включен отдельный инструмент – Stylus Launcher. Запустите его из группы программы, и в левом верхнем углу экрана появится маленькая кнопка вызова переводчика (см. рис. 26).


Рис. 26. После запуска Stylus Launcher в левом верхнем углу появляется кнопка запуска усечённой версии программы


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


Рис. 27. Перевод содержимого буфера обмена осуществляет усечённая версия Stylus. Как видите, есть кнопка проверки орфографии, а вот запуска OCR нет


Другой вариант предполагает установку динамической связи с приложением. В своё время (аж в далёком 2005-м, когда автор только ступал на тернистый путь даунгрейда, и умудрился выцыганить на форуме ffd5-25.net дистрибутив 2-го «Стилуса») казалось, что это единственный метод интеграции переводчика и ворда. Способ весьма сложный, но он поддерживался в программе, как минимум, до версии 2.51, правда, в хелпе этой версии информацию о динамической связи достаточно далеко упрятали, но возможность есть ☺.

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

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

Итак, после запуска двух программ, необходимо в редактор поместить текст для перевода, а в окне Stylus вызвать диалог установки связи командой Сервис–>Связи. Если программа поддерживает DDE, то она сразу будет подхвачена (см. рис. 28).


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


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


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


После этого переходим в ворд, выделяем текст и копируем... Ничего не напоминает? Но всё идет немного не так – окно Stylus автоматически активируется и самостоятельно запускает процесс перевода (см. рис. 30). Причём открывается такое же окно перевода буфера обмена, как и по нажатию кнопки.


Рис. 30. Stylus самостоятельно запустился и перевёл текст


Но как же передать перевод обратно ворду? Скопировать и вставить? Нет – за это отвечает пункт меню «Вернуть перевод». Окно Stylus закрылось, а в Word’e действительно уже красуется русский текст. Чтобы разорвать связь, откройте снова диалоговое окно, выделите в списке слева документ, из которого брался текст, и нажмите кнопку «Отменить связь». Связь будет разорвана.

Мудрено, не так ли? Увы, тогда автор не предполагал, что есть какая-то возможность встроить кнопки запуска Stylus’a напрямую из Word, да и сама мысль держать запущенными одновременно две далеко нелегковесных программы на 386SX40 с 4 МБ оперативной памяти не вызывала оптимизма. Поэтому при первой же возможности был сделан выбор в пользу первой версии «Сократа», которая также должна быть открыта при переводе документа из Word (возможность запускаться при нажатии на кнопку панели инструментов сделали только во второй версии), но вызывалась более простым способом – как раз кнопкой из панели инструментов.


Переводчик вам в помощь!

Осталось поговорить ещё об одном продукте, который, правда, идёт особняком. Думаю, вы уже догадались – о переводчике файлов помощи – Stylus Help Reader. Хоть он и не входит в комплект Stylus 2.51, но в более поздних версиях таки будет включен в состав PROMT. Ещё один интересный факт о данном переводчике – это, наверное, последний продукт ПроМТ для Windows 3.11 – инсталлятор показывал год разработки 1996, в то время как версии 2.21 и 2.51 были выпущены в 95-м году.

Скачать данный переводчик можно также с сайта old-dos.ru:

http://old-dos.ru/dl.php?id=860

После завершения установки инсталлятор попросит о перезагрузке Windows, после чего вы увидите запущенный резидент – как раз Stylus Help Reader (см. рис. 31).


Рис. 31. Stylus Help Reader после перезагрузки Windows – если бы речь была о Windows 9x, сказал бы, что значок весит в трее, но здесь просто свёрнутое приложение ☺


Теперь остаётся только открыть файл помощи какой-нибудь англоязычной программы. У автора, например, установлен StuffIt Expander – вот его помощь и попробуем перевести. Открываем файл и ищем, где же спряталось меню перевода. Оказалось, что оно доступно в пункте меню «Редактирование» (см. рис. 32). Как видим, здесь присутствуют строчки «Translate» и «Translate all».


Рис. 32. Stylus Help Reader встроил свои пункты в меню справки Windows


Чтоб не мелочиться, запускаем перевод всего документа командой Редактирование–>Translate all. Тут же открывается небольшое окно, в которое помещается текст страницы помощи, и где в дальнейшем окажется перевод документа (см. рис. 33). Конечно, виделось нечто более эффектное с заменой текста в самом окне помощи, но и так переводчик выглядит вполне себе симпатично.


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


Заключение

Что можно написать в заключение? Ещё раз отметить, что разработанный компанией ПроМТ переводчик показал себя молодцом. Создан действительно мощный, достаточно удобный, хоть и тяжеловесный продукт, но способный стать если не центром домашнего офиса (в данном случае на центр претендует MS Word ☺), то серьёзным его компонентом. Программа, как выяснилось, обладает не только средствами интеграции с продуктами Microsoft, но и возможностями интегрироваться с рядом других продуктов.

Конечно, как говорилось в самом начале статьи, вы можете найти в интернете упоминание о таких возможностях для третьей версии Stylus, предназначенной для Windows 95 и NT, но то, что такими возможностями (фактически не поддерживается только словарь «Мультилекс») обладает и более ранняя версия для Windows 3.x – очень приятно.


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


### QBasic как средство прагматического программирования. (продолжение, начало в журнале Downgrade #22)


Язык QBasic существует уже около трёх десятилетий (а его предок, BASIC, скоро будет отмечать полувековой юбилей). Тем не менее, программисты не забывают об этом языке и создают новые версии сред программирования на QBasic. Так, пользователь форума журнала Downgrade mr_r0ckers сообщил нам о существовании «клона» QBasic под названием QB64. Он полностью бесплатный (лицензия LGPL), копирует привычный «олдскульный» интерфейс оригинала, но при этом портирован на современные версии Windows, Linux и Mac OS, а значит, поддерживает некоторые современные возможности, вроде работы с буфером обмена в редакторе кода, и не требует для своего использования «костылей»-эмуляторов.

Скачать QB64 можно здесь:

http://www.qb64.net/

Учебник для начинающих на русском языке, ориентированный на использование QB64, находится по этому адресу:

https://qbasicbook.ru

Опробовав QB64, и воздав должное его достоинствам, отметим и кое-какие недостатки этой среды:

- нет русского help-а (что отчасти компенсируется учебником на qbasicbook.ru);

- громоздкость приложения (пакет содержит более 8000 файлов);

- отсутствие интерпретируемости (запуск QBasic-программ на выполнение происходит довольно медленно, так как при этом каждый раз происходит их компиляция);

- громоздкость исполняемого кода (простейшая программа, скомпилированная на QB64, имеет размер 1.4 МБ, то есть полностью занимает 3-дюймовую дискету!).

Поэтому старый добрый QBasic под DOS ещё рано списывать со счетов. Его серьёзное преимущество – то, что «спектр» компьютеров, на которых он работает, невероятно широк: от XT-шек и 286-х под DOS до Pentium-IV под Windows XP (без «костылей») и Core i5 под Windows 8 (с «костылями»).

А значит, вы можете быть уверены в том, что ваши простые программы, написанные на новом компьютере, заработают и на старом. Конечно, 100%-ной гарантии нет и здесь, в некоторых случаях у старого компьютера может не хватить быстродействия или не окажется нужного видеоадаптера (например, вы писали программу для VGA, а у «компьютера-динозавра» CGA или EGA), но это случается не так уж часто. И при этом программы, написанные на новом компьютере, в случае их компиляции не переполнят крошечный жёсткий диск древней машины. Так что дальше мы продолжим рассматривать программы, написанные в «классическом» QB. Хотя ничто не мешает читателю запустить их в QB64 или в иной среде Basic.

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


'Калькулятор вкладов с пополнением и с капитализацией процентов

'(c)2018 Антиквар

M = 1000  'Начальный размер вклада

Z = 100  'Ежемесячное пополнение вклада (например, с зарплаты)

T = 12 'Период существования вклада, месяцев

TP = 1 'С какой периодичностью (в месяцах) начисляются проценты

'(не чаще одного раза в месяц)

P = 8 'Сколько процентов годовых платит банк

CLS

PRINT i, M 'Переменной i значение еще не присвоено, поэтому i=0

MN = M  'MN - для сравнения, размер вклада, если бы проценты не начислялись

'Разделив T на TP, определим, сколько раз будут начисляться проценты

FOR i = 1 TO T / TP

'Коэффициент (1 + (P / 100) * (TP / 12)) показывает, на какую величину

'"умножается" сумма вклада в каждый момент начисления процентов

M = M * (1 + (P / 100) * (TP / 12)) + Z * TP

MN = MN + Z * TP

PRINT i, MN, M, M - MN

NEXT i


Рис. 1. Результаты работы программы


На Рис. 1 показан результат работы программы при следующих начальных условиях: размер вклада при открытии (в «0-й месяц») – 10000 руб. Ежемесячно на него перечисляется 5000 руб. (вы можете задать 0 руб., и тогда получится вклад без пополнения). Проценты начисляются ежемесячно и прибавляются к сумме вклада. Срок действия вклада – 1 год (12 месяцев). Вознаграждение вкладчику – 7% годовых. В первом столбце номер месяца, во втором – сумма вклада без процентов, в третьем – с процентами, в четвёртом – «прибыль» вкладчика, полученная за счёт процентов. Видно, что через год, поместив на вклад 70000 руб. своих денег, вкладчик дополнительно получит 2685 руб. за счёт выплаты «процентов».

«Домашнее задание»: модифицировать программу для случая вклада без капитализации процентов (процентные «доходы» поступают на отдельный вклад «до востребования», т.е. с 0% годовых).

Графические возможности языка QBasic скромны, но вполне достаточны для создания несложных рисунков, вывода графиков и тому подобного. Прежде, чем работать с графикой, нужно включить подходящий видеорежим. Он задаётся оператором SCREEN. Перечислим основные видеорежимы QB:

SCREEN 0 – текстовый режим, включен по умолчанию, есть на всех видеоадаптерах;

SCREEN 1 – CGA 320x200 точек (работает на адаптерах EGA/VGA);

SCREEN 2 – CGA 640x200 точек (работает на адаптерах EGA/VGA);

SCREEN 3 – Hercules 720x348 точек (монохромный адаптер);

SCREEN 9 – EGA 640x350 точек (работает на адаптерах EGA/VGA);

SCREEN 12 – VGA 640x480 точек (работает на адаптерах VGA);

SCREEN 13 – VGA 320x200 точек (работает на адаптерах VGA).

13-й режим поддерживает 256 цветов, 0-й, 9-й и 12-й – 16 цветов, 1-й и 2-й – 4 или 2 цвета, 3-й – 1 цвет.

Надо заметить, что Hercules встречается нечасто, но в случае с монохромным монитором с 9-штырьковым разъёмом он является лучшим выбором, чем mono-CGA, так как обеспечивает довольно чёткое изображение. Мне встречались универсальные видеоадаптеры с переключателями, которые поддерживали как CGA, так и Hercules.

Для рисования в QB чаще всего используются операторы PSET (рисует точку), LINE (рисует линию либо прямоугольник, в том числе закрашенный) и CIRCLE (рисует круг либо сектор круга). Для рисования используются коды цветов, которые указываются в вышеупомянутых операторах. Полезно их помнить. Если использовать 16-цветный режим, то цвета 10-15 – яркие, самые броские. 10 – зелёный, 11 – бирюзовый, 12 – красный, 13 – лиловый, 14 – жёлтый, 15 – белый.

Для иллюстрации практического использования графических возможностей QB приведу код учебной программы, показывающей принцип действия метода моделирования «Монте-Карло» на примере экспериментальной оценки константы «Пи» (впервые аналогичный опыт провёл ещё Жорж Бюффон в 1777 году):


'Экспериментальная оценка числа Пи методом "Монте-Карло" (с)Антиквар

'Определяем переменные двойной точности

DIM X AS DOUBLE, Y AS DOUBLE, R AS DOUBLE, POPAD AS LONG, MAX AS LONG

'Включаем видеорежим VGA 640x480

SCREEN 12

CLS

RANDOMIZE TIMER 'Инициализируем генератор случайных чисел

'Рисуем систему координат и единичный квадрат с вписанной четвертью круга

LINE (100, 340)-(100, 70), 15

LINE (100, 340)-(400, 340), 15

LINE (100, 90)-(350, 90), 15

LINE (350, 90)-(350, 340), 15

'3.1416/2 - это Пи/2, угол в радианах, соответствующий четверти окружности

CIRCLE (100, 340), 250, 15, 0, 3.1416 / 2

'Включаем ярко-белый цвет

COLOR 15

'Помещаем текстовый курсор в заданные места и пишем обозначения осей координат

LOCATE 6, 11: PRINT "Y"

LOCATE 21, 50: PRINT "X"

LOCATE 21, 11: PRINT "0"

'Рисуем оси для графика, показывающего приближение к идеальному значению Пи

LOCATE 28, 8: PRINT 3.1

LINE (100, 465)-(500, 465), 15

LOCATE 26, 8: PRINT 3.14

LINE (100, 424)-(500, 424), 12

LOCATE 23, 8: PRINT 3.2

LINE (100, 365)-(500, 365), 15

'Задаем начальные условия опыта

LOCATE 1, 1

INPUT "Максимальное число экспериментов (2...10000000)"; MAX

INPUT "Замедление - чем больше, тем медленней (0...1000000)"; SLOW

'Если пользователь ввел "ерунду" - задаем значения "по умолчанию"

IF MAX < 2 OR MAX > 10000000 THEN MAX = 1000

IF SLOW < 0 OR SLOW > 1000000 THEN SLOW = 1000

FOR I = 1 TO MAX

X = RND 'Формируем 2-мерное случайное число - точку, лежащую в правой верхней

Y = RND 'четверти координатной плоскости; X и Y лежат в пределах [0...1]

R = X ^ 2 + Y ^ 2 'Расстояние от точки до начала координат

IF R < 1 THEN 'Если точка не выходит за радиус единичной окружности...

POPAD = POPAD + 1 '...то увеличиваем счетчик попаданий в окружность

CL = 10         'Попавшие в круг точки рисуем зелеными

ELSE

CL = 12         'Не попавшие в круг (но лежащие внутри квадрата) - красными

END IF

PSET (100 + X * 250, 340 - Y * 250), CL 'Рисуем точку в системе координат

MYPI = 4 * POPAD / I  'Вычисляем на основе значений счетчика попаданий число Пи

LOCATE 3, 1

COLOR 15

PRINT "I="; I, "Pi="; MYPI

'Рисуем точку на графике текущих значений найденного числа Пи

'График автоматически масштабируется с учетом заданного количества опытов!

PSET (100 + 400 * (I / MAX), 465 - 1000 * (MYPI - 3.1)), 14

'Замедлитель работы для быстрых машин (чтобы видеть моделирование в процессе)

FOR T = 0 TO SLOW: NEXT T

NEXT I

'Выводим текущий результат эксперимента:

LOCATE 4, 1

PRINT "В итоге, после";

COLOR 12

PRINT MAX;

COLOR 15

PRINT " экспериментов установлено, что Pi =";

COLOR 12

PRINT MYPI

COLOR 15

SLEEP

END


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


Рис. 2. Результаты работы программы


А теперь посмотрим, как можно с помощью QB решать более серьёзную задачу: спектральный анализ сигнала.


'Программа находит амплитудный спектр дискретного периодического

'сигнала произвольной формы; (c)М.Бабичев, Ю.Пасынков

CLS

PI = 3.14159

'N - число дискретных отсчетов на периоде сигнала

N = 100

'A - амплитуда синусоиды (в условных единицах, например вольтах)

A = 1 * SQR(2)'Амплитуда - корень из 2, чтобы СКЗ синусоиды равнялось 1

DIM X(N)          'массив входного сигнала

DIM SP(N / 2)     'массив составляющих спектра сигнала

FOR I = 0 TO N

'Формируем отсчеты сигнала (синусоида плюс третья гармоника синусоиды)

X(I) = A * SIN(2 * PI * (I / N)) + (.2 * A) * SIN(2 * PI * (3 * I / N))

NEXT I

'Расчет составляющих спектра:

FOR G = 1 TO 10 'Минимальный и максимальный номера находимых гармоник

XS = 0: XC = 0

FOR I = 1 TO N

'Синусоидальные составляющие спектра

XS = XS + X(I) * SIN((2 * I + 1) * (G * PI) / N)

'Косинусоидальные составляющие спектра

XC = XC + X(I) * COS((2 * I + 1) * (G * PI) / N)

NEXT I

'KK - особый коэффициент, позволяющий точно находить спектр сигналов

'прямоугольной формы, по сути - последовательности прямоуг. импульсов

KK = (2 / N) * SIN(G * PI / N) / ((G * PI) / N)

'Находим амплитудный спектр

SP(G) = (SQR(XS ^ 2 + XC ^ 2) * KK)

'Выводим амплитуды гармоник на экран

PRINT G; " "; SP(G)

NEXT G

END


Рис. 3. Вывод программы


На Рис.3 видно, что спектр сформированного нами сигнала действительно содержит первую и третью гармоники. Амплитуды прочих гармоники близки к нулю, но не равны ему (за счёт вычислительной погрешности).

Поскольку визуализировать сформированные в QB сигналы, найденные в нём спектры, анализировать полученные результаты моделирования и т.п. средствами самого QB трудоёмко, можно рекомендовать запись полученных в QB значений в текстовые файлы с дальнейшим их импортом в MS Excel. Excel – очень распространённое приложение, оно есть почти на каждом компьютере. Возможности даже старых версий Excel, работающих в Windows 95/98, вполне достаточны для наших целей: формирования графиков и гистограмм, статистического анализа таблиц чисел...

Как осуществлять импорт? Например, мы в программе сформировали текстовый файл 1.txt (OPEN "1.txt" FOR OUTPUT AS #1), и с помощью оператора PRINT #1 записали в него отсчёты сигнала X(I), сформированного в вышеприведённой программе, а также номера отсчётов I. Запускаем Excel 2007. Круглая кнопка меню – Открыть. Во вкладке типов файлов выбрать «Текстовые файлы...» Заходим в наш каталог с программами QB, находим файл 1.txt, щёлкаем по нему. Появляется окно «Мастер текстов (импорт)». «Укажите формат данных» – указываем «С разделителями». Далее. «Символом-разделителем является» – указываем «пробел». Далее. Кнопка «Подробнее» – выбираем разделитель целой и дробной части чисел. Нужно указать в качестве разделителя точку. Готово!

Если при указании точки в поле выбора всё равно остается запятая, нужно открыть Панель управления Windows (на примере Windows 8), щёлкнуть значок «Язык», в нём выбрать «Изменение форматов даты, времени и чисел», кнопку «Дополнительные параметры» – и там уже в поле «Разделитель целой и дробной части» ввести с клавиатуры точку. Теперь Excel будет правильно импортировать файлы из QB, воспринимая массивы чисел именно как числа, а не как текст.

Надо заметить, что для отображения 2-мерных графиков в Excel желательно использовать «Точечную диаграмму». В ней ряд данных содержит не только значения Y, но и значения X, что позволяет строить график без горизонтальных искажений в том случае, если значения Y приводятся для соответствующих X, нарастающих с неравномерным шагом, как это часто бывает при экспериментах.

Например, время T = 0, 0.1, 0.2, 0.5, 1.0, 3.0, 10 секунд и т.д.

Прочие типы диаграмм считают все точки ряда данных равномерно отстоящими друг от друга, например: T = 0, 1, 2, 3, 4, 5, 6, 7... секунд.


Рис. 4. Результат импорта в Excel


На Рис. 4 виден результат импорта текстового файла 1.txt в Excel 2007. Отсчёты сформированного сигнала с 1 и 3 гармониками отображаются в виде «осциллограммы» на точечной диаграмме (сигналы такого вида нередко возникают в силовых сетях переменного тока). Разумеется, для дальнейшей работы с полученными данными надо сохранить файл в формате таблицы Excel.

На этом мы завершаем вторую часть курса «прагматического программирования» на QBasic... Будет ли этот курс продолжен – покажет время. Автор надеется, что он сумел пробудить в читателях интерес к замечательному языку QBasic, и они примут участие в создании продолжения курса.


Прим. ред.: упомянутые в статье исходники можно скачать здесь: http://dgmag.in/N23/QB2/sources.zip.


Михаил Бабичев (Антиквар)


### Meine KC 85


Интерес к этому компьютеру вызвало появление на pouet.net демо:


Let's Dance: http://pouet.net/prod.php?which=53826

Википедия (https://ru.wikipedia.org/wiki/KC_85) говорит, что использовался процессор U880 (клон Z80), разрешение экрана 320х256 (40х32 символов).

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

https://floooh.github.io/virtualkc/p035_helloworld.html

Дополнительную информацию можно найти тут же. Теперь второй шаг – ассемблер. Тут грустно всё – существует MicroDOS (http://www.mpm-kc85.de/html/MicroDOS.htm), представляющий собой копию CP/M.


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

http://kc85.datahammer.de/KC85FileFormats.txt

ОК, осталось найти подходящий эмулятор.


KCEMU (http://kcemu.sourceforge.net)


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

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


JKCEMU (http://www.jens-mueller.org/jkcemu/)


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

Для пробы написал программу (нажать Alt+T).

Набираю текст:


org 100h

ld hl,08000h

ld de,08001h

ld bc,027ffh

ld (hl),l

ldir

ld hl,08000h

lp:

ld (hl),l

inc l

jr nz,lp

ret


Жму F8, настройки такие:


Жму Shift+F8 и любуюсь на картинку:


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

Хорошо, поступим старым индейским способом: MESS будет удобнее. Найти нужный ROM легко, запустить отладчик – ещё проще. В документации указано, что существует возможность загрузки в память бинарного файла.

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

Вернулся к JKCEMU, решил реализовать простой демоэффект.

Сначала об организации памяти. VideoRAM расположена по адресу $8000. Каждый байт отвечает за пиксели. Из примера программы видно, что первой колонке знакомест соответствуют адреса $8000-$80FF. Так получаем 256/8=32 символа (32 строки).

Для колонок правее первой отведены адреса $8100, $8200..$A700. Так получается 40 колонок символов.

С цветами оказалось проще, нашёлся готовый пакет – https://github.com/floooh/kc85sdk, где приведены необходимые процедуры.

Теперь я написал программу, которая нарисует шахматную доску:


ORG 100h

; установка конфигурации экрана,

; описание у virtualkc (https://floooh.github.io/virtualkc/p050_hwref.html)

di

in a,(84h)

res 0,a

res 2,a

res 1,a;pixels

out (84h),a

Код выглядел таким:

ld hl,8000h

ld de,255

lp0:

ld c,32

lp2:

push hl

ld b,10

push de

LP1:

call bswap

ld (hl),e

inc h

ld (hl),e

inc h

ld (hl),e

inc h

ld (hl),e

inc h

djnz LP1

pop de

pop hl

inc l

dec c

jr nz,lp2

call bswap

inc l

dec l

jr nz,lp0

..

bswap:

ld a,e

ld e,d

ld d,a

ret


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

Стал искать, в чём проблема. Причина была простой: нужно было до записи в VideoRAM менять конфигурацию порта $84.

Поэтому процедура подготовки экрана выглядела так:


ld hl,8000h

ld de,255

lp0:

ld c,32

lp2:

push hl

ld b,10

push de

LP1:

call bswap

;запись цвета

in a,(84h)

set 1,a

out (84h),a; 1-color,0-pixel

push hl

ld a,l

bit 3,a

jr z,noi

cpl

noi:

and 7

or 64

push bc

ld b,40

fl:

ld (hl),a

inc h

djnz fl

pop bc

pop hl

in a,(84h)

res 1,a

out (84h),a; 1-color,0-pixel

ld (hl),e

inc h

ld (hl),e

inc h

ld (hl),e

inc h

ld (hl),e

inc h

djnz LP1

pop de

;call bswap

pop hl

inc l

dec c

jr nz,lp2

call bswap

inc l

dec l

jr nz,lp0


Осталась синхронизация вывода. Из беглого поиска выяснилось, что в содранном процессоре прерывания не реализованы, забудьте о IM 2/HALT.

Чтение исходников ничего не прояснило. Помогло демо Let's Dance, автор которого почему-то включил исходный код внутрь программы.

Задержка сделана примерно так:


;;delay

ld c,10

dl1:

ld b,15

dl2:

nop

nop

nop

nop

nop

djnz dl2

dec c

jr nz,dl1


Получился файл .kcc размером 256 байт. За вычетом заголовка 128 байт получается интро размером 128 байт.

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


А где программа? Наверное, появится после выхода номера.


Sh


### Не «Тетрисом» единым…


Алексей Пажитнов большинству известен как создатель поистине культовой игры «Тетрис». Да что там говорить – даже на страницах нашего журнала в прошлом номере была статья про документальный фильм «Тетрис: Из России с любовью», где подробно рассказывалась полная перипетий история создания этой игры.

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

Взять хотя бы Pandora’s Box, про которую в №12 рассказал Андрей Шаронов. За решением увлекательных головоломок из этой игры я провёл множество незабываемых часов.

Просматривая недавно список созданных Пажитновым игр, я наткнулся на некую Shawl. Моё внимание она привлекла в первую очередь тем, что является фактически ровесницей «Тетриса» – 1986 год. (Конечно, формально «Тетрис» разработан в 1984-м, но самая старая известная DOS-версия – как раз 1986-го.)

Взглянём же на неё поближе.

Итак, Shawl (что можно перевести как «шаль, платок»), 1986 год, графика CGA, издателем (или заказчиком?) на заставке значится AcademySoft:


Скачать игру, кстати, можно здесь:

https://www.old-games.ru/game/4143.html

В DOSBox на стандартных 3000 циклах Shawl, как мне показалось, работает слишком быстро, так что желательно скорость подуменьшить.  Или можно воспользоваться PicoXT на 4,77 МГц – там всё нормально.

В целом игра представляет собой гибрид аркады и головоломки (кстати, как большинство игр Пажитнова).

Честно говоря, сначала, запустив игру, я ничего не понял. Прочитал описание на Old-games.ru – что-то понял, но далеко не всё. С самой игрой никакого описания не идёт, а оно ой как не помешало бы.

Так что правила игры пришлось выяснять опытным путём.

Итак, взглянём на игровой экран:


Та полосатая штука слева вверху – это и есть та самая шаль, которой мы управляем. Находясь в непрестанном движении (остановить её нельзя, разве что нажать Pause), она при этом отскакивает от стенок, причём угол «отражения» равен углу «падения».

Управление – стрелками курсора. Причём эта самая шаль может двигаться только по диагоналям. Скажем, на экране выше этот «волновой пакет» движется вверх и влево. Если мы нажмём «Вниз», то шаль полетит вниз и вправо, т.е. примерно в точку между двумя маленькими кругами. Нажмём «Вправо» – она полетит вправо и вверх (в сторону зелёного круга). Две другие стрелки курсора здесь никакого эффекта не произведут.

Вернёмся к правилам.

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

Вы должны избегать столкновений с кругами того же цвета, который на данный момент имеет шаль. Каждое столкновение с одноцветным кругом отнимает «жизнь», а всего их вам даётся пять. Странно, что количество жизней нигде не показывается. Чем меньше у вас жизней, тем меньше очков вам начисляется за один съеденный круг. Если жизней 5, то и очков дадут 5, если 4 – заработаете 4 очка, ну и так далее.

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

Если жизни закончились, нам покажут многообещающую надпись «THE END» и предложат ввести имя для таблицы рекордов.

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

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

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

Как таковой конечной цели у игры, видимо, нет – просто соревнование, кто больше очков наберёт. Мой рекорд пока – 1116.

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


История игры на этом не заканчивается. В 1997 году Microsoft издала сборник игр под названием Microsoft Entertainment Pack: The Puzzle Collection. Скачать этот набор можно здесь: https://www.myabandonware.com/game/microsoft-entertainment-pack-the-puzzle-collection-a3k.

Вот так выглядит меню выбора игр:


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

Разработчиком значится «Мир – Диалог», а среди авторского состава есть и Алексей Пажитнов. Так что неудивительно, что среди игр оказалась и некая Color Collision:


Как видите, игровое поле очень похоже на Shawl! Правила тоже схожи, хоть есть и отличия – здесь надо стремиться собирать круги как раз того же цвета, что и «коллайдер» (так он здесь называется, в DOS-прообразе – shawl).

Тут всё намного понятнее, потому что нам даются подсказки – правда, на английском, русскую версию я не нашёл. Есть и справка.

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

Будем надеяться, что Алексей Пажитнов будет и дальше радовать нас своими замечательными аркадами, головоломками и другими интересными играми.


uav1606


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


Если бы врачи создавали логотипы:


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


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

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


Авторы:

Авторы:

Михаил Бабичев (Антиквар)

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

flaz14

uav1606

Sh


Интервью:

Дмитрий Мостовой

Виктор Ковалёв


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

http://dgmag.in


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

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


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

http://vk.com/dgmag


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

uav16060 [cobaka] mail.ru