РЕДАКТИРОВАНИЕ СТРОК
Вне режима редактирования, то есть когда в начале строки находится "?" или ">", для исправления можно использовать почти все команды редактора, но действие их будет ограничено одной строкой LOGO.
EXTENDED MODE и стрелка влево — переход курсора к началу строки;
EXTENDED MODE и стрелка вправо — переход курсора к
концу строки;
EXTENDED MODE и Y — удалить часть строки справа от курсора;
EXTENDED MODE и R — вставить текст, удаленный командой EXTENDED MODE Y;
EXTENDED MODE и Z — отключить звук, выдаваемый при нажатии клавиши и по окончании процедуры;
EXTENDED MODE и Р — перевод курсора в начало строки.
Все клавиши действуют так же, как в редакторе, но в пределах одной командной строки, длина которой не может превышать 242 символа. Нажатие <ENTER> всегда приводит к считыванию строки независимо, в каком ее месте находится курсор. Использование EXTENDED MODE R может быть довольно полезным, поэтому посвятим этой команде немного внимания. При вводе команды OUMPCIRCLE 32 на экран будет выдано сообщение об ошибке:
NOT ENOUGH INPUTS TO OUMPCIRCLE
(недостаточно данных для OUMPCIRCLE). И действительно, мы забыли ввести второй аргумент. EXTENDED MODE R выведет на экран копию набранной перед этим строки, в которую мы можем дописать недостающий параметр и изменить первый, например:
OLIMPCIRCLE 30 50
Теперь займемся другой последовательностью команд:
CS LT 90 JUMP 120 RT 135 QCIRCLERIGHT 15
После исполнения этой командной строки мы можем дополнить ее любыми командами, стереть или исправить какие-либо
команды, чтобы достичь необходимого эффекта работы командной строки. Правда, ввод другой строки приведет к потере предыдущей, но попробовав разные варианты выполнения командной строки, мы можем оформить ее как процедуру. Для этого надо выполнить команду DEFINE.
СПИСОК КОМАНД LOGO.
В этом разделе приведен список всех команд языка LOGO ZX-SPECTRUM с короткими пояснениями. Слово ОР обозначает оператор LOGO, то есть такую процедуру языка, которая производит логические или арифметические операции над аргументами и запоминает результат вычислений. Для каждой команды приводится количество аргументов. Если количество аргументов команды не задано жестко, приводится минимальное их количество. В списке приведены полные и сокращенные формы команд.
|
AND
|
ОР
|
2
|
логическое И
|
||||
|
ARCCOS
|
ОР
|
1
|
арккосинус
|
||||
|
ARCCOT
|
ОР
|
1
|
арккотангенс
|
||||
|
ARCCOTANGENT
|
ОР
|
1
|
арккотангенс
|
||||
|
ARCSIN
|
ОР
|
1
|
арксимус
|
||||
|
ARCTAN
|
ОР
|
1
|
арктангенс
|
||||
|
ARCTANGENT
|
' ОР
|
1
|
арктангенс
|
||||
|
ASCU
|
ОР
|
1
|
код знака в стандарте ASCII
|
||||
|
BACK
|
-
|
1
|
перемещение "черепашки" назад
|
||||
|
BACKGROUND
|
ОР
|
1
|
номер цвета фона рисунка
|
||||
|
BF
|
ОР
|
1
|
список или слово без первого элемента
|
||||
|
BG
|
ОР
|
1
|
номер цвета фона рисунка
|
||||
|
BK
|
-
|
1
|
перемещение "черепашки" назад
|
||||
|
BL
|
ОР
|
1
|
список или слово без последнего элемента
|
||||
|
BRIGHT
|
-
|
1
|
включение — выключение яркости
|
||||
|
BUTFIRST
|
ОР
|
1
|
список или слово без первого элемента
|
||||
|
BUTLAST
|
ОР
|
1
|
список или слово без последнего элемента
|
||||
|
BYE
|
•
|
0
|
окончание работы с LOGO
|
||||
|
CATALOG
|
-
|
0
|
каталог дискеты или микродрайва
|
||||
|
CHAR
|
OP
|
1
|
знак с приведенным кодом ASCII
|
||||
|
CLEAN
|
-
|
0
|
стереть экран
|
||||
|
CLEARSCREEN
|
-
|
0
|
очистить экран
|
||||
|
CLEARTEXT
|
-
|
0
|
стереть текст с экрана
|
||||
|
COPYDEF
|
-
|
2
|
размножить определенные процедуры
|
||||
|
COPYSCREEN
|
-
|
0
|
выдать содержимое экрана на печать
|
||||
|
COS
|
OP
|
1
|
косинус
|
||||
|
COSINE
|
OP
|
1
|
косинус
|
||||
|
COT
|
OP
|
1
|
котангенс
|
||||
|
COTANGENT
|
OP
|
1
|
котангенс
|
||||
|
COUNT
|
OP
|
1
|
длина слова или списка
|
||||
|
CS
|
-
|
0
|
очистить экран
|
||||
|
CT
|
OP
|
0
|
стереть текст с экрана
|
||||
|
CURSOR
|
OP
|
0
|
положение курсора
|
||||
|
DEFINE
|
-
|
2
|
определить процедуру
|
||||
|
DEFINEDP
|
OP
|
1
|
процедура определена?
|
||||
|
DIV
|
OP
|
2
|
степень
|
||||
|
DOT
|
-
|
1
|
поставить точку
|
||||
|
ED
|
-
|
1
|
редактировать
|
||||
|
EDIT
|
-
|
1
|
редактировать
|
||||
|
EONS
|
-
|
1
|
редактировать все названные переменные
|
||||
|
EMPTYP
|
OP
|
1
|
слово (список) пустое?
|
||||
|
END
|
-
|
0
|
конец определения процедуры
|
||||
|
EQUALP
|
OP
|
2
|
равно?
|
||||
|
ER
|
-
|
1
|
удалить процедуру
|
||||
|
ERALL
|
-
|
0
|
все удалить
|
||||
|
ERASE
|
-
|
1
|
удалить процедуру
|
||||
|
ERASEFILE
|
-
|
1
|
удалить файл с дискеты или микродрайва
|
||||
|
ERN
|
-
|
1
|
удалить все названные переменные
|
||||
|
ERNS
|
-
|
0
|
удалить все переменные
|
||||
|
ERPS
|
-
|
0
|
удалить все процедуры
|
||||
|
FALSE
|
-
|
0
|
ложь (логическая переменная)
|
||||
|
FD
|
-
|
1
|
перемещение "черепашки" вперед
|
||||
|
FENCE
|
-
|
0
|
запрет выхода "черепашки" за край экрана
|
||||
|
FIRST
|
OP
|
1
|
первый элемент списка или слова
|
||||
|
FLASH
|
-
|
0
|
печать мигающей надписи
|
||||
|
FORWARD "
|
-
|
1
|
перемещение "черепашки" вперед
|
||||
|
FPUT
|
OP
|
2
|
вставить первый элемент
|
||||
|
HEADING
|
OP
|
0
|
угол положения "черепашки"
|
||||
|
MDETURTLE
|
-
|
0
|
спрятать "черепашку"
|
||||
|
HOME
|
-
|
0
|
вернуть "черепашку" в центр экрана
|
||||
|
HT
|
-
|
0.
|
спрятать "черепашку"
|
||||
|
F
|
-
|
2
|
если
|
||||
|
INT
|
OP
|
1
|
целая часть числа
|
||||
|
INVERSE
|
-
|
0
|
печатать с инверсией цветов
|
||||
|
ITEM
|
OP
|
2
|
элемент списка или слова
|
||||
|
KEYP
|
OP
|
0
|
клавиша нажата?
|
||||
|
LAST
|
OP
|
1
|
последний элемент списка или слова
|
||||
|
LEFT
|
-
|
1
|
повернуть "черепашку" влево
|
||||
|
LIST
|
OP
|
2
|
создать список
|
||||
|
USTP
|
OP
|
1
|
список существует?
|
||||
|
LOAD
|
-
|
1
|
загрузить из внешней памяти
|
||||
|
LOADD
|
-
|
1
|
загрузить отредактированные процедуры или данные
|
||||
|
LOADSCR
|
-
|
1
|
загрузить экран из внешней памяти
|
||||
|
LPUT
|
OP
|
2
|
вставить последний элемент
|
||||
|
LT
|
-
|
1
|
повернуть "черепашку" влево
|
||||
|
MAKE
|
-
|
2
|
присвоить переменное значение
|
||||
|
MEMBERP
|
OP
|
2
|
является ли элементом списка или слова?
|
||||
|
NAME
|
-
|
2
|
назвать
|
||||
|
NAMER
|
-
|
1
|
имя переменной существует?
|
||||
|
NODES
|
OP
|
0
|
количество свободных мест в памяти LOGO
|
||||
|
NORMAL
|
-
|
0
|
печать без инверсии цветов
|
||||
|
NOT
|
OP
|
1
|
логическое НЕ
|
||||
|
NUMBER
|
OP
|
1
|
число существует?
|
||||
|
OP
|
-
|
1
|
результат операции
|
||||
|
OR
|
OP
|
2
|
логическое ИЛИ
|
||||
|
OUTPUT
|
-
|
1
|
результат операции
|
||||
|
OVER
|
-
|
1
|
надпечатка текста поверх предыдущего
|
||||
|
PC
|
OP
|
0
|
цвет пера
|
||||
|
PD
|
-
|
0
|
опустить перо
|
||||
|
PE
|
-
|
0
|
включить стирание
|
||||
|
PENCOLOUR
|
OP
|
0
|
цвет пера
|
||||
|
PENDOWN
|
-
|
0
|
опустить перо
|
||||
|
PENERASE
|
-
|
0
|
включить стирание
|
||||
|
PENREVERSE
|
-
|
0
|
включить инверсию пера
|
||||
|
PENUP
|
-
|
0
|
поднять перо
|
||||
|
PO
|
-
|
1
|
показать процедуру
|
||||
|
POALL
|
-
|
0
|
показать все процедуры и переменные
|
||||
|
PONS
|
-
|
0
|
показать все переменные
|
||||
|
POPS
|
-
|
0
|
показать все процедуры
|
||||
|
POS
|
OP
|
0
|
позиция "черепашки"
|
||||
|
POSITION
|
OP
|
0
|
позиция "черепашки"
|
||||
|
POTS
|
-
|
0
|
показать имена всех процедур
|
||||
|
PR
|
—
|
1
|
печатать на экране
|
||||
|
PRIMITIVER
|
OP
|
1
|
имя исходной процедуры существует?
|
||||
|
|
-
|
1
|
печатать на экране
|
||||
|
PRMTOFF
|
-
|
0
|
отключить выдачу на принтер
|
||||
|
PRINTON
|
-
|
0
|
включить выдачу на принтер
|
||||
|
PRODUCT
|
OP
|
2
|
приведение
|
||||
|
PU
|
-
|
0
|
поднять перо
|
||||
|
PX
|
-
|
0
|
включить — выключить инверсию пера
|
||||
|
RANDOM
|
OP
|
1
|
выбрать случайное число
|
||||
|
RC
|
OP
|
0
|
считать знак с клавиатуры
|
||||
|
READCHAR
|
OP
|
0
|
считать знак с клавиатуры
|
||||
|
REAOUST
|
OP
|
0
|
считать список
|
||||
|
RECYCLE
|
-
|
0
|
очистить память
|
||||
|
REMAINDER
|
OP
|
2
|
остаток от деления
|
||||
|
REPEAT
|
-
|
2
|
повторить
|
||||
|
RIGHT
|
-
|
1
|
повернуть "черепашку" направо
|
||||
|
RL
|
-
|
0
|
считать список
|
||||
|
ROUND
|
OP
|
1
|
округлить число
|
||||
|
RT
|
-
|
1
|
повернуть "черепашку" направо
|
||||
|
RUN
|
OP
|
1
|
исполнить аргумент
|
||||
|
SAVE
|
-
|
2
|
записать во внешнюю память
|
||||
|
SAVEALL
|
-
|
1
|
сохранить все во внешней памяти
|
||||
|
SAVED
|
|
1
|
записать отредактированные процедуры или данные
|
||||
|
SAVESCR
|
-
|
1
|
записать экран во внешнюю память
|
||||
|
SCRUNCH
|
OP
|
0
|
отношение шкал Y к Х
|
||||
|
SE
|
OP
|
2
|
создать список из элементов аргументов
|
||||
|
SENTENCE
|
OP
|
2
|
создать список из элементов аргументов
|
||||
|
SETBO
|
-
|
1
|
задать цвет фона рисунка
|
||||
|
SEIBORDER
|
-
|
1
|
задать цвет рамки экрана
|
||||
|
SETBR
|
-
|
1
|
задать цвет рамки экрана
|
||||
|
SETCUR
|
-
|
1
|
установить курсор
|
||||
|
ICTCUR50R
|
-
|
1
|
установить курсор
|
||||
|
SETDRIVE
|
-
|
1
|
выбрать дисковод, микродрайв или магнитофон
|
||||
|
SETH
|
-
|
1
|
установить "черепашку" под заданным углом
|
||||
|
SETHEADMG
|
-
|
1
|
установить "черепашку" под заданным углом
|
||||
|
SETPC
|
-
|
1
|
задать цвет пера
|
||||
|
SETPOS
|
-
|
1
|
переместить "черепашку" на заданную позицию
|
||||
|
SETSCR
|
-
|
1
|
определить отношение шкал Y к Х
|
||||
|
SETSCRUNCH
|
-
|
1
|
определить отношение шкал Y к Х
|
||||
|
SETTC
|
-
|
1
|
задать цвета для текста (фон и знаки)
|
||||
|
SETX
|
-
|
1
|
переместить "черепашку" по горизонтали
|
||||
|
SETY
|
-
|
1
|
переместить "черепашку" по вертикали
|
||||
|
SHOW
|
-
|
1
|
показать список или слово
|
||||
|
SHOWNP
|
OP
|
0
|
"черепашка" видима?
|
||||
|
SHOWTURTLE
|
-
|
0
|
показать "черепашку"
|
||||
|
SIN
|
OP
|
1
|
синус
|
||||
|
SINE
|
OP
|
1
|
синус
|
||||
|
SOUND
|
-
|
1
|
воспроизвести заданную ноту
|
||||
|
SORT
|
OP
|
1
|
квадратный корень
|
||||
|
ST
|
-
|
0
|
показать "черепашку"
|
||||
|
STARTROBOT
|
-
|
0
|
запустить робота
|
||||
|
STOP
|
-
|
0
|
окончание выполнения процедуры
|
||||
|
STOPROBOT
|
-
|
0
|
остановить робота
|
||||
|
SUM
|
-
|
2
|
сумма
|
||||
|
TAN
|
OP
|
1
|
тангенс
|
||||
|
TANGENS
|
OP
|
1
|
тангенс
|
||||
|
TC
|
OP
|
0
|
цвета текста
|
||||
|
TEXT
|
OP
|
1
|
содержание процедуры
|
||||
|
TEXTCOLOUR
|
OP
|
0
|
цвета текста
|
||||
|
TEXTSCREEN
|
-
|
0
|
переход к режиму текстов
|
||||
|
THING
|
OP
|
1
|
значение переменной
|
||||
|
TO
|
-
|
1
|
начало определения процедуры
|
||||
|
TOPUEVEL
|
-
|
0
|
прервать рекурсию
|
||||
|
TOWARDS
|
OP
|
0
|
азимут точки относительно "черепашки"
|
||||
|
TRUE
|
OP
|
0
|
истина (логическая переменная)
|
||||
|
TS
|
-
|
0
|
переход к режиму печати текстов
|
||||
|
TYPE
|
-
|
1
|
вписать текст.
|
||||
|
WAIT
|
-
|
1
|
ожидать
|
||||
|
WINDOW
|
-
|
0
|
определить экран как окно на плоскости
|
||||
|
WORD
|
OP
|
2
|
создать слово
|
||||
|
WORDP
|
OP
|
1
|
является ли словом?
|
||||
|
WRAP
|
-
|
0
|
свернуть экран, соединить верхний край с нижним, правый с левым
|
||||
|
XCOR
|
OP
|
0
|
координата Х "черепашки"
|
||||
|
YCOR
|
OP
|
0
|
координата Y "черепашки"
|
||||
|
|
OP
|
2
|
сложение
|
||||
|
-
|
OP
|
1
|
умножение на -1 или вычитание
|
||||
|
#
|
OP
|
2
|
умножение
|
||||
|
/
|
OP
|
2
|
деление
|
||||
|
с
|
OP
|
2
|
равенство
|
||||
|
<
|
OP
|
2
|
меньше
|
||||
|
>
|
OP
|
2
|
больше
|
||||
|
н
|
OP
|
1
|
оператор дословности
|
||||
|
.
|
OP
|
1
|
значение
|
||||
|
|
OP
|
1
|
блокада интерпретации знака
|
||||
|
JU.OAD
|
-
|
2
|
считывание двоичных кодов с внешнего носителя
|
||||
|
••SAVE
|
-
|
2"
|
запись двоичных кодов на внешний носитель
|
||||
|
•CALL
|
-
|
1
|
вызов программы в кодах
|
||||
|
.COHTENS
|
-
|
0
|
содержимое списка имен процедур и данных
|
||||
|
•DEPOSIT
|
-
|
2
|
сохранить в памяти по заданному адресу
|
||||
|
JXAMME
|
-•
|
1
|
вызвать из памяти по заданному адресу
|
||||
|
.PRIMITIVES
|
-
|
0
|
содержимое списка имен исходных процедур
|
||||
|
.RESERVE
|
-
|
1
|
занять память
|
||||
|
.RESERVED
|
-
|
0
|
занято
|
||||
|
.SERIAUN
|
-
|
0
|
считать из последовательного порта
|
||||
|
.SERIALOUT
|
-
|
1
|
послать в последовательный порт
|
||||
|
.SETSERIAL
|
-
|
1
|
скорость передачи
|
||||
Внимание! Командами с точкой надо пользоваться осторожно, неправильное их использование может привести к непредвиденным последствиям — потере данных или зависанию компьютера.