Инструкции по скриптам WndLpt

Основные команды вывода по маске

111000111000 [count]
; Основные команды - напрямую задают состояние всех 12 выходов.
111000!!xx?? [count]
; Продвинутые команды для сложных случаев.
mask <mask> [count] ; Маска со сложным синтаксисом.
[+|-|~|&|?] <mask> [count]
; Изменение по маске

Циклы

for (while, try) <count>
; Выполнить команду(ы) несколько раз.
repz (rep) <count>
; Аналогично команде for, но без выдержки пауз.

Переходы

goto <label>
; Переход к метке. Пропуск если метка не найдена.
jmp (jump) <label>
; Переход к метке. Ошибка если метка не найдена.
label <label>
; Объявление метки для команд goto/jump/jmp.
gosub <function> [count]
; Вызов функции. Пропуск если функция не найдена.
call <function> [count]
; Вызов функции. Ошибка если функция не найдена.
sub (func, psub) <function>
; Объявление функции для команд gosub/call.
return, ret
; Возврат из функции.

Ветвления

test <i | q | pin> <addr> ; Проверка состояния входа, выхода или пинв ЛПТ порта.
jz, jnz <function> ; Условный переход.
callz, callnz <function> ; Условный вызов функции.

Ключевые слова

random [[set] add] ; Изменить счетчик рандомов для команд переходов и ветвлений.
random <command> ; Изменить команду перехода или ветвления для вызова произвольной функции или метки.

Логика

on [count]
; Установить все выходы в 1.
off [count]
; Сбросить все выходы в 0.
nop [count]
; Ничего не делать.
or (+) [<mask> [count]]
; Установить указанные выходы в 1.
clr (-) [<mask> [count]]
; Сбросить указанные выходы в 0.
xor (~) [<mask> [count]]
; Инвертировать состояние указанных выходов (eor, inv).
and (&) [<mask> [count]]
; Логическое И.
rol (rlc) [count]
; Циклический сдвиг влево.
ror (rrc) [count]
; Циклический сдвиг вправо.
lsl [count]
; Логический сдвиг влево.
lsr [count]
; Логический Shift вправо.
asl [count]
; Арифметический сдвиг влево.
asr [count]
; Арифметический сдвиг вправо.
ssl [count]
; Циклический сдвиг влево с приоритетом единицы.
ssr [count]
; Циклический сдвиг вправо с приоритетом единицы.
nsl [count]
; Циклический сдвиг влево с приоритетом нуля.
nsr [count]
; Циклический сдвиг вправо с приоритетом нуля.
not [count]
; Инверттировать все выходы.
inc [number]
; Прибавить число.
dec [number]
; Вычесть число.
mul [number]
; Умножить на число.
div [number]
; Разделить на число.
shift [=] [+|–] number [count]
; Циклический сдвиг выходов.

Паузы

sleep ms[sec[min[hours]]]
; Задать паузу на текущий шаг.
sleeps ms[sec[min[hours]]]
; Задать регулярную паузу.
delay ms[sec[min[hours]]]
; Выполнить задержку.
skip
; Однократно пропустить паузу.
wait ms[sec[min[hours]]]
; Ждать пока системное время превысит указанное.
speed [number]
; Задать скорость SPEED. (PAUSE = MULTIPLIER * SPEED)

Окружение

cmd count [number]
; Задать количество используемых выходов.
cmd leds <leds> [outs] ; Задать кол-во управляемых светодиодов.
leds - кол-во светодиодов
outs - количество используемых выходов
cmd remap [numbers...]
; Переназначить выходы порта.
cmd ms [number]
; Задать множитель MULTIPLIER. (PAUSE = MULTIPLIER * SPEED)
cmd restart
; Перезапуск скрипта.
cmd show
; Показать окно программы WndLpt.
cmd hide
; Спрятать окно программы WndLpt.
cmd bkgnd
; Спрятать окно программы WndLpt.
cmd priority [number]
; Задать приоритет потока скрипта. Min 1, max 7. По-умолчанию 7.

Визуализация музыки в скрипте

cmd enable_music [ 1 | 0 ]
; Включить/выключить встроенную визуализацию музыки.
cmd music_preset [=|+|-] <number>
; Изменить режим визуализации.
cmd switch_to_music
; Переключиться на вкладку визуализации "Music" (выполнение скрипта останавливается).

Эмуляция часов (для светодиодов выставленных по кругу)

cmd enable_clock [ 1 | 0 ]
; Включить/выключить эмуляцию часов.
cmd clock_timings <ms> <ms> ... ; Изменить тайминги часов.

Прочее

cmd set_lpt_port_addr_in_decimal_at_owners_risk [addr]
; Задает базовый адрес LPT порта.

Устаревшее описание