|
|
Строка 1: |
Строка 1: |
| {{ДИ}}
| | '''Материал удален по требованию автора.''' |
| {{TOCright}}
| |
| | |
| <pre>
| |
| 2.1. Краткий обзор программного обеспечения БК
| |
| | |
| Как уже говорилось, в БК имеется 32К ПЗУ, в котором хранится
| |
| системное программное обеспечение (ПО). Оно является встроенным в
| |
| микроЭВМ и не может быть простыми средствами изменено.
| |
| В БК-0010-01 встроен управляющий МОНИТОР (операционная система) и
| |
| транслятор с языка Бейсик. Прикладываемый в комплекте блок МСТД
| |
| позволяет заменить Бейсик сразу на две системные программы:
| |
| интерпретатор языка Фокал и тестовую систему, включающую в себя тесты
| |
| для проверки работоспособности БК и пультовый отладчик.
| |
| Заводы-изготовители БК давно намеревались изготавливать также
| |
| аналогичные МСТД блоки с трансляторами языков PASCAL, C, FORTH, с
| |
| ассемблерами и отладчиками, но до сих пор эти благие пожелания не
| |
| реализованы. Показательно, что практически никакой информации по БК и
| |
| различным внешним устройствам найти обычно не удается и часто
| |
| приходится ориентироваться на слухи. Например, авторам известно, что в
| |
| Казани продаются подключаемые к БК блоки ПЗУ с комплектами популярных
| |
| игровых программ.
| |
| Огромное количество программ может быть загружено в БК с
| |
| магнитофона. Их можно разделить на три большие группы: системные,
| |
| прикладные и игровые.
| |
| К системным программам относятся:
| |
| 1) Трансляторы с языков программирования, таких, как FORTH, T-язык,
| |
| Бейсик (кстати, последняя Вильнюсская разработка Бейсика значительно
| |
| превосходит встроенный Бейсик БК - например, допускается много строк
| |
| продолжения, и работает он на порядок быстрее из-за того, что в нем
| |
| реализована вещественная арифметика одинарной точности).
| |
| 2) Расширители возможностей встроенных трансляторов. Для Бейсика
| |
| создан С.Зильберштейном SBASIC (структурный Бейсик), позволяющий
| |
| писать много операторов в строку, использовать при программировании
| |
| различные структурные конструкции и процедуры, исполнять музыку и
| |
| многое другое [14]. Для Фокала таких расширителей множество:
| |
| - семейство однотипных примитивных ФОКОДов, каждый из которых был
| |
| написан своим автором для решения конкретных задач (например,
| |
| FOCOD/Alek А.Донского позволял вызывать подпрограммы в кодах для
| |
| рисования дуг, спиралей и генерации простейших звуков). Сегодня все
| |
| подобные системы можно считать устаревшими;
| |
| - ИВФ (Интерфейс Внешних Функций) П.Полянского позволяет включать
| |
| подпрограммы в кодах и обращаться к ним, как к функциям Фокала.
| |
| Наибольшее распространение из программ ИВФ имеет ИВФ МАССИВЫ,
| |
| содержащая удобные средства работы с целыми, вещественными и
| |
| текстовыми массивами, что невозможно или крайне неэффективно в
| |
| "чистом" Фокале;
| |
| - XFOCAL С.Зильберштейна - удобный универсальный расширитель,
| |
| имеющий экранный редактор Фокал-программы, операторы программирования
| |
| музыки, графики, спрайтов;
| |
| - ФОНД (ФОртран На Дому) Г.Приса дает возможность повышения
| |
| точности вещественной арифметики, операций с массивами и многое
| |
| другое. Популярная версия МИФ (Мини-ФОНД) позволяет программисту
| |
| собрать МИФ только из нужных в данной программе функций; он удобен в
| |
| обращении и позволяет подключать новые функции. В МИФе уже реализованы
| |
| подпрограммы исполнения музыки, вывода спрайтов и символов
| |
| произвольного размера, сборка Фокал-программ из отдельных частей,
| |
| экранный и графический редакторы и многое другое.
| |
| 3) Сервисные системные программы:
| |
| - копировщики программ (например, COPY6, UNIC, КУВТ-Копир/Alek,
| |
| КОПИРАК, HELP и др.). Современные копировщики выполняют такие функции,
| |
| как загрузка первого попавшегося файла, контроль процесса загрузки в
| |
| экранном ОЗУ, несколько скоростей копирования, установка самозапуска
| |
| для программ в кодах (а КОПИРАК Радченко приделывает блок самозапуска
| |
| к программам на Фокале). КУВТ-Копир/Alek А.Донского предназначен для
| |
| работы на БК в составе КУВТ с центральной ЭВМ типа ДВК и позволяет
| |
| загружать программы с магнитофона и с дисковода ДВК, копировать и
| |
| запускать на выполнение. Кроме того, он позволяет автоматически
| |
| копировать целые наборы файлов с дисковода на магнитофон;
| |
| - каталогизаторы (TSTF5M, KATALM и др.), составляющие каталог
| |
| магнитных кассет и заодно проверяющие качество записи программ;
| |
| - экранные редакторы текстов (EDASP, ГРАТРС, РЕДТ и др.),
| |
| предназначенные для создания и редактирования текстовых файлов.
| |
| Некоторые из них позволяют использовать изменяемые символы
| |
| псевдографики. Наиболее мощным и удобным редактором следует признать
| |
| EDASP (ASP corp.). Поскольку EDASP-овские тексты используются многими
| |
| прикладными системами (BASE и др.), EDASP сегодня можно считать
| |
| стандартным текстовым редактором для БК. Есть также его версия для
| |
| работы с КУВТ;
| |
| - графические редакторы ГРЕД, ГРАФРЕД, PAINT и ряд других предназ-
| |
| начены для редактирования спрайтов, и, соответственно, используются
| |
| преимущественно программирующими в кодах. Некоторые редакторы исполь-
| |
| зуют подключаемую к БК "мышь" или джойстик. На уроках информатики в
| |
| школах может быть применен редактор PAINT, демонстрирующий великолеп-
| |
| ный графический интерфейс в стиле IBM PC и работающий с КУВТОМ, а так-
| |
| же редакторы REDA (А.Донского) и GRAF1M, оперирующие понятиями "графи-
| |
| ческий примитив", "объект", "каталог объектов", "протокол рисования
| |
| объекта", "иерархия объектов в рисунке". REDA удобен для рисования
| |
| сложных картин для использования в прикладных программах и позволяет
| |
| сохранять на дисках КУВТа протоколы рисования, а также генерировать
| |
| текст на ассемблере MACRO-11, что удобно для программистов, использую-
| |
| щих ДВК в качестве инструментальной машины;
| |
| - драйверы печатающих устройств и прочие сервисные программы.
| |
| 4) Программы для работы в кодах (подробнее см. гл.4 и 5):
| |
| - отладчики (ГРОТ, ПРОТ, MIRAGE), позволяющие дизассемблировать
| |
| отлаживаемую программу, редактировать ее (вводить новые команды в
| |
| мнемонике ассемблера), производить пошаговую отладку программы с
| |
| распечаткой текущих значений регистров, устанавливать контрольные
| |
| точки и т.п.;
| |
| - транслятор МИКРО (МИКРО9, МИКРО10 и т.д.) А.Сомова, С.Шмытова и
| |
| С.Кумандина, включающий редактор текста программы на ассемблере,
| |
| транслятор, создающий объектные модули, и компоновщик, собирающий
| |
| загрузочный модуль из нескольких объектных;
| |
| - дизассемблеры (стоит отметить лишь ДИЗАКС С.Кумандина, который
| |
| выдает дизассемблированный текст в формате системы МИКРО);
| |
| - ряд вспомогательных программ, используемых отдельными любителями;
| |
| - системы и программы для программистов, работающих на КУВТ,
| |
| например, эмулятор EMT RT-11 для исполняющей системы PASCAL.
| |
| К прикладным программам относятся все программы, предназначенные
| |
| для решения какой-либо определенной задачи из области быта,
| |
| образования, науки и техники. Здесь и программы раскроя брюк, и
| |
| тренажер по Правилам дорожного движения, и психологические тесты, и
| |
| программа управления елочной гирляндой, и цветомузыка, и даже
| |
| телефонный автоответчик.
| |
| Особо следует выделить универсальные прикладные программы:
| |
| - BASE (ASP corp.) - программа ведения базы данных. Это может быть
| |
| телефонный справочник, словарь, каталог библиотеки и т.п. Программа
| |
| позволяет добавлять и корректировать записи в базе данных и
| |
| осуществлять поиск по различным признакам, ключевым словам;
| |
| - CALC (А. Бакерин) - электронная таблица, позволяющая в удобной и
| |
| наглядной форме производить расчеты различной сложности, от начисления
| |
| зарплаты по коэффициенту трудового участия до расчета лабораторных
| |
| работ по физике в университете.
| |
| Упомянем также музыкальные редакторы (например, МЕЛОМАН, КЛАВЕСИН),
| |
| позволяющие набрать и отредактировать музыкальное произведение, а
| |
| потом встроить его в свою программу (для тех, кто программирует в
| |
| кодах, конечно).
| |
| Игровые программы - самый популярный класс на БК. Одно их
| |
| перечисление займет чуть ли не полкниги. Особенно ценятся игровые
| |
| программы в кодах, потому что на Бейсике или Фокале, даже с
| |
| использованием перечисленных расширений, невозможно сделать то, что
| |
| удается выжать из машины талантливым авторам этих программ - ASP
| |
| corp., В.Савину, А.Маркову и многим другим. Конечно, БК уступает всем
| |
| зарубежным компьютерам по объему памяти, поэтому и игровые программы
| |
| здесь примитивнее и менее ярки, но это не повод отказываться от БК !
| |
| Ряд фирм, занимающихся продажей программ для БК, например, НПК
| |
| "СБИС" (167024, г.Сыктывкар, а/я 429), периодически печатают каталоги
| |
| программ для БК, а также "Бюллетень БК", в котором делается обзор
| |
| новых аппаратных и программных средств и приводится много полезных
| |
| советов как для начинающих, так и для опытных программистов. Еще одним
| |
| надежным источником информации может служить журнал "Информатика и
| |
| образование", а также брошюры серии "Вычислительная техника и ее
| |
| применение" общества "Знание".
| |
| Упомянутые выше программы можно приобрести в НПК "СБИС", в других
| |
| аналогичных предприятиях, а также в фирменных магазинах-салонах
| |
| "Электроника". Следите за рекламой в журнале "Информатика и
| |
| образование" !
| |
| В следующих пунктах будет кратко описано встроенное программное
| |
| обеспечение БК.
| |
| | |
| 2.2. Бейсик
| |
| | |
| Бейсик считается языком высокого уровня, легким в освоении, и
| |
| предназначается для начинающих программистов-непрофессионалов. Но, по
| |
| мнению классиков, создание Бейсика - это яркий пример профанации
| |
| программирования. Бейсик имеет ряд недостатков, главный из которых -
| |
| невозможность структурирования программы, что навязывает программисту
| |
| "плохой стиль" работы. Человеку, начинающему осваивать вычислительную
| |
| технику с Бейсика, будет труднее воспринять современные технологии
| |
| программирования. Те, кто стоит "за" Бейсик, приводят такой
| |
| неотразимый аргумент, что "Бейсик есть на всех марках ЭВМ,
| |
| следовательно, это основа компьютерной грамотности". На это им можно
| |
| ответить: "И на всех ЭВМ он разный, похожий на своих собратьев лишь
| |
| основными чертами". Мнения авторов на этот счет также разделились, но,
| |
| видимо, жизнь диктует свои условия. На IBM PC с Турбо-Прологом и
| |
| Турбо-Паскалем у наших читателей вряд ли хватит долларов, а тем более
| |
| рублей, а БК с Бейсиком уже стоит на Вашем столе.
| |
| Итак, встроенный Бейсик БК совместим со стандартом MSX [13], но
| |
| имеет по сравнению с ним ряд ограничений: например, в нем можно
| |
| записывать только один оператор в строке программы. Нет также
| |
| операторов типа "PLAY" для программирования музыки и многих других.
| |
| Многие из этих недостатков преодолеваются с использованием расширителя
| |
| SBASIC (см.выше). Однако сам SBASIC занимает немало места в и без того
| |
| ограниченном ОЗУ.
| |
| Встроенная в БК Бейсик-система запускается автоматически при
| |
| включении питания. Бейсик-система хранит в ОЗУ текст Вашей программы
| |
| на языке Бейсик и позволяет записать его на магнитофон и прочитать его
| |
| с магнитофона. При запуске программы на выполнение производится
| |
| компиляция текста с языка Бейсик в шитый код. Шитый код Бейсик-системы
| |
| представляет собой последовательность адресов вызываемых подпрограмм и
| |
| данных для них. После успешной трансляции управление передается
| |
| исполняющей системе Бейсика, которая последовательно вызывает нужные
| |
| подпрограммы.
| |
| Если учесть, что в ОЗУ одновременно хранятся исходный текст
| |
| программы на Бейсике, ее шитый код (который обычно не короче исходного
| |
| текста), данные программы и служебные переменные Бейсика (которые,
| |
| будем считать, занимают адреса с 1000 по 4000), то видно, что Бейсик
| |
| использует память крайне неэффективно. Поэтому написать на Бейсике
| |
| большую программу невозможно, а хорошую маленькую - проблематично.
| |
| По сравнению с обычной программой в машинных кодах шитый код
| |
| Бейсика выполняется в несколько раз медленнее (хотя и на порядок
| |
| быстрее, чем простая интерпретация Фокала). Особенностью встроенного
| |
| Бейсика БК является также программная реализация вещественной
| |
| арифметики двойной точности. Это очень сильно замедляет программу, где
| |
| есть какие-либо арифметические расчеты.
| |
| А сейчас давайте познакомимся с двумя командами Бейсика.
| |
| Предположим, Вы включили БК и хотите загрузить игровую программу в
| |
| кодах. Для этого Вам необходимо перейти из Бейсика в пусковой монитор
| |
| БК с помощью команды MONIT (достаточно набрать три буквы: MON и нажать
| |
| клавишу "ВК").
| |
| Еще одна команда пригодится Вам, если Вы хотите загрузить
| |
| расширитель Бейсика. Он должен быть записан на Вашем магнитофоне под
| |
| именем "SBASIC.BIN". В этом случае после включения питания БК введите
| |
| команду BLOAD"SBASIC",R .
| |
| Эта команда загрузит в ОЗУ программу SBASIC и сразу же запустит ее
| |
| на выполнение. Возможности SBASICа описаны в [14].
| |
| Хотя литературы по Бейсику вообще очень много, но конкретно по
| |
| Бейсику БК практически нет, поэтому в следующей главе приведено
| |
| описание основных операторов и функций Бейсика БК, а также некоторых
| |
| его особенностей, не видных с первого взгляда. Эти советы помогут Вам
| |
| сделать Ваши программы на Бейсике более эффективными.
| |
| | |
| 2.3. Фокал
| |
| | |
| Язык Фокал считается языком высокого уровня. Все претензии,
| |
| высказываемые Бейсику, справедливы также и для Фокала. Фокал несколько
| |
| проще Бейсика, но, пожалуй, сложнее в изучении. Не чужда ему и
| |
| некоторая элегантность по сравнению с Бейсиком (например, понятие
| |
| групп строк рождает целую серию интересных программистских приемов).
| |
| Фокал также имеет неплохие изобразительные возможности, а с
| |
| использованием ряда вышеописанных расширителей вполне
| |
| конкурентоспособен с Бейсиком.
| |
| Для того, чтобы работать с Фокалом, необходимо подключить к БК блок
| |
| МСТД. Подключение и отключение блока можно производить только при
| |
| выключенном питании ! При включении БК с МСТД автоматически будет
| |
| запущен Фокал.
| |
| Интерпретатор Фокала занимает в ПЗУ в три раза меньше места, чем
| |
| транслятор Бейсика - это одно из преимуществ такого типа исполняющих
| |
| систем. Что же такое "интерпретатор" ? Транслятор компилирующего типа
| |
| (компилятор) один раз переводит программу с исходного языка (например,
| |
| Бейсика БК) в машинные коды или в шитый код, как у Бейсика, и потом
| |
| полученная программа выполняется сама или с участием исполняющей
| |
| системы. Интерпретатор же хранит в ОЗУ исходный текст программы
| |
| (например, на Фокале), и переводит его по мере выполнения буквально по
| |
| буковке. Поскольку задача анализа текста программы достаточно сложна,
| |
| интерпретаторы выполняют программу чрезвычайно медленно. Это их
| |
| основной недостаток.
| |
| Достоинства часто бывают продолжением недостатков. Так и в данном
| |
| случае. Фокалу не нужна дополнительная память для размещения шитого
| |
| кода, как у Бейсика, поэтому текст программы на Фокале может занять
| |
| почти все ОЗУ. Такие длинные программы, как игры PRESIDENT, MANAGER,
| |
| KLINGI, на БК можно было реализовать только на Фокале. Итак, если Вам
| |
| не нужно быстродействие, но нужна большая и сложная программа,
| |
| выбирайте Фокал.
| |
| Язык Фокал исчерпывающе описан в [10], поэтому здесь мы упомянем
| |
| лишь две команды Фокала:
| |
| P M - переход в пусковой монитор;
| |
| P T - переход в командный режим тестовой системы.
| |
| Интерпретатор Фокала занимает в ПЗУ адреса с 120000 по 137777.
| |
| | |
| | |
| 2.4. Пусковой монитор
| |
| | |
| Как Вы уже знаете, в ПЗУ с адреса 100000 по 117777 записана
| |
| операционная система БК - мы назвали ее МОНИТОРом. МОНИТОР содержит в
| |
| себе пусковой монитор, EMT-диспетчер и драйверы внешних устройств:
| |
| клавиатуры, дисплея и магнитофона. EMT-диспетчер предназначен для
| |
| удобства обращения программ к драйверам с помощью команды процессора
| |
| EMT. Драйверы же представляют собой набор подпрограмм, выполняющих те
| |
| или иные действия с внешними устройствами. Подробное описание этих
| |
| подпрограмм и способов их вызова приведено в гл.4.
| |
| Пусковой монитор предназначен для инициализации системы при
| |
| включении питания БК. Кроме этого, пусковой монитор имеет командный
| |
| режим, в котором Вы можете загрузить с магнитофона программу в кодах и
| |
| запустить ее на выполнение.
| |
| Инициализация при включении питания заключается в установке
| |
| указателя стека, векторов прерываний и служебных ячеек, используемых
| |
| драйверами. После этого производится очистка экрана и управление
| |
| передается программе, находящейся в системном ПЗУ по адресу 120000. В
| |
| БК-0010-01 управление получает Бейсик, а при подключенном блоке МСТД -
| |
| Фокал.
| |
| Как из Бейсика, так и из Фокала можно перейти в командный режим
| |
| пускового монитора. Обычно это необходимо для работы с программами в
| |
| кодах. Признаком командного режима пускового монитора является знак
| |
| "?" на экране. Допустимы следующие команды:
| |
| М - загрузка программы с магнитофона по адресу, указанному в
| |
| оглавлении файла на ленте;
| |
| М2000 - загрузка по указанному восьмеричным числом адресу (в данном
| |
| примере - с адреса 2000);
| |
| S - запуск программы с адреса ее загрузки;
| |
| S12700 - запуск с указанного восьмеричным числом адреса (в данном
| |
| примере - с адреса 12700);
| |
| Т - переход в командный режим тестовой системы (адрес запуска
| |
| тестов 160100; тесты находятся в блоке МСТД);
| |
| любая буква от "А" до "К" вызовет перезапуск системной программы
| |
| (Бейсика либо Фокала).
| |
| | |
| 2.5. Тестовая система
| |
| | |
| Тестовая система включает в себя набор тестов для проверки
| |
| работоспособности БК и пультовый отладчик, позволяющий просматривать и
| |
| изменять содержимое памяти и выполнять ряд других операций. Для работы
| |
| с тестовой системой необходимо подключить блок МСТД и с помощью
| |
| команды P T перейти из Фокала в тестовую систему.
| |
| Признаком командного режима тестовой системы является знак "+".
| |
| Вводимые цифры от 1 до 5 являются командами запуска тестов ОЗУ и ПЗУ,
| |
| клавиатуры (этот тест расчитан на клавиатуру БК-0010), порта
| |
| ввода-вывода, знакогенератора и магнитофона.
| |
| Для выхода из тестовой системы в Фокал надо нажать букву "К".
| |
| Для перехода в пультовый отладчик нужно включить русский шрифт
| |
| клавишей "РУС" и набрать команду ТС. Появится признак командного
| |
| режима отладчика - символ "$".
| |
| Отладчик позволяет просматривать и изменять содержимое памяти, а
| |
| также выполнять рад операций с массивами данных в памяти. В нем
| |
| используются понятия: "текущий адрес" - это адрес, установленный
| |
| командой "А", с ним работают команды чтения и записи слова (байта);
| |
| "длина массива" - используется для команд работы с массивами, при этом
| |
| началом массива считается текущий адрес. Все числа и адреса в
| |
| отладчике записываются в восьмеричной системе счисления. Перечислим
| |
| команды отладчика:
| |
| А - проконтролировать значение текущего адреса;
| |
| адресА - установить новое значение текущего адреса (последовательно
| |
| набираются значение адреса и буква "А");
| |
| Д - проконтролировать значение длины массива;
| |
| длинаД - установить значение длины массива;
| |
| числоР - записать "число" в память в диапазоне, определяемом
| |
| текущим адресом (А) и длиной массива (Д);
| |
| адресС - сравнить массив, начинающийся с адреса "адрес", с
| |
| массивом, начинающимся с адреса А. Оба массива имеют длину Д;
| |
| Х - подсчитать контрольную сумму массива А длиной Д;
| |
| адресП - переписать массив А длиной Д с адреса "адрес"
| |
| (скопировать массив);
| |
| количествоЛ - сделать дамп памяти (распечатать по словам
| |
| "количество" байт памяти с адреса А;
| |
| И - прочитать слово по адресу А;
| |
| числоИ - записать слово по адресу А;
| |
| Б - прочитать байт по адресу А;
| |
| числоБ - записать байт по адресу А;
| |
| Ц - циклическое чтение - запись слова по адресу А;
| |
| Щ - снять защиту системной области (адреса меньше 1000);
| |
| , - чтение слова и увеличение текущего адреса А (удобно для
| |
| последовательного просмотра содержимого памяти);
| |
| число, - запись слова и увеличение текущего адреса А (удобно для
| |
| последовательной записи слов в память - например, при наборе небольшой
| |
| программы в кодах);
| |
| . - аналогично ",", но для байтов;
| |
| - - чтение или запись слова, аналогично ",", но с уменьшением
| |
| адреса А;
| |
| : - то же для байтов;
| |
| МЧ, МЗ, МФ - чтение, запись и поиск файла на ленте;
| |
| адресG - запуск программы с "адреса";
| |
| К - выход из тестовой системы в Фокал.
| |
| | |
| </pre>
| |
|
| |
|
| [[Категория:Программирование на БК-0010-01]] | | [[Категория:Программирование на БК-0010-01]] |