Sonic Scenarist NT- практическое руководство

         

Типы команд


     Всего существуют три типа команд согласно DVD стандарту. Это:

Первый тип (Type 1) - команды этого типа всегда состоят только из одной инструкции.

Второй тип (Type 2) - команды этого типа состоят из 2-х инструкций.

Третий тип (Type 3) - команды этого типа включают в себя команды из групп Compare, Set и Link to SubInstruction и тем самым состоят из трех инструкций.

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

Команда

Тип

Описание

Количество инструкций в команде



GoTo

1

Меняет порядок выполнения инструкций

1

Link

1

Начинает выполнение указанного действия внутри домена (включая выделение кнопки)

1

Jump

1

То же самое, что и Link, но в другом домене

1

Compare GoTo

1

Если результат сравнения истина (true), то выполнение команды GoTo

1

Compare Link

1

Если результат сравнения истина (true), то выполнение команды Link

1

Compare Jump

1

Если результат сравнения истина (true), то выполнение команды Jump

1

SetSystem

2

Установка навигационных параметров (регистров) GPRM и SPRM

2

Set

2

Установка GPRM

2

Compare SetSystem

2

Если результат сравнения истина (true), то выполнение команды SetSystem

2

Compare Set

Если результат сравнения истина (true), то выполнение команды Set

2

SetSystem Link

2

Сначала выполнение команды SetSystem, затем Link

2

Set Link

2

Сначала выполнение команды Set, затем Link

2

Set Compare LinkSIns

3

Сначала выполняется команда Set, затем, если результат сравнения по команде Compare истина (true), то переход к выполнению команды LinkSIns

3

Compare & Set - LinkSIns

3

Сначала выполняется команда сравнения Compare и, если результат сравнения истина (true), то затем последовательно выполняются команды Set и LinkSIns

3

Compare - Set & LinkSIns

3

Сначала выполняется команда сравнения Compare и, если результат сравнения истина (true), то затем последовательно выполняются команды Set и LinkSIns, причем LinkSIbs в этом случае игнорирует результат сравнения

3

<
Для того, чтобы дальнейшая работа с командами в Scenarist была более понятной, позволим себе напомнить некоторые азы булевой алгебры, без которых освоение программирования в Scenarist будет затруднено. Итак, для начала рассмотрим операцию AND (И), которая в Scenarist (и не только в нем, конечно) также обозначается символом &. Эта операция также может называться логическим умножением. Scenarist всегда подразумевает, что данные в регистрах будут сравниваться побитово. Операция AND для каждого бита выполняется следующим образом:

0 & 0 = 0 (False - ложь)

0 & 1 = 0 (False - ложь)

1 & 0 = 0 (False - ложь)

1 & 1 = 1 (True - истина)

Поясним это на примере. Допустим, вы хотите сравнить значения по AND в двух регистрах. В одном из них десятичное число 25 (оно же двоичное 00011010, оно же шестнадцатиричное 1A) с другим, в котором содержится десятичное число 9 (оно же двоичное 00001001, оно же шестнадцатиричное 09). Результат будет таким:

     00011010

     00001001

     -------------

     00001000 = True (Истина) Результат оказался true, поскольку одна единица появилась в результате. В противном случае результат был бы False (Ложь).  Расшифровка обозначений операций сравнения в Scenarist приведена в таблице ниже:

&

Логическое AND (И). Результат будет true (истина), если в нем есть хотя бы одна единица. В противном случае он будет равен false (ложь). Если результат true, то будет выполнена следующая команда.

==

Если сравниваемые значения РАВНЫ, то команда будет выполнена.

!=

Если сравниваемые значения НЕ РАВНЫ, то команда будет выполнена.

>=

Если результат РАВЕН или БОЛЬШЕ, то команда будет выполнена.

>

Если результат БОЛЬШЕ, то команда будет выполнена.

<=

Если результат РАВЕН или МЕНЬШЕ, то команда будет выполнена.

<

Если результат БОЛЬШЕ, то команда будет выполнена.

Теперь настало время перейти к практическим примерам, поясняющим программирование в Scenarist.

Содержание раздела