Описание 9 - программирование в кодах - Supercode.

Справочник по системным программам для компьютера ZX Spectrum 128к

10. ПРОГРАММИРОВАНИЕ В КОДАХ - Sunrcode.

Фирма - SUPERSOFT SYSTEMS.

Авторы • F.A.VACCHA и V.B.RUMSEY

Год разработки • 1984

Аннотация.

В руководстве рассматривается версия программы "Supercode", состоящая из 120
подпрограмм в машинных кодах

Введение.

Рано или поздно программисту начинает не хватать возможностей Бейсика. Программа
"Supercode" - это та программа, которая позволяет с наименьшими усилиями перейти от
программирования на Бейсике к программированию в кодах

Существует множество различных версий программы Supercode, причем большинство
из них является вариантами одной и той же программы. Все они состоят из определенного
количества небольших подпрограмм в машинных кодах и снабжены обслуживающей
программой на Бейсике (иногда более, чем одной), обеспечивающей диалог с
пользователем. Этот диалог включает в себя общие инструкцию и демонстрацию, а также
возможность выбора необходимой подпрограммы. При выборе подпрограммы
обеспечивается выдача индивидуальных инструкции и демонстрации, а также возможность
выгрузки подпрограммы на магнитофон. При необходимости инструкции можно распечатать
на принтере

Следует заметить, что то, что раньше не очень точно было названо подпрограммами,
может представлять собой как процедуры в машинных кодах (в большинстве случаев), так
и таблицы кодов (скажем, знакогенераторы), а также сочетание процедуры и таблицы
(звуковые эффекты)

В дальнейшем для простоты мы сохраним
термин "подпрограмма". Эти подпрограммы
предназначены для простого и быстрого
выполнения операции, нереализуемых,
трудно реализуемых или неэффективно
реализуемых средствами Бейсика. Часть
подпрограмм используется для ре-
дактирования и защиты программ
пользователя. Большинство из них
полностью перемещаемы. На перемещения
некоторых наложены определенные
ограничения, очень малая часть требует
определенного расположения в памяти.
Наконец, некоторые подпрограммы рас-
положены прямо в ПЗУ, a Supercode
содержит лишь инструкцию по их
использованию. Ряд подпрограмм требует
для работы подключения ZX INTERFACED,
не получившего распространения в стране.
Однако, изучение принципов их работы
будет полезно и для пользователей
дисковых операционных систем, например,
TR DOS.

Использование подпрограмм пакета
Supercode позволит не только значительно
повысить эффективность пользовательских
программ на Бейсике, не прибегая к
программированию в машинных кодах, ной
упростить сам процесс программирования
Подпрограммы написаны достаточно
"прозрачно", чтобы с помощью дезассембли-
рования разобраться в их работе. Поэтому
мы предлагаем следующую последова-
тельность ступенчатого преодоления
психологического барьера при переходе от
Бейсика к кодам:

1. Изучение работы подпрограмм пакета
Supercode и использование их в программах
пользователя,

2. Изучение "механизма" работы этих
подпрограмм с помощью дезассемблиро-
вания,

3. Модификация подпрограмм,

4. Написание собственных подпрограмм

Однако, даже тому, кто остановится на
пункте 1, Supercode принесут огромную
пользу и сэкономят много времени. Ниже
дается описание подпрограмм базовой
версии, за которую принята программа
Supercode 120 MACHINE ODE ROUTINES.
CREATED BY F.-A.VACCHA.BSC.AND
V.B.RUMSEY.MICRODIVERSION. @ 1984, SU-
PERSOFT SYSTEMS.

«1 PIXEL UP-SCROLL

Скроллинг экрана вверх no пикселям.

Начало: 64001
Конец:64097
Длина: 97

Запуск: RANDOMIZE USR 64001

Примечание: Для осуществления
скроллинга атрибутов обратитесь к
процедурам #37-40 (определите подходя-
щее окно и значения атрибутов). Вызывайте
скроллинг атрибутов 1 раз на 8 вызовов этой
процедуры.

#2 PIXEL DOWN-SCROLL

Скроллинг экрана вниз по пикселям.

Начало: 64098
Конец:64196
Длина: 99

Запуск: RANDOMIZE USR 64098

Примечание: см. #1

«3 CHR/ATTR UP-SCROLL

Скроллинг экрана с атрибутами вверх по
знакоместам.

Начало* 3190

Процедура в ПЗУ.

Запуск: RANDOMIZE USR 3190

Не перемещается!

«4 PIXEL LEFT-SCROLL

Скроллинг экрана влево по пикселям.

Начало: 65462
Конец: 65493
Длина: 32

Запуск: RANDOMIZE USR 65462

Циклический скроллинг: РОКЕ 65475,63
Нециклический скроллинг* РОКЕ65475,55

Инверсия РОКЕ 65475,0

Примечание: см #1

«5 PIXEL RIGHT-SCROLL

Скроллинг экрана вправо по пикселям.

Начало: 65494
Конец:65525
Длина: 32

Запуск: RANDOMIZE USR 65494

Циклический скроллинг: РОКЕ 65507,63

Нециклический скроллинг: РОКЕ65507,55
Инверсия РОКЕ 65507,0
Примечание: см. #1
#6 CHR LEFT-SCROLL

Скроллинг экрана влево по знакоместам.

Начало: 64275
Конец: 64299
Длина: 25

Запуск RANDOMIZE USR 64275

Циклический скроллинг: РОКЕ 64291,119

Нециклический скроллинг- РОКЕ64291,54

Примечание: Для осуществления
скроллинга атрибутов обратитесь к про-
цедурам 37-40 (определите подходящее
окно и значения атрибутов). Вызывайте
скроллинг атрибутов 1 раз на 1 вызов этой
процедуры.

#7 CHR TOPLEFT-SCROLL

Скроллинг верхней трети экрана влево по
знакоместам.

Начало. 64300
Конец: 64324
Длина* 25

Запуск. RANDOMIZE USR 64300

Циклический скроллинг РОКЕ 64316,119
Нециклический скроллинг: РОКЕ64316.54

Примечание: см # 6

#8 CHR MID LEFT-SCROLL

Скроллинг средней трети экрана влево по
знакоместам.

Начало. 64325
Конец: 64349
Длина: 25

Запуск: RANDOMIZE USR 64325

Циклический скроллинг: РОКЕ 64341,119

Нециклический скроллинг: РОКЕ64341,54

Примечание: см.#6

#9 HR LOW LEFT-SCROLL

