...И указывают тысячами пальцев тысячи
дорожек для скитальцев.
Г.Лорка
П р е д и с л о в и е р е д а к т о р а ........................ 3
О т а в т о р о в .............................................. 4
В в е д е н и е .................................................. 6
Г Л А В А I. ОСНОВНЫЕ ОБъЕКТЫ MSX-BASIC
I.1. Алфавит ..................................................... 8
I.2. Константы. Одинарная и двойная точность ..................... 9
I.3. Переменные .................................................. 12
I.4. Понятие оператора. Оператор DEF ............................. 14
I.5. Массивы переменных. Оператор ERASE .......................... 15
I.6. Имена, значения и типы ...................................... 17
I.7. Операции .................................................... 19
I.7.1. Арифметические операции ................................ 19
I.7.2. Операции отношения. Логические операции ................ 20
I.7.3. Строковые операции ..................................... 22
I.7.4. Операции-функции ....................................... 23
I.7.5. Функция RND. Псевдопеременная TIME ..................... 26
I.8. Выражения ................................................... 30
I.8.1. Арифметические и строковые выражения ................... 31
I.8.2. Логические выражения ................................... 31
I.9. Дополнение .................................................. 33
Г Л А В А II. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ
II.1. Режимы работы .............................................. 34
II.2. Интерпретаторы и компиляторы ............................... 37
II.3. Оформление и редактирование программ ....................... 38
II.3.1. Команда AUTO. Команда RENUM ........................... 40
II.3.2. Команда DELETE. Команда [L]LIST ....................... 41
II.4 Линейные программы .......................................... 42
II.4.1. Оператор присваивания LET ............................. 42
II.4.2. Оператор SWAP ......................................... 45
II.4.3. Оператор комментария REM .............................. 45
II.4.4. Оператор вывода данных PRINT в простейшем случае ...... 47
II.4.5. Операторы ввода данных DATA и READ. Оператор RESTORE .. 50
II.4.6. Оператор вывода PRINT в общем случае .................. 52
II.4.7. Оператор ввода данных INPUT............................ 57
II.4.8. Оператор LINEINPUT .................................... 59
II.4.9. Операторы END и STOP. Команда CONT .................... 61
Г Л А В А III. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ И ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
III.1. Оператор безусловной передачи управления GOTO ............. 62
III.2. Оператор условной передачи управления IF .................. 63
III.3. Оператор ON GOTO .......................................... 70
III.4. Программирование циклов ................................... 73
III.5. Примеры ................................................... 85
Г Л А В А IV. ФУНКЦИИ И ПОДПРОГРАММЫ
IV.1. Встроенные функции преобразования .......................... 98
IV.1.1. LEN-функция ........................................... 98
IV.1.2. INSTR-функция ......................................... 99
IV.1.3. VAL-функция ........................................... 100
IV.1.4. STR$-функция .......................................... 101
IV.1.5. ASC-функция ........................................... 103
IV.1.6. CHR$-функция .......................................... 103
IV.1.7. BIN$-функция .......................................... 104
IV.1.8. OCT$-функция .......................................... 106
IV.1.9. HEX$-функция .......................................... 106
IV.2. Встроенные строковые функции ............................... 108
IV.2.1. MID$-функция .......................................... 108
IV.2.2. LEFT$-функция ......................................... 112
IV.2.3. RIGHT$-функция ........................................ 112
IV.2.4. STRING$-функция ....................................... 114
IV.2.5. SPACE$-функция ........................................ 115
IV.2.6. Примеры ............................................... 115
IV.3. Функции пользователя. Оператор DEF FN ...................... 120
IV.4. Подпрограммы ............................................... 123
IV.5. Оператор ON GOSUB .......................................... 134
IV.6. Дополнение 1 [77] .......................................... 136
IV.7. Дополнение 2 [90] .......................................... 137
Г Л А В А V. ГРАФИЧЕСКИЕ СРЕДСТВА MSX-BASIC
V.1. Оператор SCREEN в простейшем случае (для компьютера MSX-1) .. 138
V.2. Оператор WIDTH. Операторы KEY OFF и KEY ON .................. 139
V.3. Управление текстовым курсором ............................... 140
V.4. Базовые графические операторы MSX-BASIC ..................... 142
V.4.1. Оператор COLOR для компьютера MSX-1 .................... 142
V.4.2. Оператор COLOR для компьютера MSX-2 .................... 144
V.4.3. Оператор CLS ........................................... 145
V.4.4. Оператор PSET. Оператор PRESET ......................... 145
V.4.5. Оператор LINE .......................................... 147
V.4.6. Оператор CIRCLE ........................................ 151
V.4.7. Функция POINT. Оператор PAINT .......................... 154
V.4.8. Вывод рисунков на принтер .............................. 156
V.5. Графический макроязык GML ................................... 162
V.6. Спрайты ..................................................... 166
V.6.1. Формирование значения спрайта .......................... 168
V.6.2. Вывод спрайта на экран ................................. 169
V.6.3. Столкновение спрайтов .................................. 177
V.7. Оператор SCREEN в общем случае .............................. 180
V.8. Понятие файла [5]. Вывод текстовой информации на
графические экраны .......................................... 181
V.9. Режим SCREEN 4 (только для компьютера MSX-2) ............... 185
V.10. Режим SCREEN 5 (только для компьютера MSX-2) ............... 188
V.11. Режим SCREEN 6 (только для компьютера MSX-2) ............... 199
V.12. Режим SCREEN 7 (только для компьютера MSX-2
с видеопамятью 128 Кбайтов) ................................ 199
V.13. Режим SCREEN 8 (только для компьютера MSX-2
с видеопамятью 128 Кбайтов) ................................ 200
V.14. Дополнение ................................................. 201
Г Л А В А VI. МУЗЫКАЛЬНЫЕ СРЕДСТВА MSX-BASIC
VI.1. Описание команд MML ........................................ 205
VI.2. Oператор PLAY. Функция PLAY. Оператор BEEP ................. 210
VI.3. Оператор SOUND ............................................. 215
VI.4. Примеры музыкальных программ ............................... 222
Г Л А В А VII. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА MSX-BASIC
VII.1. Работа с клавиатурой ...................................... 228
VII.1.1. Нестандартный ввод с клавиатуры ...................... 228
VII.1.2. Функциональные клавиши ............................... 230
VII.1.3. Джойстик ............................................. 231
VII.2. Переход к подпрограмме по событию ......................... 237
VII.2.1. Переход по ключу ..................................... 239
VII.2.2. Переход по временному интервалу ...................... 240
VII.2.3. Переход по нажатии клавиш "CTRL"+"STOP" .............. 241
VII.2.4. Переход по джойстику ................................. 242
VII.2.5. Одновременная обработка событий различных типов ...... 244
VII.3. Инициализация в языке MSX-BASIC ........................... 247
VII.4. Работа с принтером ........................................ 250
VII.4.1. Команды для управления типом печати .................. 250
VII.4.1.1. Управление типом шрифта ......................... 250
VII.4.1.2. Управление шагом шрифта ......................... 251
VII.4.1.3. Специальные режимы печати ....................... 252
VII.4.2. Управление вертикальной позицией печатающей головки .. 255
VII.4.3. Управление горизонтальной позицией печатающей головки. 257
VII.4.4. Команды управления графикой .......................... 260
VII.4.5. Использование макрокоманд ............................ 262
VII.4.6. Другие полезные команды .............................. 263
Г Л А В А VIII. НЕКОТОРЫЕ ВОПРОСЫ МЕТОДОЛОГИИ ОТЛАДКИ ПРОГРАММ
VIII.1. Ошибки при программировании .............................. 265
VIII.2. Некоторые классические приемы тестирования программ ...... 268
VIII.2.1. Ручная проверка ..................................... 268
VIII.2.2. Ручная прокрутка. Методические указания по ее
проведению .......................................... 270
VIII.2.3. Метод контрольных тестов ............................ 272
VIII.2.3.1. Стратегия тестирования ......................... 274
VIII.2.3.2. Тактика тестирования ........................... 276
VIII.2.3.3. Типы тестов .................................... 280
VIII.3. Методы локализации ошибок ................................ 282
VIII.3.1. Трассировка ......................................... 284
VIII.3.2. Аварийная печать .................................... 285
VIII.3.3. Локализация с точками останова ...................... 286
VIII.3.4. Программная обработка ошибок ........................ 288
VIII.3.5. Некоторые причины, осложняющие поиск ошибок [57] .... 292
VIII.4. Принципы исправления и анализа допущенных ошибок ......... 294
VIII.5. Основные понятия структурного программирования ........... 296
VIII.5.1. Модульность программ [49] ........................... 296
VIII.5.2. Строение программ [49] .............................. 297
VIII.5.3. Структурное программирование ........................ 298
VIII.6. О стиле программирования [57] ............................ 307
VIII.7. Недостатки языка программирования BASIC [59] ............. 311
VIII.8. Сравнительная характеристика языков программирования ..... 313
Г Л А В А IX. ФАЙЛОВЫЕ СРЕДСТВА MSX-BASIC
IX.1. Работа с файлами на дискетах ............................... 316
IX.1.1. Форматирование дискеты ................................ 317
IX.1.2. Имена файлов .......................................... 318
IX.1.3. Справочная информация о файлах ........................ 320
IX.1.4. Операторы NAME, COPY и KILL ........................... 321
IX.1.5. Операторы LOAD, SAVE, RUN и MERGE ..................... 322
IX.2. Файлы данных прямого доступа ............................... 324
IX.2.1. Контрольные буферы файлов ............................. 325
IX.2.2. Операторы OPEN и CLOSE ................................ 328
IX.2.3. Оператор FIELD ........................................ 329
IX.2.4. Операторы LSET и RSET ................................. 331
IX.2.5. Функции MKI$(),MKS$(),MKD$(),CVI(),CVS(),CVD() ........ 332
IX.2.6. Операторы PUT и GET ................................... 334
IX.3. Файлы данных последовательного доступа ..................... 339
IX.3.1. Операторы MAXFILES= , OPEN и CLOSE .................... 340
IX.3.2. Операторы PRINT#,PRINT#n,USING.Функции LOF() и LOC() .. 342
IX.3.3. Операторы INPUT, LINE INPUT#n. Функции INPUT$ и EOF ... 346
IX.3.4. Примеры ............................................... 351
IX.3.5. Вывод файлов данных на экран и принтер ................ 353
IX.4. Использование RAM-диска (только для компьютеров MSX-2) ..... 358
IX.5. Файлы на магнитной ленте ................................... 360
IX.5.1. Работа с программными файлами ......................... 361
IX.5.2. Работа с файлами данных ............................... 365
IX.6. Дополнение ................................................. 366
Г Л А В А X. УПРАВЛЕНИЕ РЕСУРСАМИ ПАМЯТИ MSX-КОМПЬЮТЕРОВ
X.1. Карта памяти (для компьютеров MSX-1) ...................... 368
X.2. Функция PEEK и оператор POKE .............................. 370
X.3. Таблица программных команд (PIT) .......................... 371
X.4. Таблица переменных (VT) ................................... 374
X.4.1. Хранение простых переменных .......................... 375
X.4.2. Хранение элементов числовых массивов ................. 379
X.5. Стек ...................................................... 382
X.6. Хранение строковых величин ................................ 385
X.7. Оператор CLEAR ............................................ 388
X.8. Функция FRE ............................................... 389
X.9. Рабочая область ........................................... 393
X.9.1. Матрица клавиатуры ................................... 394
X.9.2. Динамическая клавиатура [46] ......................... 395
X.10. Порты ввода-вывода ....................................... 397
X.10.1. Программируемый параллельный интерфейс (PPI) ........ 399
X.10.2. Программируемый звуковой генератор (PSG) ............ 401
X.10.3. Другие порты. Оператор WAIT ......................... 402
X.11. Дополнение ............................................... 403
Г Л А В А XI. РАБОТА С ВИДЕОПАМЯТЬЮ И ВИДЕОПРОЦЕССОРОМ
XI.1. Видеопамять ................................................ 405
XI.1.1. Псевдопеременная BASE ................................. 405
XI.1.2. Функция VPEEK. Оператор VPOKE ......................... 408
XI.1.3. Текстовые режимы ...................................... 410
XI.1.4. Режимы SCREEN 2 и SCREEN 4 ............................ 418
XI.1.5. Режим SCREEN 3 ........................................ 425
XI.1.6. Режимы SCREEN 5, SCREEN 6, SCREEN 7 и SCREEN 8
(для компьютеров MSX-2) ............................... 428
XI.1.7. Таблица палитр (для компьютеров MSX-2) ................ 432
XI.1.8. Спрайты ............................................... 434
XI.1.9. Слоты видеопамяти ..................................... 440
XI.1.10. Порты, отвечающие за работу с видеопамятью ........... 441
XI.2. Работа с видеопроцессором .................................. 442
XI.2.1. Регистры установки режима ............................. 444
XI.2.2. Регистры базовых адресов .............................. 448
XI.2.3. Регистры цветов ....................................... 450
XI.2.4. Регистры управления экраном ........................... 454
XI.2.5. Некоторые регистры доступа ............................ 456
XI.2.6. Доступ к видеопамяти .................................. 457
XI.2.7. Регистры статуса ...................................... 458
XI.3. Нестандартные режимы видеопроцессора ....................... 460
XI.3.1. Режим SCREEN 4 на компьютерах MSX-1 ................... 460
XI.3.2. Текстово-графические режимы ........................... 461
Г Л А В А XII. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ПОВЫШЕННОЙ ТРУДНОСТИ
XII.1. Задачи ................................................... 467
XII.2. Задачи для самостоятельного решения ....................... 493
Г Л А В А тринадцатая. ПРОГРАММИСТЫ ШУТЯТ
XIII.1. Проза
XIII.2. Поэзия
XIII.3. Словари