Paragon Scripting Language.

(Version: 4.22)

Introduction

Explanation of Grammar

PSL Grammar

Semantics

Time Zone Codes

Locale Codes

Error Codes

Command Line Options

Simple Example

# Introduction

Paragon products support two modes of execution: interactive and batch processing. The interactive mode has a graphical interface and requires the user to carry out operations. While working in the batch mode it is possible to control the operation by using a file of script commands. A script file is a textual file written in the Paragon Scripting Language. It contains a set of operations to execute with appropriate settings applied to these operations.

Paragon Scripting Language enables to automate the disk/partition backup routines or cloning procedures of almost any complexity. Besides support of all operations available in the interactive mode, PSL provides some additional features, such as conditional execution, subroutines, repeatable iterations, disk/partition properties analysis, errors management, etc.

# Explanation of Grammar

Let’s use as an example for description of Paragon Scripting language the Backus Normal Form (BNF). BNF uses the following designations:

<language> ::= {<command>} - means that a condition language is a set of nonnegative numbers of commands, since the sign {} defines the order of nonnegative numbers of arguments.

<command> ::= <simple_command> | <advanced_command> - means that a condition command may be: simple_command or advanced_command.

<simple_command> ::= [<prefix>] <infix> <postfix> - means that a condition simple_command consists of three constituents: prefix, infix and postfix. A condition prefix may either be present or not in a simple_command.

As an example let’s write description of identifier in the C language by using BNF:

<identifier> ::= <letter_or_underline> {<letter_or_underline> | <digit>}

<letter_or_underline> ::= a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|_

<digit> ::= 1|2|3|4|5|6|7|8|9|0

It means that the first symbol in identifier is a letter_or_underline, and the others may be letter_or_underline or digit.

Reserved words are underlined. Reserved words are case insensitive. Between two conditions the user can place any number of spaces, tabs, new lines and even comments by using /* for an open comment and */ for a close comment. The user can also comment on any string from // symbol till the end of line. Condition <any symbol> allows the user to write down any symbol.

# PSL Grammar

As was already mentioned, PSL program is a textual file, which consists of the sequence of PSL-commands and comments. A comment may be positioned in the same line with the command, or it can be inserted as a comment block, which takes one or several strings, following each other.

Each PSL-command begins from a new line and can be preceded by a label. Structurally PSL-program consists of the main program and its procedures. The beginning of the program coincides with the beginning of the file, and its end – with the end of the file accordingly. There are no special operators defining the beginning and the end of the main program.

Procedures are placed inside of the main program, and, therefore, each procedure must be preceded by a special operator which jumps to another position of the main program (i.e. steps over the procedure). The beginning of each procedure is identified by a label, and the end is identified by the endcall keyword. This is a command, which returns the program execution to the point from which this procedure was called.

<language> ::= <command> {<command>}

<command> ::= [<label>] <Paragon partition manager command> | <Paragon drive backup command> | <special command> | <network command> | <global command> | <psr_command> | <bm command>

<global command> ::= <select disk> | <select destination> | <select store file> | <select base archive> | <select copy disk> | <select copy destination> | <unselect all> | <apply> | <undo> | <check option> | <settings block> | <pause> | <bluescrn>

<unselect all> ::= UNSELECT ALL

<bluescrn> ::= BLUESCRN INSTALL /BLUESCRN=<string> /SCRIPT=<string> /REBOOT | BLUESCRN UNINSTALL

<label> ::= <name> :

<name> ::= <letter_or_underline> {<letter_or_underline> | <digit>}

<letter_or_underline> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _

<digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

<Paragon partition manager command> ::= <create partition> | <format partition> | <sets flag for partition> | <resize partition> | <modify partition> | <delete partition> | < wipe> | <clear free space> | <protect> | <move partition> | <copy partition> | <copy disk> | <change SID> | <mount or umount> | <list> | <clear disk> | <merge partitions> | <defragment> | <update mbr>

<Paragon drive backup command> ::= <operations with hard disk> | <operation with partition> | <operations with floppy> | <operations with MBR> | <operations with first track> | INTEGRITY <pwd or none>

<pwd or none> ::= <string> |

<string> ::= “{<any symbol>}” | <string> + <string> | (<string>) | STRINGDEC (<size operand>) | STRINGHEX (<size operand>) | STRING (<name>) | STRINGPARAMETER (<name>) | STRINGDAYOFWEEK (<size operand>) | STRINGMONTH (<size operand>) | STRINGTIME (<size operand>) | SUBSTRING (<string>, <size operand>, <size operand>) | CODETOCHAR (<size operand>) | USERSTRING | POPSTR | DIRELEMENT (<filename*>, <size operand>)

<special command> ::= <goto> | <cycle> | <condition> | <print> | <ask> | <debug> | <shell execute> | <default answers> | <reboot> | <set variable> | <strerror> | <endcall> | <exit_prog> | <set value> | <set string> | <file operations> | <stack operations> | <xfind> | <shutdown> | <silent>

<xfind> ::= XFIND OPTIONS <xfind options> {<xfind options>} ENDOPTIONS BEGIN {<command>} ENDXFIND

<xfind options> ::= RESULT = <name> | RECURSIVE = OFF | RECURSIVE = DIRECTORIES FIRST | RECURSIVE = DIRECTORIES LAST | RECURSIVE = FILES FIRST | RECURSIVE = FILES LAST | RECURSIVE LEVEL = <size operand> | DIRECTORIES = <protect disk switch> | FILES = <protect disk switch> | MASK = <string> | START = <filename*> | SEARCH = DEEP | SEARCH = WIDE

<silent> ::= SILENT <protect disk switch>

<stack operations> ::= PUSHSTR (<string>) | PUSHNUM (<size operand>)

<file operations> ::= FILEDELETE (<filename*>) | FILEMAKEDIR (<filename*>) | FILEDELETEDIR (<filename*>) | FILERENAME (<filename*>, <filename*>) | FILECOPY (<filename*>, <filename*>) | FILEMERGE (<filename*>, <filename*>)

<set variable> ::= SET VARIABLE <string>

<set value> ::= SET VALUE <name> = <size operand>

<set string> ::= SET STRING <name> = <string>

<operations with hard disk> ::= <store hard disk> | <restore hard disk>

<store hard disk> ::= <select all partitions> [ OPTIONS <store options> {<store options>}] <store>

<select disk> ::= SELECT DRIVE <disk specification> | SELECT DISK <disk specification>

<disk specification> ::= <Paragon magic number> | <size operand> | <network disk name> | <linux name>

<network disk name> ::= </></><host></><path>

</> ::= / | \

<linux name> ::= hda | hdb | hdc | hdd | sda | sdb | sdc | sdd

<Paragon magic number> ::= PARAGON <number>

<select all partitions> ::= SELECT PARTITIONS ALL

<select store file> ::= IMG = <filename*>

<select base archive> ::= BASE = <filename*>

<letter> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

<number> ::= [-]< digit> {< digit>} | [-]< hex mask>

<nonzero digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<store options> ::= < store structure only> | < compression> | < split> | < password> | < sector by sector> | < archive label> | < autonames> | < incremental> | < estimation> | HOTBACKUP < hotbackup parameters> | TEMPDRIVE < letter> | NOTEMPFILES | NOSIGNATURE

<estimation> ::= ESTIMATION (<size operand>, <name string>)

<incremental> ::= INCREMENT = <string>

<autonames> ::= AUTONAMES

<check option> ::= CHECK | SURFACETEST

<archive label> ::= LABEL = <string>

<sector by sector> ::= CAS

<password> ::= PWD = <string>

<split> ::= MFS = <size operand>

<compression> ::= CMP = <size operand>

<compression level> ::= <digit>

<store structure only> ::= SSO

<bad sector checking> ::= CBS

<verify written> ::= RAV = <size operand>

<start position> ::= START = <size operand>

<store> ::= STORE

<restore hard disk> ::= <clear disk> <select all images> [ OPTIONS <restore options> {<restore options>}] <restore>

<clear disk> ::= DELETE ALL

<update mbr> ::= UPDATE MBR

<select all images> ::= SELECT IMAGE ALL

<restore options> ::= <bad sector checking> | <password> | <verify written> | <start position> | AUTORESIZE

<restore> ::= RESTORE

<operation with partition> ::= <store partition> | <restore partition>

<store partition> ::= {<select partition>} [ OPTIONS <store options> {<store options>}] <store>

<select partition> ::= SELECT PARTITION <size operand> | SELECT PARTITION <letter> | SELECT PARTITION <string> | SELECT PARTITION FIRST | SELECT PARTITION LAST | SELECT PARTITION EXTENDED | SELECT PARTITION LARGEST | SELECT PARTITION SMALLEST | SELECT PARTITION NEXT | SELECT PARTITION PREVIOUS | SELECT PARTITION OFFSET <size operand> | SELECT PARTITION VARIABLE <string> | SELECT PARTITION PRIMARY <size operand> | SELECT PARTITION LOGICAL <size operand> | SELECT PARTITION ADDRESS <size operand>

<restore partition> ::= <select image> [<image restore options>] {<select image> [<image restore options>]} [ OPTIONS <restore options> {<restore options>}] <restore>

<select destination> ::= <select partition> | <select freespace>

<select freespace> ::= SELECT FREESPACE FIRST | SELECT FREESPACE LAST | SELECT FREESPACE LARGEST | SELECT FREESPACE SMALLEST | SELECT FREESPACE <size operand> | SELECT FREESPACE OFFSET <size operand> | SELECT FREESPACE PRIMARY <size operand> | SELECT FREESPACE LOGICAL <size operand> | SELECT FREESPACE ADDRESS <size operand>

<select image> ::= <select all images> | SELECT IMAGE <size operand>

<image restore options> ::= RESIZE IMAGE NO | RESIZE IMAGE PROPORTIONAL | RESIZE IMAGE <size operand> | RESIZE IMAGE MAX | RESIZE IMAGE MOST SPACE