Скроллинг нижней трети экрана влево
по знакоместам

Начало: 64350
Конец: 54374

Длина: 25

Запуск: RANDOMIZE USR 64350

Циклический скроллинг: РОКЕ 64366,119

Нециклический скроллинг: РОКЕ 64366,54

Примечание: см .#6

# 10 CHR$ TOP/MID LEFT SCROLL

Скроллинг верхних 2/3 экрана влево по
знакоместам.

Начало: 64375
Конец: 64399
Длина: 25

Запуск: RANDOMIZE USR 64375

Циклический скроллинг: РОКЕ 64391,119

Нециклический скроллинг: РОКЕ 64391,54

Примечание: см.#6

«11 CHR$ MID/LOW LEFT-SCROLL

Скроллинг нижних 2/3 экрана влево по
знакоместам.

Начало: 64400
Конец:64424
Длина: 25

Запуск: RANDOMIZE USR 64400

Циклический скроллинг: РОКЕ 64416,119

Нециклический скроллинг: РОКЕ 64416,54
Примечание: см.#6
#12 CHR$ RIGHT-SCROLL

Скроллинг экрана вправо по знакоместам

Начало: 64425
Конец: 64449
Длина: 25

Запуск: RANDOMIZE USR 64425

Циклический скроллинг: РОКЕ 64441,119

Нециклический скроллинг: РОКЕ 64441,54

Примечание: см.#6

#13 CHR$ TOP RIGHT-SCROLL

Скроллинг верхней трети экрана вправо
по знакоместам.

Начало: 64450
Конец: 64474
Длина: 25

Запуск: RANDOMIZE USR 64450

Циклический скроллинг: РОКЕ 64466,119

Нециклический скроллинг: РОКЕ 64466,54

Примечание: см.#6

#14 CHR$ MID RIGHT-SCROLL

Скроллинг средней трети экрана вправо
по знакоместам.

Начало: 64475
Конец: 64499
Длина: 25

Запуск: RANDOMIZE USR 64475

Циклический скроллинг: РОКЕ 64491,119

Нециклический скроллинг: РОКЕ 64491,54

Примечание: см.#6

#15. CHR$ LOW RIGHT-SCROLL

Скроллинг нижней трети экрана вправо
по знакоместам.

Начало: 64500
Конец: 64524
Длина: 25

Запуск: RANDOMIZE USR 64500

Циклический скроллинг* РОКЕ 64516,119

Нециклический скроллинг: РОКЕ 64516,54

#16. CHR$ TOP/MID RIGHT-SCROLL

Скроллинг верхних 2/3 экрана вправо по
знакоместам.

Начало: 64525
Конец: 64549
Длина: 25

Запуск: RANDOMIZE USR 64525

Циклический скроллинг: РОКЕ 64541,119

Нециклический скроллинг: РОКЕ 64541,54

Примечание: см.#6

#17. CHR$ MID/LOW RIGHT-SCROLL

Скроллинг нижних 2/3 экрана вправо по
знакоместам

Начало: 64450
Конец:64474
Длина: 25

Запуск: RANDOMIZE USR 64450

Циклический скроллинг РОКЕ 64566,119

Нециклический скроллинг: РОКЕ64566,54

Примечание: см.#6

#18. RIPPLE LEFT-SCROLL

Циклический скроллинг влево внутри
знакомест.

Начало: 64575
Конец: 64592
Длина: 18

Запуск. RANDOMIZE USR 64575

#19. SHUTTER LEFT-SCROLL

Нециклический скроллинг влево внутри
знакомест.

Начало: 64593
Конец: 64610
Длина: 18

Запуск: RANDOMIZE USR 64593

#20. RIPPLE RIGHT-SCROLL

Циклический скроллинг вправо внутри
знакомест.

Начало: 64611
Конец:64628
Длина: 18

Запуск: RANDOMIZE USR 64611

#21. SHUTTER RIGHT-SCROLL

Нециклический скроллинг вправо внутри
знакомест.

Начало: 64629
Конец: 64646
Длина: 18

Запуск: RANDOMIZE USR 64629
#22. PIXEL BOX LEFT-SCROLL

Скроллинг в окне влево по пикселям

Начало 58571
Конец:58682
Длина: 112

Запуск RANDOMIZE USR 58571

POKE 58679, горизонтальная координата
верхнего правого угла окна в форме TAB.

РОКЕ 58680,64 (верх)/ 72 (середина)/80
(низ) - вертикальная координата верхнего
правого угла окна (должна совпадать с
верхней границей одной из третей экрана)

POKE 58681, высота окна в пикселях.

РОКЕ 58682, длина окна в знакоместах.

Все "РОКЕ" повторяйте перед каждым
запуском!

Примечание: см.#1

#23. PIXEL BOX RIGHT-SCROLL

Скроллинг в окне вправо по пикселям.

Начало.58608
Конец 58682
Длина* 75

Запуск RANDOMIZE USR 58608

POKE 58679, горизонтальная координата

верхнего правого угла окна в форме TAB.

РОКЕ 58680, 64 (верх)/ 72 (середина)
/80 (низ)
- вертикальная координата
верхнего правого угла окна
(должна совпадать с верхней
границей одной из третей экрана)

РОКЕ 58681. высота окна в пикселях

РОКЕ 58682, длина окна в знакоместах

Все "РОКЕ" повторяйте перед каждым
запуском1

Не перемещается1

#24 SCREEN FILL

Заполнение окна символами

Начало. 64828
Конец 64857
Длина' 30

Запуск RANDOMIZE USR 64828

POKE 64829, код символа

РОКЕ 64831, высота окна

РОКЕ 64834, ширина окна.

РОКЕ 64832/5, координаты верхнего
левого угла окна формате PRINT AT

#25. SCREEN STORE

Хранение экрана

Начало- 64744
Конец 64755

Длина: 12

Запуск. RANDOMIZE USR 64744

Процедура STORE перемещает экранный
файл в память, OVERPRINT вызывает его на
экран, EXCHANGE обменивает текущий
экран с хранящимся в памяти. Экран
содержит 6912 (24*32*8,+ 24*32 атрибутов)
и должен храниться выше RAMTOP
(опущенного достаточно низко для создания
необходимого свободного пространства).
Для указан ия места хранен ия экрана от X до
X 4-6911 используйте РОКЕ 64745. Х-256*
INT(X/256) РОКЕ 64746. INT(X/256).

#26. SCREEN OVERPRINT

