WinLpt (WndLpt)

Intro

Application

Vis Plugin

Screenshots

History

Downloads

Lpt Tools

SDK

Script

Basic syntax

All Instructions

Extended syntax

Additional rules

Hardware

LED-to-LPT connection

Panel map

Arduino

Lpt Tools

LPT Buttons

Stroboscope

EasyDrive

LptPort

Other

Mark As Good

Unmark bad clusters

Supported Instructions : Complete description see here

Syntax

Arguments description

<mask>
1) Sequence of 0 or 1, for ex. 111000111000. Well, mask is binary number.
2) Alternative way to set mask - enumerating pin-numbers at brackets, for ex. (1), (2,3,4) or (8,12,5,11), its accordingly to 100000000000, 011100000000 or 000010010011. First byte named as number 1, it's left byte:

LSB          MSB
  000000000000
  123456789012
           111

[count]
Decimal number from 2 to 100, tells how many times command will be retried.
[number]
Decimal number from 1 to 100, it's argument.
<label>
Label's name. May consists of letters, digits, and underscore symbol.
<function>
Function name. May consists of letters, digits, and underscore symbol.
[ ms [ sec [ min [hours] ] ] ]
Decimals sets milliseconds, seconds, minutes and hours. Examples:
sleep 500        ; Pause for 500 ms
sleep 30 100    ; Pause for 100 s and 30 ms
sleep 0 0 20 1  ; Pause for 1 hour and 20 minutes
wait 0 0 10 8    ; Wait while system time less or equal to 8 hours and 10 minutes. At 08:10 AM next command will be performed.

Masked output

mask 111000xxx!!!
Set outputs to: 1 - High state, 0 - Low state, x - don't change state, ! - invert one.
Sets of synonyms: «1o», «0.», «xX*». The record oooo....oo.. is analog of 111100001100 and seems more ostensive (may be).
mask 1010
Short form of record. Unspecified bytes will be set such as last specified one. For ex. 1010 is analog of 101000000000, 01!x is analog of 01!xxxxxxxxx.
111111111111
on
Set all discrete outputs to High state. Analogues to command on.
000000000000
off
Set all discrete outputs to Low state. Analogues to command off.
xxxxxxxxxxxx
Do nothing. Analogues to command nop.
!!!!!!!!!!!!
Invert all. Analogues to command not.
111000xxx!!!
Clear/set/don't change/invert outputs.
1010
Short form of record.

Change by mask

Some commands have more short and easy equivalents.

or [<mask> [count]]
+ [<mask> [count]]
Set pointed pins to 1. Logical OR.
clr [<mask> [count]]
- [<mask> [count]]
Set pointed pins to 0. Logical NAND.
xor [<mask> [count]]
inv [<mask> [count]]
eor [<mask> [count]]
~ [<mask> [count]]
Invert pointed pins. Logical EOR. (Exclusive OR)
and [<mask> [count]]
& [<mask> [count]]
Logical AND.
nop [count]
Do nothing.
lsl [count]
Logical Shift Left. http://en.wikipedia.org/wiki/Logical_shift
lsr [count]
Logical Shift Right. http://en.wikipedia.org/wiki/Logical_shift
rol [count]
rlc [count]
Circular Shift Left. http://en.wikipedia.org/wiki/Circular_shift
ror [count]
rrc [count]
Circular Shift Right. http://en.wikipedia.org/wiki/Circular_shift
asl [count]
Arithmetic Shift Left. http://en.wikipedia.org/wiki/Arithmetic_shift
asr [count]
Arithmetic Shift Right. http://en.wikipedia.org/wiki/Arithmetic_shift
ssl [count]
Circular Shift Left with 1 priority.
ssr [count]
Circular Shift Right with 1 priority.
nsl [count]
Circular Shift Left with 0 priority.
nsr [count]
Circular Shift Right with 0 priority.
not [count]
Invert all outputs.
inc [number]
Add number.
dec [number]
Subtract number.
mul [number]
Mul to number.
div [number]
Div to number.
shift [=] [+|–] <number>
Shift LPT outputs.

Cycles

try <count>
while <count>
for <count>
Perform next command for <count> times. Several commands may be used with using of curly brackets { }.
repz <count>
rep <count>
Perform next command for <count> times, but pauses will be skipped. Several commands may be used with using of curly brackets { }.
{
Must be used in separate line.
}
Must be used in separate line.
do <count>
Obsolete command. Perform commands disposed between do and loop for <count> times. Curly brackets may be used, but in this case loop must not used.
loop
Obsolete command. Used with do only if curly brackets not used.

Branches, Subroutines, Labels

goto <label>
Goto label. If label not found - command will be skipped.
jmp <label>
jump <label>
Goto label. If label not found - script will be stopped and error posted.
label <label>
:<label>
<label>:
Defines a label for using with goto/jump/jmp.
gosub <function>
Call function. If function not found - command will be skipped.
call <function>
Call function. If function not found - script will be stopped and error posted.
sub <function>
func <function>
(psub <function>) obsolete
Defines a function (subroutine) for using with gosub/call.
return
ret
Performs return from function.

Pauses

speed [number]
Set speed. Range SPEED=[10...500]. PAUSE = MULTIPLIER * SPEED.
Default value is 10.
sleeps [ ms [ sec [ min [hours] ] ] ]
Directly set pause. PAUSE = ms + sec * 1000 + min * 1000 * 60 + hours * 1000 * 60 * 60.
sleep [ ms [ sec [ min [hours] ] ] ]
Directly set pause only for current step.
[Current PAUSE] = ms + sec * 1000 + min * 1000 * 60 + hours * 1000 * 60 * 60.
[Current PAUSE] will be performed only once.
wait [ ms [ sec [ min [hours] ] ] ]
Wait while system time less or equal to specified time.
skip
Cancels any pauses between previous and next commands (commands with output assumed: "Masked output" and "Change by mask").

Environments management

cmd count [number]
Sets amount of used pins. Default is 12. Available range 1 to 30. Frequently used 8.
cmd remap [number] [number] ... [number]
Remaps pins output. Example, in result of:
remap 2 1 4 3 6 5 8 7 10 9 12 11
state 101001011010 will be sets as 010110100101.
cmd ms [number]
Set speed multiplier. Range MULTIPLIER=[10...500]. PAUSE = MULTIPLIER * SPEED.
Default value is 10.
cmd restart
Restart script.
cmd show
Show window WndLpt. Automatically performed by command stop and on errors.
cmd hide
Hide window WndLpt. (Tray icon will stay untouched)
>change base LPT port ADDRESS
cmd set_lpt_port_addr_in_decimal_at_owners_risk [number]
Set another LPT port address. If wrong address set system may be crashed (with BOD) and looses of data. Default value 0x378 (888) may be overloaded by the registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\MAVius\LPT_port]
"addr"=dword:00000378
cmd priority [number]
Set thread priority. Min 1, max 7. Default value is 7 - maximum priority.
cmd enable_music [1|0]
Turn on/off internal music visualization by script.
cmd music_preset [=][+|-] <number>
Change music visualization preset.
cmd switch_to_music
Activate the Music Visualization tab.