<operations with floppy> ::= <store floppy> | <restore floppy>

<store floppy> ::= <select floppy> [ OPTIONS <store options> {<store options>}] <store>

<restore floppy> ::= <select floppy> [ OPTIONS <restore options> {<restore options>}] <restore>

<select floppy> ::= SELECT FLOPPY <size operand> | SELECT FLOPPY <letter>

<operations with MBR> ::= <store MBR> | <restore MBR>

<store MBR> ::= <select mbr> [ OPTIONS <store options> {<store options>}] <store>

<restore MBR> ::= <select mbr> [ OPTIONS <restore options> {<restore options>}] <restore>

<select MBR> ::= SELECT MBR <disk specification>

<operations with first track> ::= <store first track> | <restore first track>

<store first track> ::= <select first track> [ OPTIONS <store options> {<store options>}] <store>

<restore first track> ::= <select first track> [ OPTIONS <restore options> {<restore options>}] <restore>

<select first track> ::= SELECT FIRST TRACK <disk specification>

<create partition> ::= CREATE /FS = <partition type> {<create options>}

<partition type> ::= FAT | FAT32 | HPFS | LINUXEXT2 | LINUXSWAP | NTFS | EXTENDED | UNFORMATTED | LINUXEXT3 | LINUXREISER | LINUXSWAP2

<create options> ::= /LABEL = <string> | /SIZE = <size operand> | /POSITION = <align> | /ID = <size operand>

<align> ::= BEGINNING | END | <size operand>

<format partition> ::= FORMAT <format specification> {/NTBUILDINFORMAT} /FS = <fs type> {<format options>}

<format specification> ::= <string> | “NO NAME” | “UNKNOWN”

<fs type> ::= FAT | FAT32 | HPFS | LINUXEXT2 | LINUXSWAP | NTFS | LINUXSWAP2 | LINUXEXT3 | LINUXREISER

<format options> ::= /LABEL = <string> | /CLUSTER = <size operand> | /ROOT = <size operand> | /BOOT = <size operand>

<sets flag for partition> ::= <flag options>

<flag options> ::= HIDE | UNHIDE | SET ACTIVE | SET INACTIVE

<resize partition> ::= <resize> | <resize larger> | <resize left boundary> | <resize left boundary larger> | <resize left boundary smaller> | <resize smaller> | <resize space after> | <resize space before>

<resize> ::= RESIZE <resize parameter> [/CLUSTERSIZE = <size operand>]

<resize parameter> ::= MAX | MIN | <size operand>

<cluster size> ::= 512 | 1 | 2 | 4 | 8 | 16 | 32 | 64

<resize larger> ::= RESIZE LARGER <resize parameter> [/CLUSTERSIZE = <size operand>]

<resize left boundary> ::= RESIZE LEFT BOUNDARY <resize parameter>

<resize left boundary larger> ::= RESIZE LEFT BOUNDARY LARGER <resize parameter>

<resize left boundary smaller> ::= RESIZE LEFT BOUNDARY SMALLER <resize parameter>

<resize smaller> ::= RESIZE SMALLER <resize parameter> [/CLUSTERSIZE = <cluster size>]

<resize space after> ::= RESIZE SPACE AFTER <resize parameter> [/CLUSTERSIZE = <cluster size>]

<resize space before> ::= RESIZE SPACE BEFORE <resize parameter>

<modify partition> ::= <convert> | <resize root> | <resize boot> | <resize cluster> | <change volume label> | <change serial> | <change partition id>

<convert> ::= CONVERT TO FAT | CONVERT TO FAT32 | CONVERT TO HPFS | CONVERT TO NTFS | CONVERT TO PRIMARY | CONVERT TO LOGICAL

<resize root> ::= RESIZE ROOT <resize parameter>

<resize boot> ::= RESIZE BOOT <resize parameter>

<resize cluster> ::= RESIZE CLUSTER <resize parameter>

<change volume label> ::= LABEL [/SETLABEL = <string>]

<change serial> ::= SERIAL [/SETSERIAL = <size operand>]

<change partition id> ::= PARTITIONID [/SETID = <size operand>]

<delete partition> ::= DELETE <delete options>

<delete options> ::= <string> | “NO NAME” | “LINUXSWAP” | “UNKNOWN”

<wipe> ::= WIPE {<wipe options>} | WIPE DISK {<wipe options>}

<wipe options> ::= <wipe_old_options> | METHOD = CUSTOM <wipe_old_options> | METHOD = <US_DOD | US_NAVY_RLL | US_NAVY_MFM | BRITISH_HMG_INFOSEC | GERMAN_VSLTR | AUSTRALIAN_ASCI_33 | RUSSIAN_GOST | GUTTMANS | SCHNEIDERS | PARAGONS> <wipe_new_options>

<wipe_new_options> ::= VERIFY = <size operand>

<wipe_old_options> ::= MASK = <size operand> | PASS = <size operand> | PERCENTS = <size operand>

<hex mask> ::= 0x<hex digit>{<hex digit>}

<hex digit> ::= <digit> | A | B | C | D | E | F

<clear free space> ::= CLEAR {<wipe options>}

<protect> ::= < partition protect> | < disk protect>

<partition protect> ::= < protect partition> | < unprotect partition>

<disk protect> ::= SET DRIVE READ ONLY MODE <protect disk switch>

<protect partition> ::= PROTECT PARTITION FIRST | PROTECT PARTITION LAST | PROTECT PARTITION

<unprotect partition> ::= UNPROTECT PARTITION FIRST | UNPROTECT PARTITION LAST | UNPROTECT PARTITION

<protect disk switch> ::= ON | OFF

<move partition> ::= <move left> | <move right> | <move space before> | <move space after> | MOVE {<copy partition options>}

<move left> ::= MOVE LEFT <resize parameter>

<move right> ::= MOVE RIGHT <resize parameter>

<move space before> ::= MOVE SPACE BEFORE <move parameter>

<move parameter> ::= MAX | <size operand>

<move space after> ::= MOVE SPACE AFTER <move parameter>

<copy partition> ::= COPY {<copy partition options>}

<copy partition options> ::= /SIZE = <size operand> | /POSITION = <size operand> | AUTORESIZE

<copy disk> ::= COPYDISK {<copy disk options>}

<copy disk options> ::= NO_FREESPACES | PROPORTIONAL <resize parameter>

<change SID> ::= SID <string> | SID DISK <string>

<mount or umount> ::= UMOUNT | MOUNT “<letter>” | MOUNT <string> | MOUNT ALL | UMOUNT ALL

<list> ::= LIST (<size operand>, <size operand>) | MOUNTLIST (<size operand>, <size operand>) | FULLLIST (<size operand>, <size operand>)

<merge partitions> ::= MERGE < string>

<defragment> ::= DEFRAGMENT MFT | DEFRAGMENT PARTITION {< defragment options>}

<defragment options> ::= SKIP SWAP | SORT TIME ASCENDING | SORT TIME ASIS | SORT TIME DESCENDING | SORT DIRECTORIES FIRST | SORT DIRECTORIES ASIS | SORT DIRECTORIES LAST | SORT FILES FIRST | SORT FILES ASIS | SORT FILES LAST | SORT LARGEST FIRST | SORT LARGEST ASIS | SORT LARGEST LAST | SORT SMALLEST FIRST | SORT SMALLEST ASIS | SORT SMALLEST LAST

<select copy disk> ::= SELECT COPY DRIVE <disk specification> | SELECT COPY DISK <disk specification>

<select copy destination> ::= <select copy partition> | <select copy freespace>

<select copy partition> ::= SELECT COPY PARTITION <size operand> | SELECT COPY PARTITION <letter> | SELECT COPY PARTITION <string> | SELECT COPY PARTITION FIRST | SELECT COPY PARTITION LAST | SELECT COPY PARTITION EXTENDED | SELECT COPY PARTITION LARGEST | SELECT COPY PARTITION SMALLEST | SELECT COPY PARTITION NEXT | SELECT COPY PARTITION PREVIOUS | SELECT COPY PARTITION OFFSET <size operand> | SELECT COPY PARTITION VARIABLE <string> | SELECT COPY PARTITION PRIMARY <size operand> | SELECT COPY PARTITION LOGICAL <size operand> | SELECT COPY PARTITION ADDRESS <size operand>

<select copy freespace> ::= SELECT COPY FREESPACE FIRST | SELECT COPY FREESPACE LAST | SELECT COPY FREESPACE LARGEST | SELECT COPY FREESPACE SMALLEST | SELECT COPY FREESPACE <size operand> | SELECT COPY FREESPACE OFFSET <size operand> | SELECT COPY FREESPACE PRIMARY <size operand> | SELECT COPY FREESPACE LOGICAL <size operand> | SELECT COPY FREESPACE ADDRESS <size operand>

<goto> ::= GOTO <label> | CALL <label>

<print> ::= PRINT <string> | PRINTDEC <size operand> | PRINTHEX <size operand>

<ask> ::= ASK

<debug> ::= SCO <protect disk switch>

<shell execute> ::= EXEC FILE <filename*> [PARAMETERS <string> {<string>} ENDPARAMETERS] | RUN FILE <filename*> [PARAMETERS <string> {<string>} ENDPARAMETERS]

<default answers> ::= CONFIRM <protect disk switch>

<cycle> ::= <disk cycle> | <partition cycle> | <do .. while cycle>

<do .. while cycle> ::= DO {<command>} WHILE (<clause>)

<disk cycle> ::= FOR ALL DISKS {<command>} ENDFOR

<partition cycle> ::= FOR ALL PARTITIONS {<command>} ENDFOR

<condition> ::= IF (<clause>) THEN {<command>} ENDIF [ ELSE {<command>} ENDELSE ]

<clause> ::= <if clause> | <clause> AND <clause> | <clause> OR <clause> | NOT <clause> | (<clause>)

