Введение — для того, кто читает,
предисловие — для того, кто перелистывает.
—Г.Лихтенберг
В СССР используется более 20 тыс. бытовых компьютеров MSX и МSX-2; в основном они входят в состав комплектов учебной вычислительной техники Ямаха КУВТ, закупленных у японской фирмы «Синдзидайся» для учебных заведений.
Состав программных средств для КУВТ, а также низкое качество документации привели к весьма своеобразной ситуации, в рамках которой происходила, да и происходит, эксплуатация этой вычислительной техники.
В Москве и Новосибирске, имея достаточный доступ к иностранной литературе, приступили к разработке собственных инструментальных средств, среди которых наибольшее распространение получили текстовый редактор ТОР (ВЦ СО АН СССР, 1987 г.), «Е-практикум» (МГУ, 1987 г.), «Рапира» (НГУ) и различные версии дисковой операционной системы.
Что же касается так называемых программно–педагогических средств, то на скорую руку был разработан ряд пакетов, целесообразность использования большинства которых практика отнюдь не подтвердила. Поэтому утверждение А.В.Гиглавого, приведённое им в предисловии к книге Г. Бленда [ 76, 6 ]: «Крайне ограниченный условиями контракта состав документации и программных средств для КУВТ вызвал недоумение у пользователей в СССР. Впрочем, эти неудобства возымели неожиданные для многих последствия: уже к 1986 г. в нашей стране был создан значительный фонд инструментальных, учебных и игровых программ для КУВТ…» во второй его части достаточно далеко от истины.
Куда более неожиданным, на мой взгляд, представляется факт выхода в свет настоящей работы. Читателю, думаю, не составит большого труда сопоставить её с уже вышедшими трудами по данной проблематике и оценить охват материала, глубину и полноту его изложения, удачное сочетание строгости изложения и одновременно доступности материала.
Огромное количество приведённых программ позволяет рекомендовать эту книгу тем, кто только приступает к изучению программирования.
Вместе с тем вряд ли стоит рассматривать настоящую работу как учебник по программированию для начинающих. Скорее она ориентирована на преподавателей высших учебных заведений и старшекурсников, интересующихся проблемами новых информационных технологий и занимающихся разработкой программно–педагогических средств.
Книга вполне может быть использована в качестве справочного руководства для пользователей MSX–компьютеров.
Научный редактор
кандидат физико–математических наук
В.И. Пугач
Предисловие можно назвать громоотводом.
—Г.К.Лихтенберг
Написание и распространение среди пользователей персональных компьютеров работы, позволяющей самостоятельно приобщиться к программированию на одной из наиболее мощных и интересных версий языка программирования BASIC — MSX BASIC — является несомненно своевременной и актуальной задачей.
К решению этой задачи подталкивают и два немаловажных обстоятельства:
Настоящая книга охватывает широкий круг проблем: от основ программирования, организации работы с графическими, музыкальными средствами, видеопамятью и внешними устройствами до программирования на языке ассемблера и в машинных кодах, т.е. тех вопросов, которыми, безусловно, заинтересуется и профессиональный программист.
Мы считаем, что программирование в машинных кодах обладает хотя и запретной с точки зрения высокой методики, но от этого не менее притягательной силой. Здесь ощущение своей способности и изобретательности в управлении компьютером проявляется непосредственно и ярко.
Работа содержит огромное количество программ, причём, работая над книгой, мы не старались приводить только «застёгнутые на все пуговицы» оптимальные программы. Это, бесспорно, лишь усложнило бы задачу читателя, который по нашей книге лишь начинает своё знакомство с программированием. Особое внимание уделено подбору примеров, которые, с одной стороны, понятны большинству читателей, а с другой — далеко не тривиальны.
Более того, среди приведённых программ практический интерес представляют те, которые реализуют отдельные блоки диалоговых программ, используемых в процессе обучения. Эти составляющие элементы позволяют, на наш взгляд, осуществить далеко идущие замыслы при составлении диалоговых программ.
Было бы неправильным хоть как–то ограничивать круг возможных читателей этой книги — она для всех, у кого есть ПЭВМ. По–видимому, работа может быть использована в качестве:
Авторы благодарны тем, кто способствовал написанию этой книги: помощникам и критикам.
В написании отдельных фрагментов текста и решении многочисленных примеров принимали активное участие А.М.Седов, М.С.Кан, Д.М.Высотков, П.В.Колобков и Г.С.Беленький.
Глава 6 целиком написана А.Н.Никитиным.
Некоторые существенно важные результаты, вошедшие в Приложение 1, любезно предоставлены В.С.Лашуком.
Вычитывание книги, нахождение технических ошибок и неясных мест, предложения по внесению изменений — задача, требующая очень много времени. Мы были счастливы, когда В.А.Журавлева и В.И.Пугач нашли его для того, чтобы дать развёрнутые примечания и исправления к книге, как технические, так и стилистические.
Авторы также выражают признательность всем сотрудникам учебно–методической лаборатории при кафедре информатики и вычислительной техники КГПИ1) за моральную поддержку. Лаборатория щедро предоставляла компьютеры и обеспечивала условия, без которых была бы невозможна подготовка этой книги, которая была написана, отредактирована авторами и подготовлена к печати с помощью текстового редактора ТОР (автор Бараз Л.С.) на персональном компьютере «YAMAHA».
Один из авторов, М.В.Швецкий, посвящает свой труд родителям — Виктории Михайловне и Владимиру Семеновичу — с любовью.
Авторы просят все замечания и предложения по дальнейшему улучшению книги направлять по адресу: 443090, г.Куйбышев, ул.Антонова–Овсеенко, 24, кафедра информатики и ВТ КГПИ.
«ПРОЛИСТИКА, или ПРОГНОЛИСТИКА, дисциплина, занимающаяся прогностическим конструированием языков будущего…
Люди не в состоянии сами прогнозировать языки будущего; этим, в рамках проекта ПРОЛИНЭ (ПРОгнозирование ЛИНгвистической Эволюции), занимаются компьютеры 82–го поколения… Благодаря ПРОЛИНЭ можно генерировать какие угодно высказывания на языке сколь угодно удаленного будущего и некоторые из них при помощи РЕТРОЛИНЕРОВ переводить на удобопонятный язык, извлекая из полученных сведений практическую пользу (см.табл.LXXIX). Согласно шкале Цвибуллина–Чосснеца, главным законом эволюции языка является «стягивание» пространных высказываний в «понятийные узлы».
Так,например, высказывание: «Административное, торговое или развлекательное заведение, внутрь которого можно въехать на автомобиле и воспользоваться его услугами, не выходя из машины», — в процессе развития языка, «стягивается» в одно слово: «вьех».
Подобным же образом высказывание: «Поскольку, согласно общей теории относительности, невозможно установить, что происходит в данный момент на планете Икс, удалённой от Земли на N световых лет, Министерство Внеземных Дел в своей космической политике вынуждено исходить не из реальных инопланетных событий (ибо таковые принципиально недоступны наблюдению), а из гипотетической истории этих планет, моделированием которой занимаются службы внеземного слежения и постижения, т.н. СКОРОПОСТИЖНИКИ», — мы заменяем одним словом «чуделировать» (а также его производным: чуделятор, чудило, чудик, чудировать, чудесить, чудронить, чудрить и т.п.).
И «вьех» и «чуделировать» — слова современного языка, который в прогнолингвистике относится к нулевому уровню (нуль–язык). Над нуль–языком надстраиваются следующие уровни: МЕТАЯЗЫК–1, МЕТАЯЗЫК–2 и т.д., причём неизвестно, имеет ли этот рядпредел или продолжается в бесконечность.
Весь текст настоящей статьи Эстелопедии («Пролистика») в МЕТАЯЗЫКЕ–2 выглядит так: «Оптимальник в эн–копайдке завсклизуется в эн–тесинклюсдоху». Из «Экстелопедии Вестранда в 44 магнетомах»(энциклопе дии XXI века, опубликованной издательством «Вестранд и К» в 2021 г.)
—С.Лем. Мнимая величина
Решение задачи при помощи вычислительного устройства начинается с составления алгоритма.
Под алгоритмом понимают понятное и точное предписание (указание) исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи.
Язык программирования — это способ записи алгоритмов, предназначенных для исполнения на ЭВМ. Изложение алгоритма на языке программирования называется программой.
Вследствие того, что посредством ЭВМ решаются задачи различных типов — от количественных расчётов до обработки нечисловой информации — разработан целый ряд языков программирования, каждый из которых ориентирован, главным образом, на решение задач определённого типа. К этому ряду языков относятся, например, Алгол, Фортран, PL/1, Паскаль, Ассемблер, C и др.
Язык программирования BASIC отличается простотой, близостью к математическим формулам и конструкциям обычного английского языка и, вместе с тем,достаточно широкими возможностями для решения задач прикладной математики, физики и техники.Название этого языка программирования представляет собой аббревиатуру английского выражения: «Beginner's All–purpose Symbolic Instruction Code», что в переводе означает «многоцелевой язык символических инструкций для начинающих».
Важной чертой BASIC является не только его простота и доступность, но и предоставляемая им возможность решать задачи в режиме диалога с ЭВМ.
Отметим,что реализация языка программирования — это программа (или комплекс программ), которая переводит текст с языка программирования на язык команд конкретной ЭВМ. В простейшем случае это одна программа — транслятор или интерпретатор.
При создании реализации неизбежны отклонения от стандарта языка. Уточняются некоторые детали, вводятся ограничения, связанные с конкретной ЭВМ, добавляются новые возможности.В результате разные реализации имеют разные возможности, образуются разные версии конкретного языка программирования.
На мировом рынке персональных компьютеров широкое распространение получили персональные компьютеры стандарта MSX, который был разработан в 1983 году фирмой «Microsoft Corporation» (MSX — сокращение от «MicroSoft eXtented BASIC» 2) ).
Персональные ЭВМ этого стандарта, сразу же после их появления, составили конкуренцию персональным компьютерам стандарта IBM PC. За сравнительно короткое время несколько фирм выпустили на рынок свои ПЭВМ стандарта MSX:
В 1985 г. было разработано расширение стандарта MSX, которое получило название MSX 2. В этом же году появились первые персональные компьютеры нового стандарта: HB–F500P и HB–G900P фирмы «SONY». По сравнению с MSX они имеют увеличенные графические возможности (7 графических режимов вместо 2); появился новый текстовый режим экрана, обеспечивающий 80 символов в строке; ёмкость видеопамяти составляет уже не 16, а от 64 до 128 Кбайт; расширена цветовая гамма: допускается использование не 16, а 256 или 512 цветов.
Однако все ПЭВМ стандартов MSX и MSX 2 имеют существенный недостаток по сравнению с компьютерами IBM PC — они восьмиразрядные. Но фирмы–изготовители уже сообщили о третьем усовершенствовании MSX–стандарта MSX 3. Компьютеры MSX 3 будут уже шестнадцати– или тридцатидвухразрядными!
В предлагаемой Вашему вниманию книге описана версия языка программирования BASIC (MSX BASIC), используемая на персональных компьютерах YAMAHA двух стандартов: MSX (мы будем называть её ниже MSX 1) и MSX 2.
Эта версия BASIC является одной из наиболее мощных и интересных его разновидностей. Все остальные версии языка BASIC, отличные от MSX BASIC и применяемые в отечественных и зарубежных микроЭВМ (Изот 1031C, Изот 1036C (ЕС 1831), Изот 1037C (ЕС 1832), ЕС 1840, Правец 16, Роботрон 1715 и др.) как правило, содержат в той или иной степени элементы (операторы и команды) MSX BASIC.