Типы данных
Код разделен на отдельные элементы, каждый из кото рых обозначается по-своему и играет свою роль в скрипте.
0004: $MyVar = 100
Именем локальной переменной может быть только число, после которого стоит
@
. Это число является индексом в списке локальных переменных, выделенных для текущего скрипта или миссии.0006: 100@ = 10
Переменная
ADMA
(Advanced Direct Memory Access, усовершенствованн ый доступ к памяти) - это указатель на определенный адрес внутри файла main.scm
. Они используются так же как глобальные переменные, но в отличие от них ADMA
могут читать и писать значения по любому адресу в пределах main.scm
. $myVar = &0 // прочитать первые 4 байта main.scm и записать значение в $myVar
&57 += &120(&231,4i) // также могут использоваться как элементы массива
ADMA
переменные не влияют на размер буфера для глобальных переменных, выделенного в заголовке main.scm
.Метки указывают на определенную строку кода и используются в условных (опкод
004D
) и безусловных переходах (опкоды 0002
, 0050
). Имя метки состоит из букв, цифр и _
и всегда начинается с :
:MyLabel
Чтобы использовать такую метку в опкоде замените
:
на @
0002: jump @MyLabel
Если имя метки написано как самостоятельное выражение с парой скобок в конце, это представляет собой вызов подпрограммы командой
gosub
:// следующие выражения эквивалентны
MyLabel()
gosub @MyLabel
Текст, обрамленный одинарными кавычками
' '
, - это короткий строковый литерал (до 15
символов).03A4: script_name 'MAIN'
Текст, обрамленный двойными кавычками
" "
, - это длинный строковый литерал (максимальная длина определяется опкодом).Если внутри литерала используется кавычка, она должна быть заэкранирована при помощи обратного слэша
\
0662: write_debug_message "Hello, \"world\"! \n 'Here we go!'"
Допускается использование пустых строк
''
или ""
.Глобальные переменные, содержащие короткий строковый литерал, начинаются с
s$
.05A9: s$MyString = 'GLOBAL'
Локальные переменные, содержащие короткий строковый литерал, заканчиваются на
@s
. 05AA: 1@s = 'LOCAL'
Глобальные переменные, содержащие длинный строковый литерал, начинаются с
v$
. 06D1: v$MyString = "LONG_GLOBAL"
Локальные переменные, содержащие длинный строковый литерал, заканчиваются на
@v
. 06D2: 1@v = "LONG_LOCAL"
Вместо ID моделей из
.ide
файлов могут использоваться их имена, перед которыми стоит #
0247: request_model #CELLPHONE
0x
- число в шестнадцатиричном формате
-0x
- отрицательное число в шестнадцатиричном формате0004: $var = -0xBB08
Разрешенный диапазон шестнадцатиричных чисел лежит между
-80000000
и 7FFFFFFF
.Last modified 27d ago