Н.М. Саттаров
(г. Казань, тел. 38-34-03)
СОСТОЯНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРО-ЭВМ
Необходимость простых моделей компьютеров
Наряду с мощной вычислительной техникой типа VAX, IBM, РС/ХТ/АТ, PS/2 существуют самые простые модели компьютеров: БК 0010, МИКРОША, ЛЬВОВ и другие. Попробуем определить сферу применения микро-ЭВМ. Каковы их возможности? Что это: настольные калькуляторы или полноправные компьютеры? Здесь чувствуется непонимание даже у серьёзных специалистов.
Можно услышать мнение о необходимости прекратить выпуск таких компьютеров. Один академик высказался, что даже знакомство с ними вредно. Ему почему-то хочется повсеместно внедрить систему UNIX (?). Многие ратуют за полную ориентацию страны на IBM PC, PS/2.
Это прекрасные замыслы. Но не будем мечтать. Подобных машин насчитываются единицы даже в "программистских" учреждениях, где на 40 профессионалов - один "персональный" компьютер. А что делать простым инженерам, студентам, школьникам и просто любителям? Ждать эры всеобщей компьютеризации?
Будем реалистами. Мощная техника пока не доступна массовому пользователю. Прежде всего из-за высокой стоимости в десятки тысяч рублей. Нам нужны простые и дешёвые компьютеры. Кстати, на Западе такие модели до сих пор существуют и пользуются спросом.
Сторонники грандиозных идей не хотят понять, что со многими проблемами вполне могут справиться простые микро-ЭВМ, что для ряда производственных задач использование дорогой техники просто нерентабельно. Мы не так богаты, чтобы стрелять из пушек по воробьям.
У каждого класса компьютеров - своя область применения. Большие машины - для больших проблем, малые - для проблем поменьше, но для тысяч и тысяч пользователей. Микро-ЭВМ подобны своим старшим братьям по архитектуре и принципам программирования. Отличие - в объёме памяти, быстродействии, а следовательно, в сложности и размерности решаемых задач.
БК 0010 - самый популярный микрокомпьютер
О причинах популярности БК 0010 было много сказано. Небольшая стоимость означает возможность (и безопасность) приобрести его для дома. Высокая надёжность даже немного странна для представителя отечественной техники. Система команд 16-разрядная - программировать в машинных кодах проще, чем в 8-разрядных системах. Совместимость команд с СМ-4, ДВК, Электроника-60 позволяет разрабатывать на этих машинах программы для БК. Большому количеству специалистов архитектура и команды БК 0010 знакомы и привычны, не надо переучиваться. Графические возможности компьютера позволяют создавать рисунки на экране дисплея (этим не балует, например, Микроша). Быстродействия вполне достаточно для создания динамических (движущихся) рисунков.
Таким образом, много положительного уже заложено. Но ЭВМ без программного обеспечения - просто соединение металла, пластмассы и проводочков. Степень полезности компьютера определяет количество и качество его программ. Что же у нас есть?
Один восторженный журналист недавно написал, что, оказывается, для БК 0010 имеется не 10 программ, поставляемых заводом-изготовителем, а целых 300. Всё-таки заметим, что уже в 1988 году в некоторых архивах имелось до 900 программ. Сколько сейчас - трудно сказать. Да и нужно ли считать, сколько всего поштучно: гвоздей, булавок и пуговиц. Важно другое: много ли красивых и сложных программ, есть ли самые необходимые?
Да, у БК 0010 имеются самые нужные системные программы: трансляторы ассемблера, отладчики, копировщики, текстовые и графические редакторы, специальные системы и языки программирования. Микро-ЭВМ используется с различными устройствами: принтерами, "мышью", джойстиком, координатными планшетами, графопостроителем. Создано много обучающих программ, целые пакеты программ по предметам школьных и вузовских курсов. И, конечно, наработано большое количество игровых и занимательных программ.
Эволюция ассемблеров БК 0010
Интерпретаторов ФОКАЛа и БЕЙСИКа для создания программной одежды БК 0010 явно недостаточно.
Известно, что самые красивые и эффективные программы разрабатываются в машинных кодах. Инструментом служат специальные программы - ассемблеры. Это главнейший инструмент, без которого вообще нельзя сделать ничего серьёзного.
Сразу же потребовалось средство создания программ для БК силами самой БК. Увы, разработчики БК 0010 "забыли" приложить ассемблер. Будь он прошит в ПЗУ вместо никому не нужных тестов самоконтроля и директив отладки, уровень программного обеспечения микро-ЭВМ был бы совсем иным. Сколько идей не реализовано только из-за отсутствия хорошего инструмента. Сколько лишних сил потрачено при использовании изуверских методов программирования.
Первопроходцам БК 0010 пришлось начинать с нуля. Нашлись энтузиасты, которые либо на других ЭВМ, либо на ФОКАЛе, а то и в числовых кодах создали простейшие отладчики-ассемблеры. На их основе разрабатываются более сложные: GROT, ОТЛ9, OS0010. Идёт развитие на основе собственных предыдущих версий. Иголка с ниткой совершенствуется - и БК 0010 понемногу одевается: появляются интересные программы в машинных кодах.
Работать в ассемблерах-отладчиках сложно: нужно помнить номера ячеек памяти и их назначение, трудно делать бесконечные исправления. Это любительский метод работы. Риск сойти с ума растёт пропорционально объёму создаваемой программы. Всё-таки назначение отладчиков - отладка или исправление чужих программ.
У собственной программы должен быть исходный текст: с метками, комментариями. Все исправления делаются только в тексте, а машинные коды создаются каждый раз заново при трансляции.
Начинают появляться первые ассемблеры-трансляторы. Сначала робкие: без встроенных редакторов текста (например, программа TP 5Е), без аппарата локальных меток (МИКРО2). Затем разрабатываются хорошие трансляторы МИКРО8, МИКРО10 (С. Шмытов). Но хочется ещё лучше. Нужны встроенные средства отладки, нужно использовать все ресурсы памяти. МИКРО8 дорабатывается автором этой статьи в МИКРО8+. В базовую программу вставляется мини-операционная система и более совершенный редактор текста. Но ресурсы памяти ещё есть: можно плотнее упаковать исходный текст. Автором разрабатывается новый транслятор: ASM. Это результат эволюции ассемблеров БК 0010 к 1990 г.
Размер системы ASM – 4 Кбайта. Основное преимущество нового инструмента - существенное увеличение длины транслируемых в памяти программ (до 5-10 кбайт).
Система состоит из монитора, редактора текста и компилятора. Монитор выполняет функции мини-операционной системы: чтение - запись на магнитную ленту исходного текста и скомпилированных модулей. Из монитора вызываются редактор текста, компилятор и созданная машинная программа. Предусмотрены удобные средства отладки: просмотр или изменение ячеек памяти в форматах слова, байта, символа. Монитор перехватывает несанкционированные прерывания отлаживаемых программ.
Для создания текста на языке Ассемблера используется встроенный редактор TED6. Текст упаковывается в 2,5 раза плотнее, чем в системе МИКРО8. Поддерживается работа в режимах обычной и расширенной памяти, 32 и 64 символа в строке.
Компилятор трёхпроходный, но по скорости превосходит однопроходный МИКРО8. Реализован аппарат внутренних и локальных меток. Имеются псевдокоманды записи слов, байтов, текста; вывода регистров; включения-выключения компиляции.
Печать текста на принтер (два вида интерфейса) и перекодировка текста из формата МИКРО8 осуществляются вспомогательной программой T-ASM.
Ниже приведён пример программы на языке Ассемблера.
MOV #PRI,R1 CLR R2 ЕМТ 20 .REG печать регистров RTS PC PRI: .В: 14,221,234 очистка, цвет, инверсия .А:ПРИМЕР .Е запись нуля
Программы работы с файлами
Для перезаписи файлов с одной кассеты на другую потребовались специальные программы - копировщики. Принцип их работы следующий: исходный файл сначала прочитывается в память микро-ЭВМ с магнитной ленты, а затем записывается на другую ленту. Несмотря на кажущуюся простоту, реализация подобной программы достаточно сложная.
Любителями БК созданы хорошие копировщики COPY4, COPIR (С. Ивашинников). Однако простого копирования при работе с файлами часто недостаточно. Автором статьи разрабатываются программы HELP и HELP3, где реализованы следующие функции операционных систем: DIR, COPY, RENAME, VERIFY, TYPE, PRINT - просмотр оглавления МЛ, копирование, изменение имени, контроль файлов на МЛ, просмотр текстовых сообщений, печать текста на принтер.
Можно просмотреть или изменить файл в форматах слова, байта, текста. В программу HELP3 встроен простейший редактор текста.
Сравнительные характеристики программ работы с файлами приведены в таблице.
Функции |
COPY4 |
COPIR |
HELP |
HELP3 |
---|---|---|---|---|
Максимальная длина файла |
70000 |
37000 |
70000 |
40000 |
Количество скоростей записи |
1 |
3 |
1 |
4 |
Чтение оглавления ленты |
Да |
- |
Да |
Да |
Чтение в экранную область |
- |
Да |
Да |
Да |
Изменение имени файла |
Да |
- |
Да |
Да |
Изменение длины файла |
Да |
- |
Да |
Да |
Изменение адреса загрузки |
Да |
- |
Да |
Да |
Запись файла потоком |
Да |
Да |
Да |
Да |
Запись файла блоками |
- |
- |
Да |
Да |
Запуск файла на выполнение |
Да |
- |
Да |
Да |
Контроль файлов |
Да |
- |
Да |
Да |
Просмотр файла |
- |
- |
Да |
Да |
Изменение файла |
- |
- |
Да |
Да |
Печать на принтер |
- |
- |
Да |
Да |
Интерактивное меню |
- |
- |
- |
Да |
Важнейшей функцией является возможность записи файлов по блокам. Длина блока задаётся произвольно. Такие файлы снабжаются автозагрузчиком и читаются из пускового монитора БК 0010 обычным образом. Порча какого-либо блока не приводит к порче всего файла: эти блоки можно прочитать с другого участка ленты. Введение блочных файлов позволило значительно повысить надёжность хранения информации.
Редакторы текста
Современный человек постоянно что-то пишет: деловые документы, письма, статьи. Текстовые редакторы нужны всем. Это самые популярные и используемые программы во всём мире.
Попробуем определить минимальный набор функций, необходимых для редактирования текста. Это исправления внутри строки (замена символов, сдвижка, раздвижка); вставка и удаление строк; листание текста (вверх, вниз, в начало, в конец). При держании клавиши в нажатом состоянии можно имитировать повторное нажатие клавиши. Перечисленные функции редакторов - стандарт и должны присутствовать всегда.
Для БК 0010 существует множество текстовых редакторов. Автору известны следующие: TR, TRED, EDIT, REDTT1, EDASP5, EDASP10, редакторы систем МИКРО10, FORTHV83.
В некоторых программах реализованы сложные и реже используемые функции: карманы, поиск фрагментов и другие. Но увы, минимальный набор команд нигде не присутствует полностью. Общая тенденция - управление редактированием "посажено" на те клавиши, которые больше понравились разработчикам. Но есть ведь определённые стандарты. Во всех перечисленных редакторах, кроме МИКРО10, не осуществляется упаковка пробелов, а это слишком роскошное использование маленькой памяти БК.
Автором разработан текстовый редактор TED6. Эта программа обладает наибольшей ёмкостью текста: в памяти микрокомпьютера можно создавать 5 - 11 листов текста формата А4 (60x60 символов). Кроме минимального набора функций редактирования, реализована работа с карманами и выравнивание текста по правому краю листа. Предусмотрена возможность записи текста на МЛ в виде автономного программного блока. Печать на принтер осуществляется для двух видов интерфейса. Строчные буквы могут быть преобразованы в заглавные. Есть возможность постраничной распечатки текста. Редактор имеет встроенное описание - это удобно для начинающих. Допустима работа в режимах 32 и 64 символа в строке, обычной и расширенной памяти БК 0010.
TED6 - хорошее средство для создания текстовых документов. Данная статья создана при помощи этого редактора.
Графические редакторы
Простейшие возможности рисования на экране дисплея защиты в ПЗУ БК 0010. Попытки создания графических редакторов предпринимались, но до последнего времени не было ничего серьёзного. Это связано со сложностью разработки.
Недавно в Москве появился мощный редактор, позволяющий при помощи "мышки” рисовать на экране, записывать рисунок на ленту, распечатывать его на принтер. Имеется несколько видов шрифта, реализованы функции окна, резиновой нити. Редактор имеет удобное меню.
Автором разработан редактор GRAF1. Здесь заложен принцип векторного хранения информации (запоминаются координаты опорных точек). Основные графические примитивы - прямая, окружность, дуга, текст (6 видов шрифта). Опорные точки примитивов задаются положением графического курсора (пера). Перо управляется при помощи клавиатуры, "мышки", джойстика, координатного планшета. Рисунок можно вывести на графопостроитель (СМ6470) или принтер (допустима загрузка любого драйвера).
Каждый рисунок имеет имя и хранится в графической библиотеке. Разрешается создание 45 рисунков в памяти БК общим объёмом до 1500 примитивов. Рисунки можно масштабировать, поворачивать, вкладывать друг в друга (5 уровней вложенности). Предусмотрено чтение или запись библиотеки на магнитную ленту. Можно создать, удалить, исправить рисунок.
Работа осуществляется в интерактивном режиме. Главное меню напоминает известный NORTON COMMANDER для IBM PC. Установка директив меню, поиск рисунков производится наглядным инверсным указателем. В программу встроено краткое описание.
Графическим редактором GRAF1 можно создавать компьютерные фильмы; имеются средства простейшей динамики. Предполагается развитие редактора в направлении усиления динамики.
Обучающие и демонстрационные программы
Компьютерное обучение, широко используемое во всем мире, пришло и в нашу страну. Появление недорогих компьютеров сделало обучающие программы доступными учащимся, а не только проверяющим комиссиям.
Применение автоматизированного обучения повышает скорость и качество усваивания материала. Наглядность графических построений, динамика, музыка делают обучение понятным и интересным.
Много обучающих программ для БК 0010 создано на интерпретаторах ФОКАЛа и БЕЙСИКа. Однако достижение хороших динамических эффектов ограничивается медленностью интерпретаторов. При создании программ на Ассемблере нужное быстродействие достигается, но значительно увеличивается трудоёмкость.
Работа на языках программирования общего назначения достаточно сложна и требует определённой квалификации специалиста. В таких условиях трудно поставить процесс создания обучающих программ "на конвейер". Поэтому предпринимаются попытки систематизировать демонстрационные эффекты, собрать их воедино и предоставить разработчику в специальном инструменте. Такой подход значительно облегчает дело.
Для создания обучающих программ и игр, содержащих динамические иллюстрации, звуковые эффекты, разработан Т-язык (Ю. Кузьмин).
Автором статьи разработана система создания демонстрационных программ SYST4. Основные её возможности следующие: создание статических и динамических рисунков, различные способы вывода текста, музыкальные эффекты, контроль знаний.
Программы составляются на специальном языке демонстрационных программ, содержащем 36 различных операторов. Исходный текст создаётся при помощи встроенного экранного редактора. Выполнение программы происходит в интерпретирующем режиме. Динамические рисунки обладают хорошим быстродействием; вывод графики реализован в 2.5 раза быстрее, чем в системных программах ПЗУ.
Ниже приводится пример использования языка демонстрационных программ.
1: |
MUSC |
140,125,110 |
; музыка: до, ре, ми |
2: |
LINE |
10,10,100,10,1,0 |
; движущаяся линия |
|
DRAW |
BM 10,10 М10,100 R10 А100,100,10 |
; рисунок |
|
TXTL |
16 |
; вывод текста с 16-й строки $ |
|
CALL |
1,2 |
; вызов операторов 1,2 |
Система достаточно компактна (4,5 Кбайта) и позволяет создавать значительные по объёму фильмы (в 3-4 раза длиннее, чем на БЕЙСИКе БК 0010.01). Здесь заложен целый комплекс демонстрационных эффектов. Программисту не надо задумываться, например, о том, как создать движущийся рисунок. Решается конкретная задача: какой рисунок и куда переместить, какое выбрать музыкальное сопровождение.
Трудоёмкость создания демонстрационных фильмов в рамках системы существенно ниже, нежели при использовании универсальных языков программирования. Работа не требует знания сложных приёмов и вполне под силу начинающему.
Игровые программы
Эта группа программ наиболее многочисленная. Здесь и шахматы (С. Шмытов), и шашки, и интересные динамические игры. Наверное, не стоит всё перечислять и описывать. Только отметим, что некоторые игры БК красивее своих прародителей на IBM PC. Например, RUNNER (А. Марков), TETRIS (А.Л. Пажитнов). Это говорит о зависимости красоты программы не столько от процессора компьютера, сколько от таланта программиста.
Перспективы развития БК 0010
Выпущенные модели микро-ЭВМ уже нашли своего пользователя. Созданы десятки клубов любителей БК 0010. Этот компьютер не залёживается на прилавках магазинов.
Но перспективы определяют заводы-изготовители. И порадовать им нечем. В каждой модели БК заложена какая-нибудь странность. БК 0010.01 удивила "новой" клавиатурой: ненадёжной и дребезжащей; к тому же клавиш стало на десяток меньше. Опытные образцы БК 0011 имеют подобную клавиатуру; огорчает грустный дизайн дисководов и бедность поставляемых программ. Разработчики обнадёживают: мол, в скором времени будут и текстовые, и графические редакторы, и много- много всего. Ничего нет и совместимости с БК 0010 тоже нет. Но сколько раз можно начинать с нуля? И, наконец, цена "бытового компьютера" БК 0011 стала совсем не бытовая.
По дошедшим слухам, один завод мечтает вместо БК выпускать РС-образную ЭВМ, другой носится с идеей создать машину в архитектуре PDP аж с винчестером. Интересно, сколько такое будет стоить? Упрямая черта нашей экономики: стремиться делать подороже и весом поболее.
БК 0010 завоевал популярность по причине малой стоимости. Он удачно заполнил нишу особо малых компьютеров. Именно в рамках этой ниши нужно развитие. Но с 1985 г. в БК ничего не изменилось даже в комплекте прилагаемых программ.
Неужели и дальше заводы-изготовители будут пребывать в глубокой спячке? Ведь потребность в таких микро-ЭВМ большая.
В новой модели БК следует увеличить память и быстродействие при условии совместимости с БК 0010. Необходим дисковод, причём только один для простоты. И должна быть возможность приобрести новую микро-ЭВМ без дисковода, работающую с магнитной лентой. Нужны две модификации: одна для пользователей и другая, более мощная, для разработчиков программ. Если стоимость окажется невысокой, то новый компьютер будет иметь успех.