PC-01 Lviv

It is currently 28 Mar 2024, 22:13

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: 09 Nov 2010, 10:59 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Источник
Автор: Сергей Текотев

ЭТАП ПЕРВЫЙ

Моя эпопея с «Львов ПК-01» началась, когда в Львiвском полiтехнiчном iнституте под управлением профессора Владимира Яковлевича Пуйды «содрали» какую-то персоналку, переложив по готовому образцу на нашу элементную базу. Несколько опытных экземпляров раздали по организациям для апробирования, в том числе один из них попал к нам в воинскую часть. В части только один лейтенант оказался знаком с вычислительной техникой, и это был лейтенант Текотев. Шел 1987 год.

Мне предложили с ним «побаловаться» и попытаться извлечь из него пользу для наших вооруженных сил. Когда я влез в это с головой, то понял, что без подробного описания архитектуры ПК и прошивки его ПЗУ мне не обойтись. Обращения к В.Я. Пуйде даже по официальной линии ничего, кроме принципиальной электрической схемы компьютера, не принесли. Пришлось заняться своей прямой обязанностью — техническим шпионажем, только не против какой-то страны НАТО, а против Львiвскго полiтехнiчного iнститута.

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

На первом этапе были созданы драйвера: для работы с перфоратором (более быстрый и надежный носитель информации, чем магнитофон) и для вывода на печатающее устройство. Принтера в части не было, зато из средств связи были крутые печатающие устройства. Один такой аппарат мы и подключили через параллельный порт. Это был рывок, потому что я смог распечатать содержимое ПЗУ (всего лишь в шестнадцатеричных кодах) и получил возможность разбираться с ним, не будучи привязанным к компьютеру. Вот так, разложив принципиальную электрическую схему, распечатки ПЗУ объемом в 16 КБайт и вооружившись справочниками по микропроцессорной технике, шаг за шагом, постигал архитектуру компьютера и расписывал содержание ПЗУ.

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

«Содран» был и Бейсик. В пользу этого говорит тот факт, что в ПК с BIOS версии 1.0 Бейсик загружался, как и все остальные программы, с магнитной ленты. В BIOS версии 2.0 Бейсик располагается уже в ПЗУ, но для работы он во время старта ПК перемещается в ОЗУ как раз на те адреса, что и Бейсик, считываемый с ленты в старом варианте. Для Бейсика, разработанного с нуля, это было бы неразумно с точки зрения расхода памяти.

ЭТАП ВТОРОЙ

Следующий этап начался, когда на какой-то выставке Львовский политех представил свой «Львов ПК-01» уже как компьютер, полностью готовый к массовому производству, с небольшой коллекцией программ. Его отдали для промышленного производства Львовскому производственному объединению имени В.И. Ленина. Каково же было мое изумление, когда я обнаружил, что ПЗУ полностью изменено!

В ЛПО имени Ленина тоже «упражнялись» с этим компьютером, имея в своем распоряжении тот первый вариант ПК с BIOS 1.0. Версия 2.0 уже не содержала того хлама, больше не было никаких служебных сообщений на английском языке и, что самое главное, Бейсик больше не надо было загружать с магнитофона. Попутно они сменили формат записи на магнитную ленту. Естественно, для запуска в серию BIOS 2.0 был гораздо предпочтительней, при этом Львовский политех откровенно «зажал» всю техническую информацию. Это был настоящий «подарок» от В.Я. Пуйды! Большая часть наших наработок вмиг оказалась ненужной.

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

Пришлось, вооружившись опытом, еще раз пройти тот же путь и задокументировать содержимое ПЗУ версии 2.0. В рамках того же договора для ЛПО имени Ленина были написаны системные программы: Monitor-90, Assembler-90 и Reassembler. Отдельное спасибо хочу сказать в адрес Остапа Михайловича Семенива, сотрудника ЛПО имени Ленина, который организовал взаимодействие ЛПО с нашей частью и всемерно содействовал продвижению этого проекта.

Наверное, многие помнят, что первые «Львовы» шли только с руководством по эксплуатации и описанием языка Бейсик (1989 – 1990 годы). В придачу компьютер комплектовался кассетой с набором весьма «бледных» программ. А с 1991 года руководство по эксплуатации было дополнено «Руководством программиста» и в комплект программ было включено системное ПО для ПК.

Дополнительно по договору был разработан макет локальной вычислительной сети, в которой в качестве сервера выступала ПЭВМ ЕС-1841, а рабочих станций — ПК «Львов», собрано устройство сопряжения «ЕС-1841» — «Львов ПК-01», разработаны драйверы обмена информацией.

Через мои руки прошло несколько «Львовов» — и «гражданские», и «военные». «Военные» отличались металлическим корпусом и более надежной клавиатурой. Первые ПК — и «гражданские», и «военные» — были с тактовой частотой 2 МГц. Потом стали делать с частотой 2,5 МГц, но таких «военных» я уже не встречал. По-видимому, их вообще была только одна партия.

ЭТАП ТРЕТИЙ

