MexScript: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Multimedia Mike
(outline for statement reference)
imported>Multimedia Mike
(outline for statement reference)
(No difference)

Revision as of 06:50, 31 December 2005

BMS stands for Binary MultiEx Scripts. It is the format used by MultiEx Commander to take apart an impressive array of GRAFs. The file format consists of a text file which a series of instructions to be run through an interpreter. The interpreter uses the instructions to traverse through a GRAF file and search for key data such as names, offsets, and sizes of various constituent files.

Basics

Each line of a BMS script contains a single statement. The statement can be broken down into a series of tokens.

Questions: Are all statements constrained to one line? or can they span multiple lines? If the former, then the semi-colon at the end of each line seems superfluous. Or can there be comments after the semi-colon?

Statements

The first token on a statement line indicates what operation that line is to perform. These are the known statement types:

  • Do
  • FindLoc
  • For
  • Get
  • GetDString
  • GoTo
  • IDString
  • ImpType
  • Log
  • Math
  • Next
  • SavePos
  • Set
  • While

Comments

Does BMS make provision for comments?

Case Sensitivity

Is BMS case sensitive? Does it have to be written as IDString, or will idstring or iDstrINg both work?

Variables

BMS scripts can declare variables and perform basic arithmetic operations on them and control operations with them.

Control Structures

BMS scripts are executed in order from top to bottom unless an alternate control structure is encountered. These control structures include Do..While and For..Next loops.

Question: Is there any equivalent to the 'while {}' C structure or WHILE..WEND structure in BASIC? IOW, a pre-evaluation control structure instead of just the post-evaluation version?

Do..While

The structure of the Do..While loop is as follows:

Do ;
statement 1 ;
--
statement n ;
While condition ; 

Condition compares 2 values, e.g., a variable and a constant, and branches execution back to statement 1 if the condition is evaluated to be true. The available comparison operators are:

< - less than
> - greater than
<> - not equal o
What are all the operators?

For..Next

The structure of the For..Next loop is as follows:

For I = 1 to M;
statement 1 ;
--
statement n ;
Next I ;

This example performs the sequence of statement between the the For and Next statements for M iterations.

Statement Reference

Do

FindLoc

For

Get

GetDString

GoTo

IDString

ImpType

Log

Math

Next

SavePos

Set

While