Вызов экрана, хранящегося в памяти.

Начало 64756
Конец-64783
Длина* 28

Запуск RANDOMIZE USR 64756

Примечание: см #25

#27 SCREEN EXCHANGET

Обмен экранов

Начало 64784
Конец: 64808
Длина: 25

Запуск RANDOMIZE USR 64784
Примечание: см #25
#28 SCREEN INVERT

Инвертирование экрана.

Начало. 64809
Конец: 64827
Длина: 19

Запуск RANDOMIZE USR 64809
#29 SCREEN MERGE

Сложение экранов

Начало 63976
Конец 64000
Длина 25

Запуск RANDOMIZE USR 63976

Эта процедура складывает экранный
файл, находящийся в памяти (начальный
адрес хранения экрана поместите командой
РОКЕ в ячейки 63980/1) с отображаемым
экраном Значения атрибутов неизменны
Для хранения экранов обратитесь к
процедурам #25-27

#30 INK CHANGE

Смена чернил.

Начало: 64858
Конец:64882
Длина: 25

Запуск: RANDOMIZE USR 64858

POKE 64859. цвет (в пределах всего
экрана).

#31 PAPER CHANGE

Смена бумаги.

Начало: 64883
Конец:64913
Длина: 31

Запуск:RANDOMIZE USR 64883

POKE 64884, цвет (в пределах всего
экрана).

#32 FLASH ON

Включение FLASH.

Начало: 64914
Конец: 64930
Длина: 17

Запуск: RANDOMIZE USR 64914

Примечание: процедуры #32-35 вклю-
чают и выключают данный цветовой эф-
фект . Процедуры #74-75 изменяют сос-
тояние данного цветового эффекта на
противоположное (триггерное переклю-
чение).

#33 FLASH OFF

Выключение FLASH.

Начало: 64931
Конец: 64947
Длина: 17

Запуск: RANDOMIZE USR 64931

Примечание: см.#32

# 34 BRIGHT ON

Включение BRIGHT.

Начало: 64948
Конец: 64964
Длина: 17

Запуск: RANDOMIZE USR 64948
Примечание: см.#32

#35 BRIGHT OFF

Выключение BRIGHT.

Начало: 64965
Конец:64981
Длина: 17

Запуск: RANDOMIZE USR 64965

Примечание: см .#32

#36 ATTR FILL

Заполнение окна новыми значениями
атрибутов.

Начало: 64982
Конец: 65025
Длина: 4

Запуск: RANDOMIZE USR 64982

POKE 64983, новое значение атрибутов.

РОКЕ64986/5, координаты левого верхнего
угла окна в формате PRINT AT.

POKE 64988, ширина окна

РОКЕ 64989, высота окна.

#37 ATTR UP-SCROLL

Скроллинг вверх атрибутов в окне с
заменой на новые.

Начало: 65026
Конец: 65080
Длина: 55

Запуск: RANDOMIZE USR 65026

POKE 65027, новое значение атрибутов.

РОКЕ 65030/29, координаты верхнего
левого угла окна в формате PRINT AT.

POKE 65032, ширина окна.

РОКЕ 65033, высота окна.

#38 ATTR DOWN-SCROLL

Скроллинг вниз атрибутов в окне с заменой
на новые.

Начало: 65081
Конец:65142
Длина: 62

Запуск: RANDOMIZE USR 65081
POKE 65081, новое значение атрибутов.

POKE 65085/4, координаты верхнеголевого
угла окна в формате PRINT AT.

POKE 65087, ширина окна.

РОКЕ 65088, высота окна.

«39 ATTR LEFT-SCROLL

Скроллинг влево атрибутов в окне с
заменой на новые.

Начало. 65204
Конец: 65255
Длина: 52

Запуск: RANDOMIZE USR 65204

POKE 65205, новое значение атрибутов.

РОКЕ 65208/7, координаты верхнего
левого угла окна в формате PRINT AT.

POKE 65210, ширина окна.

РОКЕ 65211, высота окна.

Циклический скроллинг: РОКЕ 65240,26

Нециклический скроллинг: РОКЕ 65240,0

#40 ATTR RIGHT-SCROLL

Скроллинг вправо атрибутов в окне с
заменой на новые

Начало: 65143
Конец:65203
Длина: 61

Запуск: RANDOMIZE USR 65143

POKE 65144, новое значение атрибутов.

РОКЕ 65147/6, коорд и наты верхнего левого
угла окна в формате PRINT AT.

POKE 65149, ширина окна.

РОКЕ 65150, высота окна.

Циклический скроллинг. РОКЕ 65186,26

Нециклический скроллинг: РОКЕ 65186,0

#41 ATTR SWAP

Замена атрибутов.

Начало: 65256
Конец:65276
Длина: 21

Запуск: RANDOMIZE USR 65256

Процедура заменяет все знакоместа с
данными атрибутами, например,
X на новые атрибуты Y.

POKE 65256.Х: POKE 65258.Y.

#42 LAZER ZAP

Трель.

Начало: 63950
Конец: 63975
Длина: 26

Запуск: RANDOMIZE USR 63950
POKE 63951, длительность.
#43 UNI-NOTE SOUND-GEN

Глиссандо.

Начало: 64647
Конец: 64674
Длина: 28

Запуск: RANDOMIZE USR 64647

POKE 64648, частота.

POKE 64649, диапазон.

POKE 64651, длительность.

POKE 64670,28 (восходящее) или 29
(нисходящее).

#44 DIAL-NOTE SOUND-GEN

Двухтональный генератор звука.

Начало: 64675
Конец: 64705
Длина: 31

Запуск: RANDOMIZE USR 64675

POKE 64682, длительность.

POKE 64693, частота 1

POKE 64702, частота 2.

#45 UNI-BEEP SIMULATOR

Имитатор BEEP.

Начало: 63000
Конец: 63009
ДлинаНО

Запуск: RANDOMIZE USR 63000
POKE 63001/2, высота (двухбайтовый
эквивалент).

РОКЕ 63004/5. высота в миллисекундах

(двухбайтовый эквивалент).
#46 MULTI-BEEP SIMULATOR

Имитатор сирены.

Начало: 63010
Конец:63033
Длина: 24

Запуск: RANDOMIZE USR 63010
POKE 63011, приращение высоты.
РОКЕ 63012, число нот.

РОКЕ 63014/5, высота (двухбайтовый
эквивалент).

РОКЕ 64004/5, время в миллисекундах

#47 OBLIQUE SCROLL-OFF

Косой скроллинг экрана.

Начало: 63034
Конец:63050
Длина: 17

Запуск: RANDOMIZE USR 63034
#48. CHR$ DOWN-SCROLL

Скроллинг экрана вниз по знакоместам.

Начало: 63051
Конец: 63123
Длина: 73

Запуск: RANDOMIZE USR 63051
Примечание: см.# 6
# 49. CHR$ ROTATE

Поворот символов на 90 градусов по
часовой стрелке.

Начало: 63163
Конец: 63204
Длина: 42

Запуск: RANDOMIZE USR 63163

Примечание: эта процедура работает с
теми символами, которые хранятся
в ОЗУ (т.е. UQG или альтернативный
знакогенератор, например, SCIFI #79)
Запишите 2-байтовый эквивалент (см #101)
адреса начала знакогенератора, который
должен быть записан в ячейки 63166/7 с
помощью РОКЕ.

#50 CHR$ REFLECT-AXIS

Поворот символов вокруг вертикальной
оси.

Начало: 63124
Конец:63142
Длина: 19

Запуск: RANDOMIZE USR 63124

Примечание: см.#50, ячейки для записи
адреса - 63127/8

# 51 CHR$ REFLECT X-AXIS

Поворот символов вокруг горизонтальной
оси

Начало. 63143
Конец. 63162
Длина- 20

Запуск: RANDOMIZE USR 63143

Примечание: см #49, ячейки для записи
адреса - 63144/5

#52 24 LINE PRINTING

Печать в 24 строках.
Процедура в ПЗУ.

Примечание: для печати во всех 24 строках
экрана введите РОКЕ 23659,0 перед каждым
оператором PRINT, после чего РОКЕ 23659,2
используйте PAUSE N для предотвращения
подсказки "SCROLL?", портящей экран
Попробуйте также PRINT#0/#1. Если нижняя
часть экрана увеличивается при повторных
операторах PRINT, воспользуйтесь проце-
дурой 119 перед каждой печатью в строках
22 и 23.

#53 SCREEN SEARCH

Считывание символов с экрана.

Начало: 60039
Конец:60161
Длина: 123

Запуск PRINT AT X.Y.: LET Z = USR 60039

Примечание: эта программа позволяет
Вам определить код символа в любой
позиции экрана, при этом переменная Z
будет содержать код символа, находяще-
гося в позиции X.Y

#54 SCREEN PRINT

Вывод символа на экран

Начало: 63728
Конец-63776

Длинэ' 49

Запуск RANDOMIZE USR 63728

Примечание; с помощью оператора РОКЕ
введите*

INK (63732) PAPER (63738)

FLASH (63744) BRIGHT (63750)

INVERSE (63756) OVER (63762)

AT (63768, 63771) CHR$ (63774)

«55 RND« GENERATOR

Генератор случайных шестнадцатиричных
чисел.

Начало: 63777

Конец:63794

Длина: 18

Запуск: LET L = USR 63777

Примечание: эта процедура помещает
случайное шестнадцатиричное двухбайтовое
число в системную переменную SEED
(считывание оператором РЕЕК по адресу
23670/1).

«56 BLOCK MEMORY INSERT

Заполнение области памяти числом.

Начало: 63795
Конец: 63805
Длина: 11

Запуск: RANDOMIZE USR 63795

Примечание: эта процедура заполняет
заданным числом область памяти

РОКЕ 63796, число байт
РОКЕ 63798/9, адрес начала (двухбайтовый
эквивалент)

РОКЕ 63801, заданное число.

«57 BLOCK LINE ERASE

Удаление группы строк.

Начало: 63806
Конец: 63901
Длина: 96

Запуск: RANDOMIZE USR 63806

Примечание: для удаления всех строк от
X до Y введите РОКЕ 23728/9, 2-байтовый
эквивалент X RANDOMIZE Y. RANDOMIZE Y
использован несколько необычно, - эта
запись эквивалентна РОКЕ 23670/1,2-

байтовый эквивалент Y (см.#101).

#58 CHR$ SWOP
Замена символов

Начало: 63902

Конец:63944

Длина: 43

Запуск: RANDOMIZE USR 63902

Примечание: эта процедура заменяет все
данные символы на другие.

РОКЕ 63903, код старого символа.

РОКЕ 63905, код нового символа.

#59 CHR$ SCRAMBLE

Маскировка символов.

Программа в ПЗУ.

Запуск: см.примечание

Примечание: командами РОКЕ 23606 и
23607 с различными значениями можно
получить испорченный знакогенератор. Для
нормализации введите РОКЕ 23606,0: РОКЕ
23607,60. Защищайте свою программу таким
способом, временно нормализуя знакогенера-
тор перед каждым употреблением оператора

#60 SUPER-RENUMBER

Перенумерация строк (в том числе, в
операторах).

Начало 59294

Конец 59974

Длина. 681

Запуск. RANDOMIZE USR 59294

Примечание, для перенумерации строк,
начиная с S-ой с интервалом 1,
выполните РОКЕ 59580,1: РОКЕ 59582/3,2
байтовый эквивалент S. Номера строк в
каждом операторе GO ТО, GO SUB, RESTORE,
LIST, LLIST, SAVE...LINE перенумеровываю
тся (за исключением аргументов типа 2 8
или N ♦ 3, которые выделяются). Если
аргумент указывает на несуществующую
строку, используется номер следующей
строки.

#61. LINE RENAMBER

Перенумерация строк

Начало. 64706

Конец* 64473

Длина: 38

Запуск RANDOMIZE USR 64706

Примечание: для перенумерации без
учета GO TO/GO SUB, начиная
с S-ой строки с интервалом 1, выполните
РОКЕ 64711/2, 2-байтовый эквивалент
1:РОКЕ 64714/5, 2-битовый эквивалент S.
Также см. #60.

#62. DEC/HEX CONVERTER

Преобразование десятичных чисел в
шестнадцатиричные.

Начало: 60595

Конец:60712

Длина: 118

Запуск. RANDOMIZE USR 60595

Примечание: эта процедура преобразовы-
вает десятичные чусла от 0 до 65535 в
шестнадцатиричные. Она очищает экран и
выдает подсказку "D:", после чего следует
ввести десятичное число. При выходе за
пределы допустимого диапазона чисел
генерируется сообщение об ошибке 6.
Процедура работает с автоповтором
Введите "Q" для возврата в Бейсик и GO ТО
0, чтобы перезагрузить Supercode.

#63 HEX/DEC CONVERTER

Преобразование шестнадцатиричных
чисел в десятичные.

Начало: 60713

Конец:60825

Длина: 113

Запуск: RANDOMIZE USR 60713

Примечание: эта процедура преобразует
шестнадцатиричные числа в их десятичные
эквиваленты. Она очищает экран и выдает
подсказку "Н:", после чего следует ввести
шестнадцатиричное число. Будут преоб-
разованы лишь 4 последние шестнадца-
тиричные цифры Процедура работает с
автоповтором.

Введите "Q" для возврата в Бейсик и GOTO
0 для перезапуска Supercode. При вызове из
процедуры #92 в расчет принимаются лишь
2 последние цифры.

#64 REM KILL CONDENSER

Уничтожение комментариев

Начало. 60494

Конец: 60592

Длина. 101

Запуск: RANDOMIZE USR 60494

Примечание: эта процедура сокращает и
ускоряет программу за счет удаления всех
комментариев. См также##82, 90,100,103,
104.

#65 ON ERROR GO ТО

Переход по ошибке.

Начало: 60826

Конец: 60898

Длина: 73

Запуск5 RANDOMIZE USR 60826

Примечание: запустите эту процедуру в
начале вашей программы, скажем,
записав в первой строке RANDOMIZE USR
60826. Теперь , в случае ошибки,
(отличается от 0:ОК, 8: END, 9:STOP)
программа не остановится, а перейдет к
выполнению строки с номером, чей
двухбайтовый эквивалент был введен с
помощью оператора РОКЕ в ячейки 60878
(младший байт) и 60879 (старший байт) •
первоначально 9495. Для получения кода
ошибки выполните РЕЕК 23681.

#66 ON BREAK GO ТО.

Переход по останову.

Начало: 60899

Конец* 60970

Длина: 72

Запуск. RANDOMIZE USR 60899

Примечание: запустите эту процедуру в
начале вашей программы, скажем,
записав в первой строке RANDOMIZE USR
60899. Теперь в случае ошибок типа
D:BREAK, H:STOP IN INPUT или L:BREAK
INTO PROGRAM, программа не остановится,
а перейдет к выполнению строки с номером,
чей двухбайтовый эквивалент был введен с
помощью РОКЕ в ячейки 60952 (младший
байт) и 60953 (старший байт)
первоначально 9495.

#67 FREE SCROLLER

Свободный скроллинг.

Процедура в ПЗУ.

Примечание: для непрерывного вывода
программы или данных порциями
большими, чем 22 строки, без остановки,
используйте команду РОКЕ 23692,X, где X -
число строк, выводимых без остановки Для
вывода информации вообще без остановки
используйте РОКЕ 23692,255 внутри цикла,

который генерирует строки.

#68 NON-DELETABLE LINE

Нестираемая строка.

Процедура в ПЗУ.

Примечание: чтобы сделать первую строку
вашей программы нестираемой,
введите LET X = РЕЕК 23635 ♦ 256* РЕЕК
23636: РОКЕ Х.О: POKE X ♦ 1,0.

Чтобы сделать то же самое в других строках,
сначала определите их адрес X с помощью
процедуры #88, затем введите POKE X + 4,0:
POKE X - 3,0. Программа будет работать,
если Вы не будете ссылаться на эти строки
в операторах GO ТО, GOSUB или RESTORE

#69 BORDER EFFECTS

Эффекты на бордюре.

Начало: 60000

Конец:60037

Длина: 38

Запуск: RANDOMIZE USR 60000

POKE 60006, длительность (1-127).

POKE 60037, цвета (0-7).

POKE 60029, ширина линий (1-125)

#70 INITIALIZE

Очистка переменных.

Начало: 63382

Конец:63489

Длина: 108

Запуск RANDOMIZE USR 63382

Примечание: эта процедура обнуляет все
числовые переменные или массивы,
присваивает всем символьным переменным
значение"" (пробел), а строковые массивы с
объявленной размерностью заполняет
кодом 32 Также см #71

#71 VARIABLES LIST

Список переменных

Начало: 60222
Конец:60406
Длина: 185

Запуск: PRINT,:RANDOMIZE USR 60222
Примечание: эта процедура выводит все:
1) числовые переменные,

2) символьные переменные,

3) числовые массивы,

4) строковые массивы,

5) управляющие переменные циклов
FOR...NbXT.

См. также #70

Не перемещается!

#72 STR LIST

Поиск подстрок

Начало- 63490
Конец:63643
Длина: 154

Запуск: RANDOMIZE USR 63490

Примечание: эта процедура выводит
список всех строк программы на Бейсике,
содержащих предварительно указанную
последовательность символов: стро-
ки/подстроки ("Supercode" или ERCO),
команды/ операторы (РОКЕ), числа /пе-
ременные (2.3, Z.A), операции (*), отно-
шения (Б) и т.д. или их комбинации.

РОКЕ 63502, число символов в строке.

РОКЕ 63490/500, двухбайтовый эквивалент
(см .#101) адреса начала строки
в памяти.

# 73 STR$ REPLASE

Замена строки символов.

Начало: 63644
Конец:63726
Длина: 83

Запуск: RANDOMIZE USR 63644

Примечание: эта процедура заменяет все
встречающиеся предварительно опреде-
ленные строки в программе на Бейсике на
другую строку той же длины.

РОКЕ 63548, число заменяемых байт

РОКЕ 63652/53, двухбайтовый эквивалент

(см .#101) адреса, по которому хранится заме-
няемая строка.

РОКЕ 63713/14, двухбайтовый эквивалент
адреса новой строки.

#74 FLASH SWOP

Триггерное переключение FLASH.

Начало: 60162
Конец: 60191
Длина: 30

Запуск: RANDOMIZE USR 60162
Примечание: см.#32
#75 BRIGHT SWOP

Триггерное переключение BRIGHT.

Начало: 60192
Конец: 60221
Длина: 30

Запуск: RANDOMIZE USR 60192
Примечание: см. #32
#76 PAINT-FILL

Заливка фигур.

Начало: 59136
Конец:59293
Длина: 158

Запуск: RANDOMIZE USR 59136

Примечание: нарисуйте любую замкнутую
фигуру на экране, затем оператором PLOT
поместите точку внутри ее. Поместите с
помощью РОКЕ 59293 значение атрибутов
заливки, затем вызовите эту процедуру.

Не перемещается!

#77 RECORD SOUND

Запись звука

Начало: 65290
Конец: 65317
Длина. 28

Запуск: RANDOMIZE USR 65290

Примечание: подключив магнитофон ко
входу компьютера, включите пленку (лучше
всего голос) и выполните CLEAR 32767: RAN-
DOMIZE USR 65290. Используется вся память
от 32768 до 65535.

Для воспроизведения используйте #78

Не перемещается!

#78 REPLY SOUND

Начало: 65318
Конец:65349
Длина: 32

Запуск: RANDOMIZE USR 65318

Примечание: эта процедура воспроизводит
то, что записано с помощью
процедуры #77.

Не перемещается!

#79 SCIFI CHR$ SET

Знакогенератор "SCIFI".

Начало: 57344

Конец: 58111

Длина: 768

Примечание: это пример знакогенератора,
известного под названием "SCIFI". Для его
включения нужно ввести с помощью РОКЕ
адрес знакогенератора в ячейке 23606
(младший байт) и 23607 (старший байт)
первоначально соответственно 0 и 223. Для
возврата к стандартному знакогенератору
введите РОКЕ 23607,60.

#80 PROTECT PROGRAMM

Защита программы.

Процедура в ПЗУ.

Примечание: 1( запишите в 1 строке 1
REM и наберите РОКЕ (РЕЕК 23635-256*
РЕЕК 23636), 100. Вы сможете запустить
(RUN) программу, но не можете просмотреть
ее листинг (LIST), пока не запишете 0 по
тому же адресу,

2) РОКЕ 23636,150. Возврат к нормальному
листингу: РОКЕ 23636,92,

3) Используйте ## 59, 98, вызовите ## 65 и
66 для запрещения BREAK и #68 для
нестираемого сообщения об авторстве,

4) выберите символы управления цветом
так, чтобы INK = PAPER в нестираемых
строках и листинг стали нечитаемыми,

5) используйте автостарт в строке X при
выгрузке программы SAVE "NAME " LINE X. В
строку X запишите: LET ERR s 256* PEEK
23614 + PEEK 23613: POKE ERR,0: POKE ERR
♦ 1,0.

Попытка останова или ошибка приведут к
зависанию,

6) РОКЕ 23659,0 в начале программы даст
тот же эффект, что и 5).

#81 APPEND STATEMENT

Установка курсора в конец редактируемой
строки

Начало: 60407
Конец.60492
Длина- 86

Запуск: RANDOMIZE USR 60407

Примечание: установите курсор в требуе-
мую строку и затем вызовите эту процедуру.
Строка будет вызвана на редактирование, а
курсор будет установлен в ее конце.

#82 CONTRACT PROGRAM

Сокращение программы.

Начало: 61400
Конец:62086
Длина: 687

Запуск: RANDOMIZE USR 61400

Примечание: процедура ускоряет и
сокращает программы на Бейсике путем
сведения к минимуму числа строк путем
объединения строк, где это логически
возможно. Также см.##64,90,100 и 104.

#83 EXPAND PROGRAM

Расширение программы.

Начало: 62087
Конец: 62403
Длина: 317

Запуск RANDOMIZE USR 62087

Примечание: процедура расширяет прог-
рамму так, что в каждой строке располагает-
ся только одно утверждение (за исключени-
ем IF...THEN) В ответ на приглашение введи-
те номер строки, которую необходимо разло-
жить или нажмите/Enter/, если необходимо
разложить всю программу. После вызова
этой процедуры необходимо использовать
#60.

#84 REM FILL

Заполнение комментариев

Начало: 58892
Конец:59135
Длина- 244

Запуск RANDOMIZE USR 58892

Примечание: следуйте подсказкам для
расширения утверждения REM (для поме-
щения кодов) в любом месте программы,
вплоть до 9999 байтов.

#85 DATA FILL

Заполнение DATA-блока.

Начало: 63205
Конец: 63381
Длина: 177

Запуск: RANDOMIZE USR 63205

Примечание: эта процедура загружает
информацию, хранящуюся в памяти,
в автоматически создаваемое описание
DATA в строке 1. Поместите 2-байтовый
эквивалент (см.#101) начального адреса в
памяти и число байт, подлежащих загрузке,
в ячейки 63209/10 и 63206/07, соответствен-
но.

# 86 ANALIZE PROGRAM

Анализ программы.

Начало: 62404
Конец: 62532
Длина: 129

Запуск: RANDOMIZE USR 62404

Примечание: эта процедура печатает
число строк и число утверждений в
программе.

#87 ТАРЕ HEADER READER

Чтение заголовков с ленты.

Начало: 62533
Конец: 62818
Длина: 286

Запуск: RANDOMIZE USR 62533

Примечание: эта процедура декодирует
информацию, содержащуюся в заголовках
файлов на ленте и печатает полный анализ
(имя, адрес, тип, длина и автостарт).

#88 LINE ADDRESS

Адрес строки.

Начало: 59975
Конец:59987
Длина. 13

Запуск: PRINT USR 59975

Примечание: эта процедура печатает
адрес первого символа в строке, на которую
указывает курсор

#89 SCREEN GRID

Разметка экрана.

Начало: 62819
Конец: 62856
Длина: 38

Запуск: RANDOMIZE USR 62819

Примечание: для помощи в
использовании операторов PRINT/PLOT эта
процедура накладывает на экран изо-
бражение шахматной доски, образованной
чередующимися переключениями яркости.

««90 MONOCHROME PROGRAM

Монохромная программа.

Начало: 62943

Конец:62994

Длина: 54

Запуск. RANDOMIZE USR 62943

Примечание: эта процедура уничтожает
все "спрятанные" символы управления
цветом, кроме содержащихся в символьных
переменных, для экономии места. Также
см. #«64, 82, 100.

««91 ANALYZE MEMORY

Анализ памяти.

Начало: 62857

Конец:62942

Длина: 86

Запуск: RANDOMIZE USR 62857

Примечание: эта процедура печатает
полный анализ содержимого памяти,
начиная с адреса, чей двухбайтовый
эквивалент (см. #101) помещен по адресу
62866/7 Печатаются 4 колонки, которые
представляют собой адрес, содержимое
памяти в десятичной и шестнадцатиричной
форме и символ (если имеется символьное
представление кода). Используйте N для
выхода, после чего управление передается
операционной системе.

#92 HEX INPUT

Ввод данных в шестнадцатиричном виде
в ОЗУ.

Начало: 65350

Конец:65461

Длина: 112

Запуск: RANDOMIZE USR 65350

Примечание: эта процедура позволяет
осуществлять шестнадцатиричный ввод в
ОЗУ. Поместите (см.#101) адрес начала
области памяти, куда будет осуществляться
ввод, в системную переменную DEFADD
(23562/4). Поместите по адресу 65360/61
arfpec начала процедуры 63, которая также

должна быть в памяти
#93 AWAIT KEYPRESS

Ожидание нажатия клавиши.

Начало: 60972
Конец:60995
Длина: 24

Запуск: RANDOMIZE USR 60972

Примечание: эта процедура ждет нажатия
клавиши (код будет помещен в переменную
L).

#94 UPPER-CS STR

Замена букв в строковых переменных на
заглавные.

Начало:58833
Конец:58891
Длина* 59

Запуск: RANDOMIZE USR 58833

Примечание: процедуры 94-97 изменяют
представление букв (заглавные /строчные)
в строковых переменных или во всем
листинге (кроместроковых переменных), как
указано в названии программы. Отметьте,
что эффективный способ такого переклю-
чения изнутри программы - выполнить РОКЕ
23658,0 (строчные ) или 8 (заглавные).

#95 LOWER-CS STR

Замена букв в строковых переменных на
строчные.

Начало- 58774
Конец:8832
Длина: 59

Запуск: RANDOMIZE USR 58774
Примечание: см .#94
# 96 UPPER-CS PROGRAM

Замена букв в программе на заглавные.

Начало: 58715
Конец: 58773
Длина: 59

Запуск: RANDOMIZE USR 58715
Примечание: см.#94
#97 LOWER-CS PROGRAM

Замена букв в программе на строчные.
Начало: 64211

Конец:64269
Длина: 59

Запуск: RANDOMIZE USR 64211
Примечание: см.#94

# 98 CONFUSE LIST

Порча листинга.

Начало: 58263
Конец: 58397
Длина: 135

Запуск. RANDOMIZE USR 58263

Примечание: портит листинг без влияния
на работу программы: попытка редакти-
рования/замены строк может быть фаталь-
ной (что полезно для защиты программ, как
в ## 68/80).

# 99 UNCONFUSE LIST

Восстановление листинга.

Начало: 58398
Конец: 58570
Длина: 173

Запуск: RANDOMIZE USR 58398

Примечание: эта процедура уничтожает
эффект процедуры 98, позволяет
редактировать/изменять строки программы.

#100 COMPRESS NUMBER

Сжатие чисел.

Начало: 58115
Конец: 58263
Длина: 148

Запуск: RANDOMIZE USR 58115

Примечание: эта процедура заменяет
числа в программе на VAL "Строка", что
экономит память, но уменьшает скорость.
Число 0 заменяется на NOT PI.
Также см.## 64, 82, 90,103,104. В случае
большей экономии места замените все
обычно встречающиеся числа (т.е. 0,1,2,10 и
т.п.) на переменные в начале. Для
этого полезна процедура 72.

#101 2 BYTE CONVERTER

Двухбайтный преобразователь.

Примечание: если двухбайтовый
эквивалент X представляет собой пару
байтов L (младший) и М (старший), то L ♦
256* М в X. Сначала идет младший байт.
Для преобразования X в его двухбайтовый

эквивалент введите: RANDOMIZE X:, затем
PRINT РЕЕК 23670 и 23671 даст L и М
соответственно.

#102 FOREIGN ACCENTS

Иностранные акценты.

Начало: 57176

Конец:57343

Длина: 168

Запуск: РОКЕ 23676,223

Примечание: набор хранимых для неко-
торых языков букв с акцентами, хранимые
как UDG. Для возврата к стандартному UDG,
введите РОКЕ 23676,225.

#103 MEMORY AVAILABLE

Доступная память.

Начало: 64197

Конец: 64210

Длина: 14

Запуск: PRINT USR 64197

Примечание: печатается свободная
память от последней переменной до
RAMTOP. Используйте РОКЕ 23637, РЕЕК
23635: РОКЕ 23638, РЕЕК 23636: SAVE "Имя"
CODE 23552, RAMTOP-23550-F, чтобы
записать Вашу программу в виде блока
кодов она будет автостартовать в первой
строке. Также см.#104.

#104 PROGRAM LENGTH

Длина программы.

Начало: 59988

Конец:59999

Длина: 12

Запуск: PRINT USR 59988

Примечание: эта процедура печатает
длину программы на Бейсике. Память,
используемая переменными, игнорируется.
См. также #103 и # 111.

#105. RESET

Сброс.

Процедура в ПЗУ.

Запуск: RANDOMIZE USR 0

Примечание: эта процедура имитирует
отключение питания: т.е. не только делает
NEW, но также устанавливает RAMTOP на
первоначальное значение, обнуляет всю

память и заново устанавливает системные
переменные, UDG и СТЕК.

Не перемещается!

•106. BLOCK MEM COPY

Копирование блока памяти.

Начало: 58683

Конец: 58713

Длина: 31

Запуск: RANDOMIZE USR 58683

#107. BLOCK LINE COPY

Копирование части программы.

Начало: 61000

Конец: 61399

Длина: 400

Запуск: RANDOMIZE USR 61000

Примечание: эта процедура позволяет
перемещать группу строк внутри программы
на Бейсике. Для того, чтобы перенести строки
с 4200 по 6740 так, чтобы они появились в
листинге после строки 2200-й, ответьте 4200,
6745 и 2200 на подсказки. Все новые строки
будут иметь номер 0. После этого вызовите
#60 для перенумераци и и # 57, чтобы стереть
старые строки. Процедура полностью
защищена от ошибок.

# 108 STAR/RING DRAW

Рисование звезд/колец.

Процедура в ПЗУ.

Примечание: рисуйте многолучевые
звезды и кольца, первоначально поместив
оператором PLOT точку вблизи середины
экрана, а затем используя DRAW X, Y, N, где
X и Y имеют величины от 10 до 60, а N лежит
между 1000 и 9999. Поэкспериментируйте.

#109 FAST LOAD MDRVE

Быстрая загрузка с микродрайва.

Процедура в ПЗУ.

Примечание: ZX - микродрайв тратит
большую часть времени, пытаясь найти
файл. Действительная загрузка происходит
быстро. Существует 2 способа сбрасывать
файлы так, что они будут загружаться
быстрее:

а) выгрузите несколько копий файла на
один картридж: для X копий введите РОКЕ

23791, X: SAVE* "M";"N"; "Имя" (CODfc Р, О,
если блок байтов). Используйте тот же РОКЕ
перед оператором ERASE, в противном
случае удалена будет лишь одна копия,

б) выгружая разные части программы,
осуществите VERIFY каждой части
непосредственно перед сбрасыванием
следующей, это обеспечит исключение
задержки при их загрузке.

ZX - интерфейс должен быть подключен!

#110 SURE SAVE MDRVE

Уверенная выгрузка на микродрайв.

Начало: 65277

Конец: 65284

Длина: 8

Запуск: RANDOMIZE USR 65277

Примечание: ZX SPECTRUM не проверяет,
имеется ли достаточно места в памяти для
сбрасывания на микродрайв: если
программа длинная или RAMTOP
установлен низко, может произойти сброс
при попытке SAVE*. Можно потерять всю
программу. Поэтому вызовите эту процедуру
перед выгрузкой длинных программ. Если
появляется сообщение, отличное 0 ОК,
сократите программу или поднимите
RAMTOP.

#111 MDRVE DIAGNOSIS

Диагностика микродрайва.

Процедура в ПЗУ.

Примечание: а) чтобы проверить, подклю-
чен ли ZX -интерфейс, посмотрите, будет
ли ошибка при выполнении инструкции
типа PRINT #4;

б) чтобы проверить, создано ли уже
теневое ПЗУ, выполните PRINT РЕЕК 23635
+ 256* РЕЕК 23636. Если результат равен
23755, то теневое ПЗУ еще не создано,