В 1991 г. начался третий заключительный этап. Мои работы получили известность во Львове, где к тому времени этот ПК был уже достаточно распространен. Я стал постепенно переходить к коммерческим разработкам, с армией пришлось расстаться. Примерно в это же время наткнулся на рекламу московского кооператива «О'КЕЙ», завязалось сотрудничество с Константином Тимошенко. Впоследствии кооператив «О'КЕЙ» плавно трансформировался в фирму «Coman».

Для фирмы были разработаны: Монитор-Плюс, Ассемблер-91, Мультипликатор. С их помощью для тестирования нового системного ПО была написана игра «Буря в пустыне». В исходном варианте «Буря» состояла из трех кусков: загрузчик, заставка и программа. Загрузчик шел в обычном формате BLOAD, а остальное — в другом, более компактном. В этом формате были выкинуты СТАРТ и СТОП, а при записи «1» использовалось не 2 коротких волны, а одна. В итоге запись на ленте уменьшалась более чем в 1,5 раза. Чтобы качественно переписать игру, в нее была включена возможность генерации программы на МЛ. Все это впоследствии было описано в брошюре «ПК и магнитофон».

В «Буре в пустыне» была сделана попытка подключить джойстик. «Coman» стандартизировал его, по-моему, как Q-джойстик и стал включать его поддержку в другие игровые программы.

Предметом особой гордости была разработанная мною система защиты от перезаписи. Я никому не раскрывал эту систему, здесь ее описание приводится впервые. Сначала шел ЗАГРУЗЧИК, он грузился в системную область и своим «хвостом» накрывал адрес аварийного завершения чтения с магнитной ленты. Затем шел СБОЙ — это 10 … 20 волн с вдвое завышенной частотой. Этот сбой «выкидывал» драйвер чтения с ленты на адрес аварийного завершения, где уже лежало не «ОШИБКА В/В», а переход на свой загрузчик. Затем шел несколько удлиненный СТОП, он был нужен для того, чтобы компьютер успел отработать сбой и перейти на загрузчик. А дальше можно было творить, что хочешь.

Можно было пустить сразу тело файла, тогда на слух вообще ничего нельзя было отличить, как будто записана обыкновенная программа, но при этом, загрузка даже без параметра «R» все равно заканчивалась автостартом программы. При попытке копирования с помощью специальных программ или при помощи BLOAD, но по другим адресам, в самом начале загрузки просто выскакивало сообщение «ОШИБКА В/В».

Можно было пустить второй ЗАГРУЗЧИК, который стартовал даже без параметра «R», а затем уже и все остальное, но в другом формате. Это накладывало дополнительную защиту и значительно затрудняло взлом. Файлы, защищенные таким образом, можно было записывать только при помощи специального ГЕНЕРАТОРА. Интересно, сколько продержалась эта система? Кто смог ее сломать — пусть откликнется.

Закончилось все написанием руководства для молодых специалистов «От Бейсика к Ассемблеру». Это уже был 1992 год — полная стагнация всех потребительских рынков, работы в этом направлении оказались невыгодными с коммерческой точки зрения.

В заключение приведу перечень своих программ: «Монитор-90» (MON90.LVT), «Реассемблер» (DISSAS90.LVT), «Ассемблер-90» (ASS90.LVT), «Копировщик файлов» (TURBO.LVT и TURBO0.LVT), «Графический редактор-мультипликатор» (MULT.LVT), «Монитор-Плюс» (MON_PLUS.LVT), «Ассемблер-91» (ASS-91.LVT), игра «Буря в пустыне» (STORM.LVT).

UPD.
Связанная тема "ПК-I (прототип ПК-01 "Львов")".


Top
   
PostPosted: 19 Aug 2012, 22:32 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Получил от Сергея подробный комментарий относительно нижеприведенного фрагмента:
Quote:
Дополнительно по договору был разработан макет локальной вычислительной сети, в которой в качестве сервера выступала ПЭВМ ЕС-1841, а рабочих станций — ПК «Львов», собрано устройство сопряжения «ЕС-1841» — «Львов ПК-01», разработаны драйверы обмена информацией.
Итак, вот как это работало в IRL:

Идея компьютерного класса заключалась в следующем. Преподаватель на ЕС-1841 хранит программы для ПК-01 "Львов". Чтобы организовать урок, он включает ученические "Львовы" и ставит их на считывание с магнитофона, затем на ЕС-1841 включает вывод требуемого файла на устройство сопряжения. Ученические "Львовы" соединены с устройством сопряжения, поэтому вместо магнитофона считывают файл из преподавательской ЕС-1841. Аналогичным образом организована обратная передача данных. Устройство сопряжения необходимо было скоммутировать с требуемым ученическим "Львовом", задать на нем запись на магнитофон, а на ЕС-1841 считывание. Преподаватель сохранял на своей ЕС-1841 полученный от ученика файл. Никакого специального ПО для ученических "Львовов" не требовалось. Поскольку обмен данными осуществлялся посредством аудио-сигналов, для развертывания такого класса подходило кабельное и коммутационное оборудование от лингвистического класса.