<if clause> ::= <if boot> | <if hidden> | <if primary> | <if extended> | <if logical> | <if fat> | <if size> | <if filesystem> | <if time> | <ask> | <if errorcode> | <if exist> | <if mount name> | <if volume label> | <if unknown> | <if unformatted> | <if errornoeuse> | <if free> | <if file exist> | <if file is dir> | <if os> | <if compare strings> | <if subsource extended>

<if subsource extended> ::= SUBSOURCEEXTENDED (<filename*>, <string>, <size operand>)

<if compare strings> ::= STRINGSEQUAL (<string>, <string>) | STRINGSNOTEQUAL (<string>, <string>) | STRINGSCASEEQUAL (<string>, <string>) | STRINGSCASENOTEQUAL (<string>, <string>)

<if os> ::= OS < equal> < os name>

<os name> ::= DOS | WIN95 | OSR2 | WIN98 | WINME | WINNT | WIN2K | WINXP | LINUX | OS2 | BEOS | BLUESCREEN

<if file is dir> ::= FILEISDIR (<filename*>)

<if file exist> ::= FILEEXIST (<filename*>)

<if free> ::= FREE (<disk indicator>, <partition indicator>)

<if unknown> ::= UNKNOWN (<disk indicator>, <partition indicator>)

<if unformatted> ::= UNFORMATTED (<disk indicator>, <partition indicator>)

<if errornoeuse> ::= ERRORNOEUSE (<disk indicator>, <partition indicator>)

<if errorcode> ::= <error operand> <comparison> <error operand next>

<error operand> ::= ERRORCODE (<size operand>)

<error operand next> ::= <error operand> | <size operand>

<if exist> ::= <if exist disk> | <if exist partition>

<if exist disk> ::= EXIST (<disk indicator>)

<if exist partition> ::= EXIST (<disk indicator> , <partition indicator>)

<if mount name> ::= MOUNT (<disk indicator> , < partition indicator>) <equal> <string>

<if volume label> ::= VOLUMELABEL (<disk indicator>, <partition indicator>) <equal> <string>

<if boot> ::= BOOT (<disk indicator> , <partition indicator>)

<if hidden> ::= HIDDEN (<disk indicator> , <partition indicator>)

<if primary> ::= PRIMARY (<disk indicator> , <partition indicator>)

<if extended> ::= EXTENDED (<disk indicator> , <partition indicator>)

<if logical> ::= LOGICAL (<disk indicator> , <partition indicator>)

<if fat> ::= FAT (<disk indicator> , <partition indicator>)

<disk indicator> ::= CURDISK | <disk specification>

<partition indicator> ::= CURPARTITION | <size operand> | <letter> | <string> | FIRST | LAST | EXTENDED | LARGEST | SMALLEST

<if size> ::= <size operand> <comparison> <size operand>

<comparison> ::= < | <= | >= | > | == | != | <>

<size operand> ::= (<size operand>) | - <size operand> | <size operand> <arithmetic> <size operand> | SIZEDISK (<disk indicator>) | SIZEPARTITION (<disk indicator> , <partition indicator>) | SIZEFREE (<disk indicator>, <partition indicator>) | SIZEUSED (<disk indicator>, <partition indicator>) | <number> | <value> | <parameter> | PARTTYPE (<disk indicator>, <partition indicator>) | STARTSECTOR (<disk indicator>, <partition indicator>) | ENDSECTOR (<disk indicator>, <partition indicator>) | BOOTSIZE (<disk indicator>, <partition indicator>) | ROOTSIZE (<disk indicator>, <partition indicator>) | CLUSTERSIZE (<disk indicator>, <partition indicator>) | FATNUMBER (<disk indicator>, <partition indicator>) | ROOTFILES (<disk indicator>, <partition indicator>) | STRINGLENGTH (<string>) | FILESIZE (<filename*>) | NOWTIME | DAYOFMONTH (<size operand>) | HOUR (<size operand>) | DAYOFYEAR (<size operand>) | MONTH (<size operand>) | MINUTE (<size operand>) | SECOND (<size operand>) | DAYOFWEEK (<size operand>) | YEAR (<size operand>) | SUBQUANTITY (<filename*>, <string>) | SOURCESIZE (<filename*>, <string>) | SUBSOURCESIZE (<filename*>, <string>, <size operand>) | SUBSOURCEDISK (<filename*>, <string>, <size operand>) | SUBSOURCESTART (<filename*>, <string>, <size operand>) | CHARTOCODE (<string>) | POPNUM | DIRCONTENTS (<filename*>) | FILECREATETIME (<filename*>) | FILEMODIFYTIME (<filename*>) | FILEACCESSTIME (<filename*>)

<value> ::= VALUE (<name>)

<parameter> ::= PARAMETER (<name>)

<arithmetic> ::= - | + | * | /

<if filesystem> ::= FILESYSTEM (<disk indicator> , <partition indicator>) <equal> <fs type>

<equal> ::= == | != | <>

<reboot> ::= REBOOT

<network command> ::= <close component> | <check presence>

<close component> ::= CLOSE <close file> {; <close file>}

<close file> ::= <filename*>

<check presence> ::= PRESENCE <close file> {; <close file>}

<if time> ::= TIME (<hour> : <minute> <day> : <month> : <year>)

<hour> ::= < digit> < digit>

<minute> ::= < digit> < digit>

<day> ::= < digit> < digit>

<month> ::= < digit> < digit>

<year> ::= < digit> < digit>

<apply> ::= APPLY <size operand> | APPLY ALL

<undo> ::= UNDO < size operand> | UNDO ALL

<pause> ::= PAUSE (<size operand>)

<strerror> ::= STRERROR (<error operand next>)

<exit_prog> ::= EXIT (<error operand next>)

<endcall> ::= ENDCALL

<settings block> ::= SETTINGS {<settings commands>} ENDSETTINGS

<settings commands> ::= SURFACETEST <protect disk switch> | VERIFY <protect disk switch> | COPYONETOONE <protect disk switch> | ALLOW64KCLUSTER <protect disk switch> | DONOTHIDETARGET <protect disk switch> | COPYINSTEADOFMOVE <protect disk switch> | BIGDRIVES <protect disk switch> | COMPRESSIONLEVEL <size operand> | SIDAFTERDISK <protect disk switch> | SIDAFTERPARTITION <protect disk switch> | DEFAULTSIDCHANGER <protect disk switch> | NODELLABEL <protect disk switch> | TIMESHIFT <size operand> | OEMCODEPAGE <size operand> | TIMEZONE <size operand> | LANGNUMBER <size operand> | SLAVECFG <protect disk switch> | NOTFORSLAVE <protect disk switch> | ENABLERESTART <protect disk switch> | ENABLEVIRTUALDB <protect disk switch> | AUTOCONVERTTOFAT32 <protect disk switch> | SIDPARAMSLENGTH <size operand> | SIDPARAMS <string> | HOTBACKUP <hotbackup parameters> | TEMPDRIVE <letter>

<hotbackup parameters> ::= OPTIONAL | ALWAYS | LOCKIMPOSSIBLE | NEVER

<filename> - is a <string>, but it has its own grammar.

<filename> ::= <ordinary file> | <UFSD file> | <CD/DVD file>

<ordinary file> ::= <drive><path>

<ordinary file without slashes> ::= <drive without slashes><path>

<UFSD file> ::= UFSD:</></><ordinary file without slashes>

<CD/DVD file> ::= CDB:</></><number></><path>

<drive> ::= <dos drive> | <linux drive> | <common drive> | <network file>

<drive without slashes> ::= <dos drive> | <linux name><number></> | HARD<number></><partition id></> | (SELECT)</>

<dos drive> ::= <letter>:</>

<linux drive> ::= </><linux name><number></> | </>

<network file> ::= </></><host></><path>

<host> ::= <ip address> | <string>

<ip address> ::= <ip number>.<ip number>.<ip number>.<ip number>

<ip number> ::= < digit>[< digit>][< digit>]

<path> ::= {<any symbol>}

<common drive> ::= </>HARD<number></><partition id></> | (SELECT)</>

<partition id> ::= PARTITION<number> | PARTSTART<number> | PRIMARY<number> | LOGICAL<number>

<psr command> ::= <set psr options> | <install psr> | <uninstall psr>

<set psr options> ::= PSR OPTIONS <select scenario type> <select os type> [<select source dir> | <select source iso>] <select install dir> [<select timeout>] [<select key>] [<select message>] ENDOPTIONS

<install psr> ::= PSR INSTALL

<uninstall psr> ::= PSR UNINSTALL

<select scenario type> ::= PSR_SCENARIO_TYPE = <scenario type>

<scenario type> :: = PSR_SCENARIO_BOOT | PSR_SCENARIO_REBOOT

<select os type> ::= PSR_OS_TYPE = <os type>

<os type> :: = PSR_OS_DOS | PSR_OS_LINUX | PSR_OS_ALL | PSR_OS_WINPE

<select source dir> ::= PSR_SOURCE_DIR = <string>

<select source iso> ::= PSR_SOURCE_ISO = <string>

<select install dir> ::= PSR_INSTALL_DIR = <string>

<select timeout> ::= TIMEOUT = <string>

<select key> ::= KEY = <key>

<key> ::= KEY_A | … | KEY_Z | KEY_0 | … | KEY_9 | KEY_F1 | … | KEY_F12 | KEY_ESC | KEY_MINUS | KEY_EQUALS | KEY_BACKSPACE | KEY_TAB | KEY_OPENBRACE | KEY_CLOSEBRACE | KEY_ENTER | KEY_COLON | KEY_QUOTE | KEY_BACKSLASH | KEY_COMMA | KEY_DOT | KEY_SLASH | KEY_SPACE | KEY_HOME | KEY_END | KEY_PGUP | KEY_PGDN | KEY_INSERT | KEY_DELETE | KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_ASTERISK_PAD | KEY_MINUS_PAD | KEY_PLUS_PAD | KEY_LSHIFT | KEY_RSHIFT | KEY_LCONTROL | KEY_RCONTROL | KEY_LALT | KEY_RALT | KEY_SCRLOCK | KEY_NUMLOCK | KEY_CAPSLOCK

<select message> ::= MESSAGE = <string>

<bm command> ::= <set bm options> | <install bm> | <uninstall bm>

<set bm options> ::= BM OPTIONS [<select bm path>] [<select timeout>] [<select key>] [<select message>] [<use old mbr>] ENDOPTIONS

<install bm> ::= BM INSTALL | BM INSTALL ON DISK <size operand>

<uninstall bm> ::= BM UNINSTALL

<select bm path> ::= BM = <string>

<use old mbr> ::= OLDMBR

# Semantics

Each operation predefines the operation algorithm the user has to follow. For example, such operations as store partition/ disk, restore partition/ disk first require setting up an appropriate disk/ partition and a backup file. For such operations as create, format, resize, modify, delete, wipe, clear free space, protect, move, check surface the user must select disk/ partition. It should be mentioned here, that the disks/ partitions numeration always starts from zero.

Let’s take a look at some operations and their controls.

UNSELECT ALL:

Unselects all previously selected objects (disks and partitions).

OPTIONS:

Specifies the beginning of the options group.

ENDOPTIONS:

Specifies the ending of the options box.

SELECT DRIVE:

SELECT DISK:

Selects HDD.

SELECT PARTITIONS ALL:

Selects all the partitions on the disk.

IMG:

Specifies a path and a filename for the image file.

BASE:

Specifies a path and a filename of the base archive for the incremental backup.

BLUESCRN INSTALL:

Activates bluescreen on next Windows reboot (Win32 only).

/BLUESCRN – path to the Bluescrn.exe custom folder. If set "", scripts will automatically search for Bluescrn.exe in ../Bluescrn, ./, /Bluescrn, ../.

/SCRIPT – path to a script to execute in the bluescreen mode.

/REBOOT – immediately reboots from the current script (optional).

BLUESCRN UNINSTALL

Deletes bluescreen from the Windows register.

LABEL:

Specifies a volume label or an image file label for the partition.

CAS:

Specifies the sector-by-sector copy mode. All data, including deleted files will be saved.

PWD:

Specifies a password.

INCREMENT:

Specifies the incremental backup. Parameter is used for setting a password for the base archive (in case there is no password for the base archive, leave the parameter empty).

AUTONAMES:

Specifies automatic generation for subsequent writing.

MFS:

Specifies the maximum image file size (in Kb). When the limit is reached, the image will be split.

CMP:

Specifies the image compression level.

SSO:

Stores system structure only.

NOTEMPFILES:

Cancels processing of the temporary files (for example, pagefile.sys).

NOSIGNATURE:

Archives will not be signed.

STORE:

Starts the backup operation.

DELETE ALL:

Removes all on disk data.

UPDATE MBR:

Updates MBR on the disk by a default value.

SELECT IMAGE ALL:

Selects images of all partitions in the image file.

RESTORE:

Starts the restore operation. All data will be restored to the selected free space.

SELECT PARTITION:

Selects partition by number, letter, volume name.

SELECT PARTITION FIRST:

Selects the first partition on the disk.

SELECT PARTITION LAST:

Selects the last partition on the disk.

SELECT PARTITION EXTENDED:

Selects the extended partition on the disk.

SELECT PARTITION LARGEST:

Selects the largest partition on the disk.

SELECT PARTITION SMALLEST:

Selects the smallest partition on the disk.

SELECT PARTITION NEXT:

Selects the next partition on the disk.

SELECT PARTITION PREVIOUS:

Selects the previous partition on the disk.

SELECT PARTITION OFFSET:

Selects partition by the start sector.

SELECT PARTITION ADDRESS:

Selects partition of the specified sector.

SELECT FREESPACE FIRST:

Selects the first free space on the disk.

SELECT FREESPACE LAST:

Selects the last free space on the disk.

SELECT FREESPACE LARGEST:

Selects the largest free space on the disk.

SELECT FREESPACE SMALLEST:

Selects the smallest free space on the disk.

SELECT FREESPACE:

Selects free space by number.

SELECT FREESPACE OFFSET:

Selects free space by the start sector.

SELECT FREESPACE ADDRESS:

Selects free space of the specified sector.

SELECT IMAGE:

Selects image in the image file.

RESIZE IMAGE NO:

The last selected image will not be resized during restore.

RESIZE IMAGE PROPORTIONAL:

Proportionally resizes the last selected image during restore.

RESIZE IMAGE:

Resizes the last selected image according to the specified size (in Kb) during restore.

RESIZE IMAGE MAX:

Resizes the last selected image to the maximum size possible during restore.

RESIZE IMAGE MOST SPACE:

Changes the partition size up to the maximum available size during restore.

SELECT FLOPPY:

Selects floppy drive by name or number.

SELECT MBR:

Selects the disk for MBR backup/restore operations.

SELECT FIRST TRACK:

Selects the disk for the first track backup/restore operations.

CREATE:

Creates a new partition, and format it (optionally).

FS:

Specifies the partition file system type.

SIZE:

Specifies the size in Kb.

POSITION:

Specifies the partition position: begin of the block, end of the block or start sector.

ID:

Specifies partition ID for a newly created partition (without format).

BEGINNING:

Specifies that the partition created must be placed at the beginning of the free space.

END:

Specifies that the partition created must be placed at the end of the free space.

FORMAT:

Formats the selected partition.

NTBUILDINFORMAT:

During the format operation restricts the available values according to the used OS.

CLUSTER:

Specifies the number of sectors per clusters.

BOOT:

Specifies the number of boot sectors.

ROOT:

Specifies the number of root directory entries.

HIDE:

Hides the selected partition.

UNHIDE:

Unhides the selected partition.

SET ACTIVE:

Makes the selected partition bootable.

SET INACTIVE:

Makes the selected partition non-bootable.

RESIZE:

Change the size of the selected partition.

CLUSTERSIZE:

Sets the specified cluster size.

MAX:

Resizes to the maximum size possible.

MIN:

Resizes to the minimum size possible (defined by the amount of data stored).

Resize larger:

Increases the partition size by the value specified.

Resize left boundary:

Changes the extended partition size by moving its left boundary.

Resize left boundary larger:

Increases the extended partition size by the change of its left boundary.

Resize left boundary smaller:

Decreases the extended partition size by the change of its left boundary.

Resize smaller:

Decreases the partition size by specifying the incremental change in size.

Resize space after:

Changes the partition size by specifying the amount of the free space left after the partition when the operation is competed.

Resize space before:

Changes the partition size by specifying the amount of the free space left before the partition when the operation is completed.

CONVERT TO FAT:

Converts a FAT32 or NTFS partition into FAT.

CONVERT TO FAT32:

Converts a FAT or NTFS partition into FAT32.

CONVERT TO HPFS:

Converts a FAT partition into HPFS.

CONVERT TO NTFS:

Converts a FAT partition into NTFS.

CONVERT TO PRIMARY:

Converts a logical partition into primary.

CONVERT TO LOGICAL:

Convert a primary partition into logical.

Resize root:

Changes the number of the elements in the FAT partition root directory.

Resize boot:

Changes the number of boot sectors.

Resize cluster:

Changes the number of sectors per cluster.

SETLABEL:

Changes the volume label of the selected partition.

SERIAL:

With no parameters specified this option displays the serial number of the selected partition.

SETSERIAL:

Specifies the serial number.

PARTITIONID:

With no parameters specified this option displays the partition ID of the selected partition

SETID:

Specifies the partition ID.

DELETE:

Removes the selected partition.

WIPE:

Wipes the partition by using the mask and checks the result.

WIPE DISK:

Wipes the disk by using the mask and checks the result.

MASK:

Specifies the wipe mask

PASS:

Specifies the number of wipe passes.

PERCENTS:

Specifies the object size for verification in percents (0-100).

CLEAR:

Fills free space by using the mask and checks result.

SET DRIVE READ ONLY MODE:

Sets or removes the disk write-protection. Write-protection does not work for free blocks

PROTECT PARTITION FIRST:

Sets the first partition write-protection. Write-protection does not work for free blocks.

PROTECT PARTITION LAST:

Sets the last partition write-protection. Write-protection does not work for free blocks.

PROTECT PARTITION:

Sets the selected partition write-protection. Write-protection does not work for free blocks.

UNPROTECT PARTITION FIRST:

Removes the first partition write-protection.

UNPROTECT PARTITION LAST:

Removes the last partition write-protection.

UNPROTECT PARTITION:

Removes the selected partition write-protection.

MOVE:

Moves the selected partition to the selected copy partition.

MOVE LEFT:

Move the selected partition to the left.

MOVE RIGHT:

Move the selected partition to the right.

MOVE SPACE BEFORE:

Same as move right.

MOVE SPACE AFTER:

Same as move left.

COPY:

Copies one partition to another.

SELECT COPY DRIVE:

SELECT COPY DISK:

Selects the disk for a copy operation.

SELECT COPY PARTITION:

Selects the partition by number, letter or a volume label for a copy operation.

SELECT COPY PARTITION FIRST:

Selects the first partition as a target for a copy operation.

SELECT COPY PARTITION LAST:

Selects the last partition as a target for a copy operation.

SELECT COPY PARTITION EXTENDED:

Selects the extended partition as a target for a copy operation.

SELECT COPY PARTITION LARGEST:

Selects the largest partition as a target for a copy operation.

SELECT COPY PARTITION SMALLEST:

Selects the smallest partition as a target for a copy operation.

SELECT COPY PARTITION NEXT:

Selects the next partition as a target for a copy operation.

SELECT COPY PARTITION PREVIOUS:

Selects the previous partition as a target for a copy operation.

SELECT COPY PARTITION OFFSET:

Selects the partition by offset as a target for a copy operation.

SELECT COPY PARTITION ADDRESS:

Selects partition of the specified sector as a target for a copy operation.

SELECT COPY FREESPACE FIRST:

Selects the first free block as a target partition for a copy operation.

SELECT COPY FREESPACE LAST:

Selects the last free block as a target partition for a copy operation.

SELECT COPY FREESPACE LARGEST:

Selects the largest free block as a target partition for a copy operation.

SELECT COPY FREESPACE SMALLEST:

Selects the smallest free block as a target partition for a copy operation.

SELECT COPY FREESPACE OFFSET:

Selects the free block by offset as a target partition for a copy operation.

SELECT COPY FREESPACE ADDRESS:

Selects free space of the specified sector as a target partition for a copy operation.

SELECT COPY FREESPACE:

Selects the free block by number as a target partition for a copy operation.

GOTO:

Jumps to the label.

PRINT:

Prints the message on the screen.

PRINTDEC:

Prints the number on the screen in decimal format.

PRINTHEX:

Prints the number on the screen in hexadecimal format.

ASK:

Waits for the user to answer. If the user inputs ‘y’, ‘Y’ or Enter, this parameter is ‘true’, otherwise – ‘false’.

SCO:

Checks the script syntax only.

EXEC FILE:

Runs the binary file. This command will postpone the script execution until the program is terminated. After that the current status of the program will be available via the ERRORCODE command.

RUN FILE:

Runs the binary file together with the script.

CONFIRM:

If the confirmation is turned off, default answers will be used. Otherwise, the user will be prompted to input the required answer.

FOR ALL DISKS:

A loop, each iteration of which selects the next drive.

ENDFOR:

The end of the loop.

FOR ALL PARTITIONS:

A loop, each iteration of which selects the next partition.

IF:

A condition branching.

THEN:

This branch is executed when the conditional expression takes the ‘true’ value.

ENDIF:

The end of the ‘true’ branch.

ELSE:

This branch is executed when the conditional expression takes the ‘false’ value.

ENDELSE:

The end of the ‘true’ branch.

AND:

Conjunction.

OR:

Disjunction.

NOT:

Denial.

BOOT:

Returns ‘true’ if the partition is bootable, otherwise – ‘false’.

HIDDEN:

Returns ‘true’ if the partition is hidden, otherwise – ‘false’.

PRIMARY:

Returns ‘true’ if the partition is primary, otherwise – ‘false’.

EXTENDED:

Returns ‘true’ if the partition is extended, otherwise – ‘false’.

LOGICAL:

Returns ‘true’ if the partition is logical, otherwise – ‘false’.

FAT:

Returns ‘true’ if the partition has the FAT file system, otherwise – ‘false’.

CURDISK:

Currently selected disk.

CURPARTITION:

Currently selected partition.

FIRST:

The first partition on the disk.

LAST:

The last partition on the disk.

EXTENDED:

The extended partition on the disk.

LARGEST:

The largest partition on the disk.

SMALLEST:

The smallest partition on the disk.

SIZEDISK:

Returns the disk size (in Kb).

SIZEPARTITION:

Returns the partition size (in Kb).

SIZEFREE:

Returns the amount of the partition free space (in Kb).

SIZEUSED:

Returns the amount of the partition used space (in Kb).

FILESYSTEM:

Returns the partition file system type.

REBOOT:

Restarts the computer.

CLOSE:

Exits from the running component.

PRESENCE:

Checks the presence of all clients in the multicast group or of standalone clients. Waits for this condition to be ‘true’.

TIME:

If the specified time is up, but the current script is not running, it returns ‘true’, otherwise – ‘false’.

CHECK:

Checks the current partition file system integrity.

SURFACETEST:

Checks the surface of the current partition.

ERRORCODE:

Returns the error code for the specified operation number. If the number is equal to 1, the operation returns the error code for the last operation, if 2 – the previous operation code, etc.

EXIST:

Returns ‘true’ if the specified drive or partition exists.

FREE:

Returns ‘true’ if the specified partition is a free block.

MOUNT:

Returns the path for the mounted partition, i.e. C:\ under DOS/Windows or /mnt/dos/ under LINUX.

UNMOUNT:

Unmounts the specified partition.

MOUNT ALL:

In DOS/Windows mounts all mountable partitions of the specified disk assigning available letters. Does not work under LINUX.

UNMOUNT ALL:

Unmounts all mountable partitions of the specified disk.

LIST:

Prints information on partitions. First parameter is the disk number, second – partition. Use -1 as the first parameter for choosing all disks. You may also use -1 as the second parameter for choosing all partitions.

MOUNTLIST:

Prints mount information on partitions. First parameter is the disk number, second – partition. Use -1 as the first parameter for choosing all disks. You may also use -1 as the second parameter for choosing all partitions.

FULLLIST:

Prints in-depth information on partitions in a parsing friendly form. First parameter is the disk number, second – partition. Use -1 as the first parameter for choosing all disks. You may also use -1 as the second parameter for choosing all partitions.

MERGE:

Merges a partition selected by the “select copy partition” command with a partition selected by the “select partition” command to the directory specified as a parameter of the merge operator.

VOLUMELABEL:

Returns the partition volume label.

APPLY:

Executes the specified number of virtual operations.

APPLY ALL:

Executes all virtual operations.

UNDO:

Cancels the specified number of virtual operations.

UNDO ALL:

Cancels all virtual operations.

PAUSE:

Specifies timeout (in seconds). If the input value is 0, it waits for pressing any key.

AUTORESIZE:

Corrects the size of the target partition automatically to make it take all the available space.

UNKNOWN:

Returns ‘true’ if the file system is unknown, otherwise – ‘false’.

UNFORMATTED:

Returns ‘true’ if the partition is unformatted, otherwise – ‘false’.

ERRORNOEUSE:

Returns ‘true’ if there are any problem in the MBR->EPR structure, otherwise – ‘false’.

SET VARIABLE:

Assigns a variable name to the current partition. It does not work for free blocks.

SET VALUE:

Assigns the specified value to the specified variable.

SHUTDOWN:

Shuts down computer from the script.

VALUE:

Returns the value of variable.

PARAMETER:

Returns the value of the command line parameter.

SELECT PARTITION VARIABLE:

Selects a partition, using a variable assigned to it.

SELECT COPY PARTITION VARIABLE:

Selects a target partition, using a variable assigned to it.

PARAGON:

Selects a partition, using the Paragon magic number.

SELECT PARTITION PRIMARY:

Selects a primary partition by number.

SELECT PARTITION LOGICAL:

Selects a logical partition by number.

SELECT FREESPACE PRIMARY:

Selects primary free space by number.

SELECT FREESPACE LOGICAL:

Selects logical free space by number.

SELECT COPY PARTITION PRIMARY:

Selects a primary partition for a copy operation by number.

SELECT COPY PARTITION LOGICAL:

Selects a logical partition for a copy operation by number.

SELECT COPY FREESPACE PRIMARY:

Selects primary free space for a copy operation by number.

SELECT COPY FREESPACE LOGICAL:

Selects logical free space for a copy operation by number.

STRERROR:

Prints the error description.

EXIT:

Exits the program and returns the specified script exit code.

CALL:

Calls the procedure routine.

ENDCALL:

Returns the control after the point of this procedure call.

CBS:

Checks for bad sectors while running the operation.

RAV:

Specifies the number of passes for the write-verification.

COPYDISK:

Copies one disk to another.

NO_FREESPACES:

Copies one disk to another skipping free blocks.

PROPORTIONAL:

Copies one disk to another with the proportional size change up to the maximum / minimum / defined values if available.

SETTINGS:

Defines the beginning of the block of settings.

ENDSETTINGS:

Defines the end of the block of settings.

SURFACETEST:

Turns on/off the surface test.

VERIFY:

Turns on/off the data verification while moving.

START:

Indicates the start sector for restoring.

COPYONETOONE:

Turns on/off the copy all sectors 1:1.

ALLOW64KCLUSTER:

Turns on/off the 64Kb cluster size for FAT file system.

DONOTHIDETARGET:

Turns on/off hiding target primary partitions.

COPYINSTEADOFMOVE:

Turns on/off copying instead of moving for adjacent blocks.

BIGDRIVES:

Turns on/off the support for drives of big capacity.

COMPRESSIONLEVEL:

Defines the default compression level for backup operations (0-9).

SIDAFTERDISK:

Turns on/off the SID changer usage after the disk operations.

SIDAFTERPARTITION:

Turns on/off the SID changer usage after the partition operations.

DEFAULTSIDCHANGER:

Turns on/off use the default SID changer parameters.

NODELLABEL:

Turns on/off the user prompt of the volume label in case of partition deletion.

TIMESHIFT:

Defines the time offset in minutes.

OEMCODEPAGE:

Defines the default code page number.

TIMEZONE:

Defines the time zone code.

LANGNUMBER:

Defines the default language number for current code page.

SLAVECFG:

Turns on/off the slave disk configuration update.

NOTFORSLAVE:

Turns on/off the slave disk layout refresh.

ENABLERESTART:

Turns on/off the system restart operation.

ENABLEVIRTUALDB:

Turns on/off virtual Backup/Restore operations.

AUTOCONVERTTOFAT32:

Turns on/off auto convert of FAT16 to FAT32.

SIDPARAMSLENGTH:

Defines the default length of the SID changer command line.

SIDPARAMS:

Defines the default SID changer command string.

SID:

Changes the partition SID according to the specified parameters. In case there are no parameters specified, the default value is used.

SID DISK:

Changes the disk SID according to the specified parameters. In case there are no parameters specified, the default value is used.

PARTTYPE:

Returns the partition type from MBR.

STARTSECTOR:

Returns the partition start sector.

ENDSECTOR:

Returns the partition end sector.

BOOTSIZE:

Returns the number of boot sectors.

ROOTSIZE:

Returns the root size.

CLUSTERSIZE:

Returns the cluster size.

FATNUMBER:

Returns the number of FAT copies.

ROOTFILES:

Returns the number of the root directory files.

INTEGRITY:

Checks the archive integrity.

UFSD:

Accesses the file by using UFSD (Universal File System Driver).

CDB:

Backups/restores file to/from CD/DVD a device. The device is specified by its sequence number.

(SELECT):

Backups/restores file to/from the previously selected partition.

PARTSTART:

Specifies partition by its start sector.

PARTITION:

Specifies partition by its sequence number.

STRING:

Gets string from the string variable.

STRINGPARAMETER:

Gets string from the string parameter.

STRINGDEC:

Creates decimal string representation.

STRINGHEX:

Creates hexadecimal string representation.

SET STRING:

Assigns the specified string value to the specified variable

STRINGLENGTH:

Returns the length of the specified string.

SUBQUANTITY:

If the archive is multivolume, SUBQUANTITY returns volume numbers, using the archive filename and its password.

SOURCESIZE:

Returns the size of a partition/disk contained in the archive, using archive filename and its password.

SUBSOURCESIZE:

If the archive is multivolume, SUBSOURCESIZE returns the size of a partition contained in the archive. Arguments for this command: archive filename, password and number (0-based).

SUBSOURCEDISK:

If the archive is multivolume, SUBSOURCEDISK returns the partition source disk (0-based) contained in the archive. Arguments for this command: archive filename, password and number (0-based).

SUBSOURCESTART:

If the archive is multivolume, SUBSOURCESTART returns the partition start sector contained in the archive. Arguments for this command: archive filename, password and number (0-based).

SUBSOURCEEXTENDED:

If the archive is multivolume, SUBSOURCEEXTENDED returns ‘true’ if the archive under consideration contains the extended partition. Arguments for this command: archive filename, password and number (0-based).

CHARTOCODE:

Returns ASCII code of the string first character.

FILESIZE:

Returns size of the specified filename.

FILEEXIST:

Returns ‘true’ if the specified file exists.

FILEISDIR:

Returns ‘true’ if the specified file is directory.

FILEDELETE:

Deletes the specified file.

FILEMAKEDIR:

Creates the specified directory.

FILEDELETEDIR:

Deletes the specified directory.

FILERENAME:

Renames the first specified file to the second specified file.

FILECOPY:

Copies the first specified file to the second specified file.

FILEMERGE:

Attaches the second file to the end of the first.

ESTIMATION:

Calculates the archive estimation size. First parameter: 1 – bad estimation, 2 – fast estimation, 3 – good estimation, 4 – best estimation. Second parameter – value name containing the result of operation.

NOWTIME:

Returns the quantity of seconds from 1 January 1970, 00:00:00.

STRINGDAYOFWEEK:

Returns day of week string representation (Sunday, …, Saturday) of the specified parameter. Parameter – quantity of seconds from 1 January 1970, 00:00:00.

STRINGMONTH:

Returns month string representation (January, …, December) of the specified parameter. Parameter – quantity of seconds from 1 January 1970, 00:00:00.

STRINGTIME:

Returns string representation of the specified parameter according to the following form: “Sun Jan 4 15:39:14 2004”. Parameter – quantity of seconds from 1 January 1970, 00:00:00.

SUBSTRING:

Extracts substring from the specified string. Parameters: 1) string, from which to extract, 2) start symbol, from which to extract (0-based), 2) maximum length of the extracted substring.

CODETOCHAR:

Converts ASCII code to character and returns the string containing this character.

DAYOFMONTH:

Returns day of month of the specified parameter (1…31). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

HOUR:

Return hour of the specified parameter (0…23). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

DAYOFYEAR:

Returns day of year of the specified parameter (0…365). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

MONTH:

Returns month of the specified parameter (0…11). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

MINUTE:

Returns minute of the specified parameter (0…59). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

SECOND:

Returns second of the specified parameter (0…59). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

DAYOFWEEK:

Returns day of week of the specified parameter (0 – for Sunday, …, 6 – for Saturday). Parameter – quantity of seconds from 1 January 1970, 00:00:00.

YEAR:

Returns year of the specified parameter. Parameter – quantity of seconds from 1 January 1970, 00:00:00.

DEFRAGMENT MFT:

Defragments MFT of NTFS partition.

DEFRAGMENT PARTITION:

Defragments partition.

SKIP SWAP:

Skips defragmenting swap files.

SORT TIME ASCENDING:

Sorts files by time while defragmenting in ascending order.

SORT TIME ASIS:

Does not sort files by time. Default value.

SORT TIME DESCENDING:

Sorts files by time while defragmenting in descending order.

SORT DIRECTORIES FIRST:

Places directories while defragmenting first. Same as SORT FILES LAST.

SORT DIRECTORIES ASIS:

Does not sort directories and files while defragmenting. Same as SORT FILES ASIS. Default value.

SORT DIRECTORIES LAST:

Places directories while defragmenting last. Same as SORT FILES FIRST.

SORT FILES FIRST:

Places files while defragmenting first. Same as SORT DIRECTORIES LAST.

SORT FILES ASIS:

Does not sort files and directories while defragmenting. Same as SORT DIRECTORIES ASIS. Default value.

SORT FILES LAST:

Places files while defragmenting last. Same as SORT DIRECTORIES FIRST.

SORT LARGEST FIRST:

Places the largest files while defragmenting first. Same as SORT SMALLEST LAST.

SORT LARGEST ASIS:

Does not sort files by size while defragmenting. Same as SORT SMALLEST ASIS. Default value.

SORT LARGEST LAST:

Places the largest files while defragmenting last. Same as SORT SMALLEST FIRST.

SORT SMALLEST FIRST:

Places the smallest files while defragmenting first. Same as SORT LARGEST LAST.

SORT SMALLEST ASIS:

Does not sort files by size while defragmenting. Same as SORT LARGEST ASIS. Default value.

SORT SMALLEST LAST:

Places the smallest files while defragmenting last. Same as SORT LARGEST FIRST.

HOTBACKUP:

Changes the HotBackup options.

OPTIONAL:

Optionally uses HotBackup.

ALWAYS:

Always uses HotBackup.

LOCKIMPOSSIBLE:

Uses HotBackup when lock is impossible.

NEVER:

Never uses HotBackup.

TEMPDRIVE:

Partition for the temporary HotBackup data.

OS:

Returns the current operating system.

DOS, WIN95, OSR2, WIN98, WINME, WINNT, WIN2K, WINXP, LINUX, OS2, BEOS, BLUESCREEN:

Constants for identifying operating systems.

DO, WHILE:

Executes cycles body while clause is ‘true’.

PARAMETERS:

Beginning of parameters for the file execution.

ENDPARAMETERS:

End of parameters for the file execution.

USERSTRING:

Asks string from the user and returns it.

STRINGSEQUAL:

Returns ‘true’ if two strings are equal case sensitive.

STRINGSNOTEQUAL:

Returns ‘true’ if two strings are not equal case sensitive.

STRINGSCASEEQUAL:

Returns ‘true’ if two strings are equal case insensitive.

STRINGSCASENOTEQUAL:

Returns ‘true’ if two strings are not equal case insensitive.

PUSHNUM:

Pushes number to stack.

PUSHSTR:

Pushes string to stack.

POPNUM:

Pops number from stack. If there is no number in the stack, returns 0.

POPSTR:

Pops string from stack. If there is no string in the stack, returns “”.

DIRCONTENTS:

Returns quantity of items (subdirectories and files) in the directory excluding ‘.’ and ‘..’. Parameter: directory name.

FILECREATETIME:

Returns quantity of seconds from 1 January 1970, 00:00:00 till the file creation time

FILEMODIFYTIME:

Returns quantity of seconds from 1 January 1970, 00:00:00 till the file last modify time

FILEACCESSTIME:

Returns quantity of seconds from 1 January 1970, 00:00:00 till the file last access time

DIRELEMENT:

Returns name of directory’s item. Parameters: directory name and number of item.

XFIND:

Recursively finds files using searching criteria. If file or directory were found, block of commands between BEGIN and ENDXFIND would process.

BEGIN:

Beginning of commands block, which would be executed for every founded file or directory using XFIND command.

ENDXFIND:

Ending of commands block, which would be executed for every founded file or directory using XFIND command.

RESULT:

Specifies name of the string parameter containing name of the founded file or directory on each XFIND iteration.

RECURSIVE:

Turns on/off the recursive search in XFIND command.

DIRECTORIES FIRST:

Processes directories before files in the recursive search in XFIND command.

DIRECTORIES LAST:

Processes directories after files in the recursive search in XFIND command.

FILES FIRST:

Same as DIRECTORIES LAST.

FILES LAST:

Same as DIRECTORIES FIRST.

RECURSIVE LEVEL:

Specifies the level for the recursive search. Use 0 for unlimited recursive level.

DIRECTORIES:

Turns on/off to report directories as a search result.

FILES:

Turns on/off to report files as a search result.

MASK:

Specifies mask of file or directory for the search criteria.

START:

Specifies the search start point.

SILENT:

Disables screen output, except PRINT command (output file is kept intact).

SEARCH:

Specifies the search parameters.

DEEP:

Searches files and directories by using the deep algorithm.

WIDE:

Searches files and directories by using the wide algorithm.

PSR:

Specifies beginning of a PSR command.

BM:

Specifies beginning of a BM command.

PSR_SCENARIO_TYPE:

Specifies type of a PSR scenario.

PSR_SCENARIO_BOOT:

Specifies a PSR BOOT scenario.

PSR_SCENARIO_REBOOT:

Specifies a PSR REBOOT scenario.

PSR_OS_TYPE:

Specifies an operatiing system used in the PSR mechanism.

PSR_OS_DOS:

Specifies a PTS-DOS operating system.

PSR_OS_LINUX:

Specifies a Linux operating system.

PSR_OS_ALL:

Specifies both PTS-DOS and Linux operating systems.

PSR_OS_WINPE:

Specifies a Windows PE operating system.

PSR_SOURCE_DIR:

Specifies a directory where PSR installation files are kept.

PSR_SOURCE_ISO:

Specifies an ISO image with PSR installation files.

PSR_INSTALL_DIR:

Specifies a directory to install PSR.

TIMEOUT:

Specifies a time period in milliseconds to see the PSR message.

KEY:

Specifies a key to start the PSR boot.

KEY_A:

Specifies “A” on keyboard.

KEY_Z:

Specifies “Z” on keyboard.

KEY_0:

Specifies “0” on keyboard.

KEY_9:

Specifies “9” on keyboard.

KEY_F1:

Specifies “F1” on keyboard.

KEY_F12:

Specifies “F12” on keyboard.

KEY_ESC:

Specifies “Esc” on keyboard.

KEY_MINUS:

Specifies “-” or “_” on keyboard.

KEY_EQUALS:

Specifies “=” or “+” on keyboard.

KEY_BACKSPACE:

Specifies “Backspace” on keyboard.

KEY_TAB:

Specifies “Tab” on keyboard.

KEY_OPENBRACE:

Specifies “[” or “{” on keyboard.

KEY_CLOSEBRACE:

Specifies “]” or “}” on keyboard.

KEY_ENTER:

Specifies “Enter” on keyboard.

KEY_COLON:

Specifies “;” or “:” on keyboard.

KEY_QUOTE:

Specifies “’” or “”” on keyboard.

KEY_BACKSLASH:

Specifies “\” or “|” on keyboard.

KEY_COMMA:

Specifies “,” or “<” on keyboard.

KEY_DOT:

Specifies “.” or “>” on keyboard.

KEY_SLASH:

Specifies “/” or “?” on keyboard.

KEY_SPACE:

Specifies “SpaceBar” on keyboard.

KEY_HOME:

Specifies “Home” on keyboard.

KEY_END:

Specifies “End” on keyboard.

KEY_PGUP:

Specifies “PgUp” on keyboard.

KEY_PGDN:

Specifies “PgDn” on keyboard.

KEY_INSERT:

Specifies “Ins” on keyboard.

KEY_DELETE:

Specifies “Del” on keyboard.

KEY_UP:

Specifies “UpArrow” on keyboard.

KEY_DOWN:

Specifies “DownArrow” on keyboard.

KEY_LEFT:

Specifies “LeftArrow” on keyboard.

KEY_RIGHT:

Specifies “RightArrow” on keyboard.

KEY_ASTERISK_PAD:

Specifies “Grey*” on keyboard.

KEY_MINUS_PAD:

Specifies “Grey-” on keyboard.

KEY_PLUS_PAD:

Specifies “Grey+” on keyboard.

KEY_LSHIFT:

Specifies “Left Shift” on keyboard.

KEY_RSHIFT:

Specifies “Right Shift” on keyboard.

KEY_LCONTROL:

Specifies “Left Ctrl” on keyboard.

KEY_RCONTROL:

Specifies “Right Ctrl” on keyboard.

KEY_LALT:

Specifies “Left Alt” on keyboard.

KEY_RALT:

Specifies “Right Alt” on keyboard.

KEY_SCRLOCK:

Specifies “ScrollLock” on keyboard.

KEY_NUMLOCK:

Specifies “NumLock” on keyboard.

KEY_CAPSLOCK:

Specifies “CapsLock” on keyboard.

MESSAGE:

Specifies a PSR message.

INSTALL:

Install something.

UNINSTALL:

Uninstall something.

OLDMBR:

Enables to use an old mbr in the BM mechanism.

# Time Zone Codes

Below are listed all the Time Zones codes.

0 - “(GMT-12:00) Eniwetok, Kwajalein"

1 - "(GMT-11:00) Midway Island, Samoa"

2 - "(GMT-10:00) Hawaii"

3 - "(GMT-09:00) Alaska"

4 - "(GMT-08:00) Pacific Time (US & Canada); Tijuana"

5 - "(GMT-07:00) Arizona"

6 - "(GMT-07:00) Mountain Time (US & Canada)"

7 - "(GMT-06:00) Central Time (US & Canada)"

8 - "(GMT-06:00) Mexico City, Tegucigalpa"

9 - "(GMT-06:00) Saskatchewan"

10 - "(GMT-05:00) Bogota, Lima"

11 - "(GMT-05:00) Eastern Time (US & Canada)"

12 - "(GMT-05:00) Indiana (East)"

13 - "(GMT-04:00) Atlantic Time (Canada)"

14 - "(GMT-04:00) Caracas, La Paz"

15 - "(GMT-03:30) Newfoundland"
16 - "(GMT-03:00) Brasilia"

17 - "(GMT-03:00) Buenos Aires, Georgetown"

18 - "(GMT-02:00) Mid-Atlantic"

19 - "(GMT-01:00) Azores, Cape Verde Is."

20 - "(GMT) Greenwich Mean Time; Dublin, Edinburgh, London, Lisbon"

21 - "(GMT) Monrovia, Casablanca"

22 - "(GMT+01:00) Berlin, Stockholm, Rome, Bern, Brussels, Vienna"

23 - "(GMT+01:00) Paris, Madrid, Amsterdam"

24 - "(GMT+01:00) Prague, Warsaw, Budapest"

25 - "(GMT+02:00) Athens, Helsinki, Istanbul"

26 - "(GMT+02:00) Cairo"

27 - "(GMT+02:00) Eastern Europe"

28 - "(GMT+02:00) Harare, Pretoria"

29 - "(GMT+02:00) Israel"

30 - "(GMT+03:00) Baghdad, Kuwait, Nairobi, Riyadh"

31 - "(GMT+03:00) Moscow, St. Petersburg, Kazan, Volgograd"

32 - "(GMT+03:30) Tehran"

33 - "(GMT+04:00) Abu Dhabi, Muscat, Tbilisi"

34 - "(GMT+04:30) Kabul"

35 - "(GMT+05:00) Islamabad, Karachi, Ekaterinburg, Tashkent"

36 - "(GMT+05:30) Bombay, Calcutta, Madras, New Delhi, Colombo"

37 - "(GMT+06:00) Almaty, Dhaka"
38 - "(GMT+07:00) Bangkok, Jakarta, Hanoi"

39 - "(GMT+08:00) Beijing, Chongqing, Urumqi"

40 - "(GMT+08:00) Hong Kong, Perth, Singapore, Taipei"

41 - "(GMT+09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk"

42 - "(GMT+09:30) Adelaide"

43 - "(GMT+09:30) Darwin"

44 - "(GMT+10:00) Brisbane, Melbourne, Sydney"

45 - "(GMT+10:00) Guam, Port Moresby, Vladivostok"

46 - "(GMT+10:00) Hobart"

47 - "(GMT+11:00) Magadan, Solomon Is., New Caledonia"

48 - "(GMT+12:00) Fiji, Kamchatka, Marshall Is."

49 - "(GMT+12:00) Wellington, Auckland"

# Locale Codes

Name | Language number | OEM Codepage
Vietnamese | 0 | 1258
Korean (Johab) | 0 | 1361
Swahili | 0 | 437
Hindi | 1 | 437
Urdu | 2 | 437
English | 3 | 437
Farsi | 0 | 720
Arabic | 1 | 720
Greek | 0 | 737
Classic Lithuanian | 0 | 775
Lithuanian | 1 | 775
Latvian | 2 | 775
Estonian | 3 | 775
Malay | 0 | 850
Faeroese | 1 | 850
Afrikaans | 2 | 850
Basque | 3 | 850
Indonesian | 4 | 850
Swedish | 5 | 850
Portuguese | 6 | 850
Norwegian (Nynorsk) | 7 | 850
Norwegian (Bokmxl) | 8 | 850
Dutch | 9 | 850
Italian | 10 | 850
Icelandic | 11 | 850
French | 12 | 850
Finnish | 13 | 850
Spanish – Modern Sort | 14 | 850
Spanish | 15 | 850
Spanish – Traditional Sort | 16 | 850
English | 17 | 850
German | 18 | 850
Danish | 19 | 850
Catalan | 20 | 850
Slovene | 0 | 852
Albanian | 1 | 852
Slovak | 2 | 852
Serbian (Latin) | 3 | 852
Croatian | 4 | 852
Romanian | 5 | 852
Polish | 6 | 852
Hungarian | 7 | 852
Czech | 8 | 852
Serbian (Cyrillic) | 0 | 855
Turkish | 0 | 857
Hebrew | 0 | 862
Macedonian | 0 | 866
Belarusian | 1 | 866
Ukrainian | 2 | 866
Russian | 3 | 866
Bulgarian | 4 | 866
Thai | 0 | 874
Japanese | 0 | 932
Chinese (Singapore) | 0 | 936
Chinese (Hong Kong) | 1 | 936
Chinese (PRC) | 2 | 936
Korean | 0 | 949
Chinese (Macau) | 0 | 950
Chinese (Taiwan) | 1 | 950

# Error Codes

Below is the list of the possible error codes:

0x00 - operation completed successfully;

0x10001 - partition parameters exceed the disk limits;

0x10002 - crosslinked partitions;

0x10003 - not enough space available (unable to create a partition of the requested size);

0x10004 - no free block is available to create a primary partition;

0x10005 - invalid partition ID;

0x10006 - in the root table only (attempt to perform a primary partition operation on a logical disk);

0x10007 – the extended partition is not found;

0x10008 - failed to create a partition;

0x10009 - an attempt to resize the extended partition out of the available limits;

0x1000A - the extended partition already exists;

0x10010 - FDISK structure is corrupted;

0x10011 - invalid drive specification;

0x10012 - no logical disk defined for this partition;

0x10013 - unknown partition type (unsupported file system);

0x10014 - incorrect partition attributes – incompatible data of partition control blocks;

0x10015 - incorrect cluster size (i.e. 0,>64 or not a degree of 2);

0x10016 - not enough space for a new partition (unable to expand the partition up to the requested size);

0x10017 - new cluster is too small - FAT16 disk contains more than 65525 clusters;

0x10018 - file system error - file localization error (i.e. because of the crosslinked files). Run CHKDSK to fix it;

0x10019 - not enough space in the new partition to place user data (if you try to decrease the partition containing data too much);

0x1001A - not enough memory;

0x1001B - file I/O error. It can occur when the restart data is saved/restored;

0x1001C - partition parameters exceed the available limits;

0x1001D - incorrect restart data – unable to run the restart operation due to the restart data incompatibility;

0x1001E - boot area is too small (i.e. 0 in the ResSect field for FAT16 or less than 32 for FAT32);

0x1001F - root directory size is too small - unable to save all records of the root directory or RootEnts < 16;

0x10020 - bad boot area - disk is inaccessible;

0x10021 - invalid directory structure - directory tree has errors. Run CHKDSK to fix it;

0x10022 - internal error;

0x10023 - failed to create/open file;

0x10024 - not enough space to create an archive file;

0x10025 - invalid archive file;

0x10026 - not for the DEMO-version;

0x10027 - invalid environment type;

0x10028 - bad or missing “dbnet.ini” or “wattcp.cfg” file. Network is inaccessible;

0x10029 - network initialization error. Network is inaccessible;

0x1002A - either Boot Manager or EZ-Drive system is present. Unable to install Boot Manager Lite;

0x1002B - estimated CD image-file size exceeds 640Mb;

0x1002C - invalid volume label (in partition deletion or backup operation);

0x1002D - incompatible disks for multicast;

0x1002E - invalid script parameters;

0x1002F - forbidden operation;

0x10030 - invalid SID changer arguments;

0x10031 - invalid size of the partition image;

0x10032 - direct HDC access to the target partition is denied (for Win only);

0x10033 - disk is too fragmented to apply the size change operation;

0x10034 - attempt to run an operation on an unknown or ‘dead’ host;

0x10035 - DOS client is not found;

0x10036 - invalid password for decryption;

0x10037 - installation error;

0x10038 - trial period expired;

0x10039 - partition is too small for FAT32;

0x1003A - partition is too big for FAT16;

0x1003B - unable to restore disk image as a partition;

0x1003C - unable to restore partition image as a disk;

0x1003D - UNC filename can be created on NT systems only;

0x1003E - unable to create disk/partition backup on the same disk/partition;

0x1003F - file/directory size is 4 GB;

0x10040 - NTFS decompression error;

0x10041 - invalid codepage file;

0x10042 - incompatible version components;

0x10043 - wipe mask differences found;

0x10044 - unsupported NTFS version;

0x10045 - there are at least one encrypted file on this partition. Decrypt it first and run again;

0x10048 - impossible to defragment due to bad blocks;

0x10049 - 64 bit clusters are not supported;

0x10050 - disk is too big;

0x10060 – failed to read the dynamic disk info;

0x10061 – failed to mount partition;

0x10062 - failed to umount partition;

0x10090 - disk I/O error;

0x10091 - operation is cancelled by the user;

0x10093 - invalid operation code;

0x10094 - DPMI error;

0x10095 - no scripts in the DOS version;

0x10096 - Tape i/o error;

0x10097 - drive not ready error;

0x10098 - Win client is rebooting into DOS (Server has to wait);

0x10099 - unable to block the target partition for Win DB – operation is allowed in DOS mode only (using the PIF);

0x1009A - unable to block the target partition for Win DB – operation is allowed in DOS mode only (using the FBW);

0x1009B - for Win DB (source): disk access sharing violation (try to restart in Win-mode or use PIF DOS-mode);

0x1009C - for Win DB (source): disk access sharing violation (try to restart in Win-mode or use FBW DOS-mode);

0x1009D - switch script mode (DOS DB only);

0x1009E - direct HDC-access to the source partition is denied (for WIN only);

0x1009F - for Win DB: blocking target partition; the operation is applicable in DOS mode only (using PIF);

0x100A0 - for Win DB: blocking target partition; the operation is applicable in DOS mode only (using FBW);

0x100A1 - for Win DB (source): disk access sharing violation. Operation is impossible;

0x100A2 - (internal) incompatible disks for copying;

0x11000 - stub manager already exists;

0x11001 - stub library has not been initialized;

0x11002 - previous virtual stub manager exists;

0x11003 - previous virtual stub manager does not exist;

0x11004 - next Stub virtual manager exists;

0x11005 - next Stub virtual manager does not exist;

0x11006 - bad type of object;

0x11007 - operation is not associated with the StubMan specified;

0x11008 - disk is missing;

0x11009 - disk is not valid;

0x1100A - invalid function parameter;

0x1100B - system reboot is required to complete the operation;

0x1100C - search is completed;

0x1100D - unable to restore the primary partition inside the extended one;

0x1100E - archive cannot be saved;

0x1100F - bad computer specified;

0x11010 - device I/O error;

0x11011 - service exception;

0x11012 - invalid buffer;

0x11013 - busy;

0x11014 - no media;

0x11015 - illegal server state;

0x11016 - partial file or operation;

0x11017 - file too long;

0x11018 - undefined error;

0x11019 - the archive of Windows is not found! You should backup the system before burning;

0x1101a - parameter memory is too small;

0x1101b - can't burn locked partition under Windows 9x;

0x1101c – the following CD-ROM does not exist;

0x1101d – unable to eject CD-ROM;

0x11100 - unable to open UIM-component;

0x11101 - unknown image-format or failed to open the specified file;

0x11102 - UIM failed to complete the specified operation;

0x11201 - the operation "Backup" is not available in the trial/demo version;

0x11202 - the operation "Check File System" is not available in the trial/demo version;

0x11203 - the operation "Merge archives" is not available in the trial/demo version;

0x11204 - the operation "Disk copy" is not available in the trial/demo version;

0x11205 - the operation "Disk clear" is not available in the trial/demo version;

0x11206 - the operation "Create partition" is not available in the trial/demo version;

0x11207 - the operation "Delete partition" is not available in the trial/demo version;

0x11208 - the operation "Set flags" is not available in the trial/demo version;

0x11209 - the operation "Format partition" is not available in the trial/demo version;

0x1120a - the operation "Modify partition" is not available in the trial/demo version;

0x1120b - the operation "Resize partition" is not available in the trial/demo version;

0x1120c - the operation "Copy partition" is not available in the trial/demo version;

0x1120d - the operation "Mount partition" is not available in the trial/demo version;

0x1120e - the operation "Undelete partition" is not available in the trial/demo version;

0x1120f - the operation "Convert File System" is not available in the trial/demo version;

0x11210 - the operation "Change cluster size" is not available in the trial/demo version;

0x11211 - the operation "Change root size" is not available in the trial/demo version;

0x11212 - the operation "Change boot size" is not available in the trial/demo version;

0x11213 - the operation "Make partition primary" is not available in the trial/demo version;

0x11214 - the operation "Make partition logical" is not available in the trial/demo version;

0x11215 - the operation "Set label" is not available in the trial/demo version;

0x11216 - the operation "Wipe" is not available in the trial/demo version;

0x11217 - the operation "Set partition serial number" is not available in the trial/demo version;

0x11218 - the operation "Check File System" is not available in the trial/demo version;

0x11219 - the operation "Surface test" is not available in the trial/demo version;

0x1121a - the operation "Set partition ID" is not available in the trial/demo version;

0x1121b - the operation "Change SID" is not available in the trial/demo version;

0x1121c - the operation "Set primary slots" is not available in the trial/demo version;

0x1121d - the operation "Restore" is not available in the trial/demo version;

0x1121e - the operation "Move partition" is not available in the trial/demo version;

0x11400 - different cluster size;

0x11401 - unable to merge due to different NTFS parameters;

0x11402 - different versions;

0x12000 - failed to modify the protected partition;

0x12001 - no restart.log found;

0x12002 - operation is invalid for this object.

# Command Line Options

-h, --help - shows usage screen and exits.

-v, --version - shows version number and exits.

--verbose - verbose output. (Default: disable).

-s, --silent - silent output. (Default: disable).

-x, --expert - expert mode (use with caution).

(Default: disable).

-n, --nochs - don't use CHS geometry. (Default: disable).

-e, --ebios - use EBIOS. (Default: disable).

-p:<parameter>=<value> - specifies parameter for script.

The value must be in the decimal format.

-s:<parameter>="<value>" - specifies string parameter for script.

-Wno - disables all warnings. (Default: enable).

-errnum <number> - specifies number of errors to display.

-o <output file> - specifies output file. (Default: psi.out).

To turn off writing output file, use: -o none

--input "<script>" - specifies script from the command line.

<input file> - specifies the input file. (Default: psi.in).

# Simple Example

settings

oemcodepage 850 // Setting codepage

langnumber 17 // Setting language number

endsettings

confirm off // Turn off questions

print "Save partition" // Print message to screen

print "" // Print new line

select disk 1

select partition 1

img="ufsd://(select)/HDD0_part_1.pbf" // Select stored filename

select partition 0

select partition 2 // Select stored partition

options

cmp=9

pwd="HDD0_part2"

label="Test Archive"

// Define some options for store

store // Virtual store

call something_do // Call procedure

print "Applying" // Print message

print ""

apply all // Apply all operations

call something_do // Call procedure

goto out // Go to "out" label

something_do: // Procedure

if (errorcode(1) != 0) // Compare last error with success

then // If there was an error

print "Some error occured: " // Print message

strerror(errorcode(1)) // Print error description

print ""

print "Exiting" // Print message

print ""

exit(errorcode(1)) // Exit from the script

endif

endcall // End of the procedure

out: // Label "out"

print "*********************************OK************************" print ""

exit(0) // Exit from the script