в) чтобы проверить, откуда загружена
программа, выполните РЕЕК 23787 ♦ 256*
РЕЕК 23788. Если результат равен длине ,
найденной с помощью # 104, то программа
загружена с микродрайва, в противном
случае с ленты.

ZX - интерфейс 1 должен быть подклю-
чен!

#112 ADAPT PROGRAM

Адаптирование программы.

Начало: 57159

Конец: 57175

Длина: 17

Запуск: RANDOMIZE USR 57159

Примечание: программа на Бейсике с
машинными кодами, помещенными в
комментарии (REM), не будет работать,
будучи загруженной в SPECTRUM со
сформированным теневым ПЗУ, т.к.
программа будет загружена по новому
адресу. Для исправления ситуации
запустите эту процедуру перед загрузкой,
она восстановит системные переменные в
первоначальное состояние и обеспечит
загрузку програм мы с кассеты с адреса 23755,
а не 23813.

ZX - интерфейс 1 должен быть подклю-
чен!

• 113 SURE CLOSE #

Уверенное закрытие каналов.

Начало: 57126

Конец:57158

Длина: 33

Запуск: RANDOMIZE USR 57126

Примечание: в ряде случаев команда
CLOSE# не закрывает все потоки. Если так,
используйте эту процедуру, ZX - интерфейс
1 должен быть подключен!

• 114 STOP PROGRAM

Останов автостартующей программы.

Процедура в ПЗУ.

Примечание: для останова автостартую-
щих программ

а) использйте MERGE вместо LOAD для
останова программ на Бейсике,

б) для останова кодов используйте # 87
для нахождения ее длины и т д , затем
загрузите их в другой адрес, больший 2300,
чтобы не перекрыть системные переменные,

в) для останова файла без заголовка
дезассемблируйте загрузчик и положите X
равным числу, после инструкции LD, DE.
Используйте #115 с большим стартовым
адресом и X - число байтов. Файл должен
загрузиться и затем остановиться.

#115 HEADERLESS FILES

Файлы без заголовка.

Начало: 57108
Конец: 57125

Длина: 18

Запуск: RANDOMIZE USR 57108

Примечание: выполните

РОКЕ 57110/11, число байт, РОКЕ 57114/15,

адрес первого байта.

Для автостарта машинных кодов с адреса,
помещенного в 57125/26, выполните РОКЕ
57124,195, в противном случае управление
будет передано следующему оператору,
Сбросьте эту процедуру внутри (с помощью
DATA или REM) или непосредственно после
первой части и вызовите ее оттуда. Она
загрузит файл без заголовка в нужный адрес.

#116 AUTO RUN CODE

Автостартующая программа в кодах.

Процедура в ПЗУ.

Примечание: чтобы заставить программу
в кодах автостартовать, введите в первой
строке 1 RANDOMIZE USR адрес, с которого
коды должны выполняться, введите РОКЕ
23638, РЕЕК 23636: SAVE "Имя" CODE 23550,
адрес последнего байта кодов минус 23549.
Когда коды загрузятся, стартует строка на
Бейсике и запустит коды.

#117 ANTI-COPY PROGRAM

Некопирующаяся программа.

Начало: 57094

Конец: 57107

Длина: 14

Запуск RANDOMIZE USR 57094

Примечание: выгрузите вторую часть
вашей программы с заголовком от другой
программы, манипулируя клавишами
/Запись/Воспроизведение/ магнитофона,
вызовите эту процедуру в первой части и
сразу после этого вызовите #115 Часть 2
тогда будет автоматически загружена из
первой, но всякий, кто попытается загрузить
часть 2 другим способом, вызовет сброс
компьютера.

#118 ATTR RESET

Сброс атрибутов.

Процедура в ПЗУ

Примечание: команда CLS# выполнит CLS, а также сбросит атрибуты (т.е. PAPER 7,INK
О,BORDER 7, BRIGHT О, FLASH О, OVER О, INVERSE 0).

ZX - интерфейс 1 должен быть подключен!

#119 LOWER SCREEN CLS

Очистка нижней части экрана.

Процедура в ПЗУ.

Начало: 3438

Запуск: RANDOMIZE USR 3438

Примечание: эта процедура выполняет очистку только нижней части экрана. Кстати,
чтобы осуществить ввод (INPUT) в любой позиции (X,Y) экрана, используйте INPUT АТ22,0;
AT X,Y;" Подходящее сообщение:, переменная. Такой способ также работает с INPUT ...LINE.

Не перемещается!

#120 TRACE VARI-SPEED

Трассировка, изменение скорости.

Начало: 56640

Конец: 57089

Длина: 450

Запуск. RANDOMIZE USR 56640

Примечание: эта процедура номер строки и оператора, используемых в данный момейт.
Выполните РОКЕ 56777, скорость (от 1 - быстро до 255 - медленно): если будет слишком
быстро, Вы не сможете прочитать, Вызовите эту процедуру либо перед запуском программы
или внутри программы. Трассировка остается включенной, пока ни будет выполнено
RANDOMIZE USR 56814.

Не перемещается!