Было изготовлено устройство сопряжения и написано специальное ПО для ЕС-1841. На базе ЕС-1841 и ПК-01 "Львов" собран макет компьютерного класса. Образец устройства сопряжения, схема и программное обеспечение переданы заказчику (ЛПО им.Ленина - прим.). Их дальнейшая судьба мне неизвестна.

Конечно, это не ЛВС в современном понимании. Здесь считывание информации с сервера и запись производились не в автоматическом режиме, а при активном участии человека. Тем не менее для того времени это был серьезный шаг вперед от компьютерных классов с магнитофонами. При этом не требовалось никакого вмешательства в освоенные промышленностью ЕС-1841 и ПК-01 "Львов".

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 21 Aug 2012, 22:43 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
это был серьезный шаг вперед от компьютерных классов с магнитофонами
у нас в классе Корветов так были магнитофоны подключены - 2 штуки на класс (остальные в резерве лежали), хотели 1, но сигнал "уже не добивал". Все компьютеры были подключены "в параллель", в магнитофоне вынималась кассета и при открытой крышке нажималась "запись" (карандашиком надо было концевик удержать). После чего любая 1 машина писала, а любая из оставшихся (или все сразу) читала. Одного магнитофона на 4-5 машин хватало (если не ошибаюсь, в классе было 10 + "место учителя").

"Хорошие мысли по одной не ходят" :-)


Top
   
PostPosted: 05 Nov 2012, 19:23 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Комментарий про ранние варианты ПК-01 опубликовал в другой теме.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 08 May 2013, 16:44 
Offline

Joined: 08 May 2013, 15:25
Posts: 8
Quote:
Предметом особой гордости была разработанная мною система защиты от перезаписи. Я никому не раскрывал эту систему, здесь ее описание приводится впервые. Сначала шел ЗАГРУЗЧИК
Так вот кто делал этот загрузчик :) Ох и намаялся я тогда с ним, пока не стал под ноль все снимать )


Top
   
PostPosted: 08 May 2013, 17:04 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Я когда делал свой копировщик защищённых от копирования программ...
Дак та часть звука где имя, - читало как обычно!...
а далее все "под ноль" (как цепочку(поток) байтов) не вдаваясь в значения адресов. Концовку звука (файла) проверяло какой-то процедурой из ПЗУ (может ошибкой ввода вывода уже не вспомню).... срабатывала она "некорректно" т.е. не "байт в байт" поэтому каждая следующая перезапись увеличивала размер файла на 10-50 байт (помоему так это было), хотя меня это не печалило так как загружались те проги ОТЛИЧНО! Просто немного странность: было с непривычки, что мол прога загрузилась, а звук еще идет 1-3 сек (помоему так это было)...
Сама программа занимала 100-150 байт.


Top
   
PostPosted: 08 May 2013, 17:11 
Offline

Joined: 08 May 2013, 15:25
Posts: 8
что-то похожее было с той лишь разницей, что я байт-чтение не рассматривал. Алгоритм чем-то напоминал архиватор(об архиваторах я тогда не знал), оперировал я последовательностью битов пакуя их с разными метками дельта-таймингов. То есть читал все включая ошибки и паузы. Полгода долбался пока довел.


Top
   
PostPosted: 08 May 2013, 18:53 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
оперировал я последовательностью битов пакуя их с разными метками дельта-таймингов. То есть читал все включая ошибки и паузы. Полгода долбался пока довел.
ГЫ! :-) Дак конечно если так - дак можно долго долбаться.... я неудивился бы если б ничего не получилось бы!.... :-) у меня бы точно не получилось бы!
Я долбался не долго... но долго перед этим думал что же за хрень эта защита и как "вычислять" реальную длинну файла.... но потом однажды через долгое время меня "посетила" идея... ну и реализовал её достаточно быстро...


Top
   
PostPosted: 08 May 2013, 19:44 
Offline

Joined: 08 May 2013, 15:25
Posts: 8
Когда чем-то одержим, не может не получиться. А ведь там ничего не было невозможногу. После школы вечера, в школе с блокнотом, на уроках. Прямо в блокнотах и писал. Потом переносил.
Quote:
что же за хрень эта защита и как "вычислять" реальную длинну файла
А у меня с точностью до наоборот. Я сразу понял суть защиты. На спектрумах это было обычное дело. А спектрумы я уже видел у друзей. А вот как подойти так чтобы решить, думал долго. Решил с самого низа. Тайминги не везде ставил, иначе бы памяти не хватило. Что-то помню подсматривал, но не помню где. Может в ПЗУ. Функи для чтения какие-то. Когда с CP/M80M работал(М магнитофонная, управляла Маяк-232, через ДУ), там была разметка кассет и в общем идеи блочной загрузки. По большому счету, важен был только код после загрузчика. Его вручную, можно было выплюнуть на ленту потом. На Поиске(позже) я так делал. Поиск был тоже без дисковода.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited