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.
Не перемещается!