2013-01-31 21:15:01 +00:00
|
|
|
.\" qcvm mdoc manpage
|
|
|
|
.Dd January 31, 2013
|
|
|
|
.Dt QCVM 1 PRM
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm qcvm
|
|
|
|
.Nd A standalone QuakeC VM binary executor
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Nm qcvm
|
|
|
|
.Op Cm options
|
|
|
|
.Op Cm parameters
|
|
|
|
.Ar program-file
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
.Nm qcvm
|
|
|
|
is an executor for QuakeC VM binary files created using a QC
|
2012-12-18 15:03:29 +00:00
|
|
|
compiler such as gmqcc(1) or fteqcc. It provides a small set of
|
2013-01-31 21:15:01 +00:00
|
|
|
builtin functions, and by default executes the
|
|
|
|
.Fn main
|
|
|
|
function if there is one. Some options useful for debugging are
|
|
|
|
available as well.
|
|
|
|
.Sh OPTIONS
|
2012-12-18 15:03:29 +00:00
|
|
|
There are 2 types of options. Options for the executor, and parameter
|
|
|
|
options used to add parameters which are passed to the main function
|
|
|
|
on execution.
|
2013-01-31 21:15:01 +00:00
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It Fl h , Fl -help
|
2012-12-18 15:03:29 +00:00
|
|
|
Show a usage message and exit.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl trace
|
2012-12-18 15:03:29 +00:00
|
|
|
Trace the execution. Each instruction will be printed to stdout before
|
|
|
|
executing it.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl profile
|
2012-12-18 15:03:29 +00:00
|
|
|
Perform some profiling. This is currently not really implemented, the
|
|
|
|
option is available nonetheless.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl info
|
2012-12-18 15:03:29 +00:00
|
|
|
Print information from the program's header instead of executing.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl disasm
|
2012-12-18 15:03:29 +00:00
|
|
|
Disassemble the program by function instead of executing.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl disasm-func Ar function
|
2012-12-23 19:45:43 +00:00
|
|
|
Search for and disassemble the given function.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl printdefs
|
2012-12-18 15:03:29 +00:00
|
|
|
List all entries from the program's defs-section. Effectively
|
|
|
|
listing all the global variables of the program.
|
|
|
|
This option disables execution.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl printfields
|
2012-12-18 15:03:29 +00:00
|
|
|
List all entries from the program's fields-section. Listing all
|
|
|
|
entity-fields declared in the program.
|
|
|
|
This option disables execution.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl printfuns
|
2012-12-18 15:03:29 +00:00
|
|
|
List functions and some information about their parameters.
|
2012-12-26 09:26:04 +00:00
|
|
|
This option disables execution. With a verbosity level of 1, builtin
|
|
|
|
numbers are printed. With a verbosity of 2, the function's sizes are
|
|
|
|
printed as well. This takes a little longer since the size is found by
|
2013-01-31 21:15:01 +00:00
|
|
|
searching for a
|
|
|
|
.Ql DONE
|
|
|
|
instruction in the code.
|
|
|
|
.It Fl v
|
2012-12-26 09:26:04 +00:00
|
|
|
Increase verbosity level, can be used multiple times.
|
2013-01-31 21:15:01 +00:00
|
|
|
.It Fl vector Ar 'x y z'
|
|
|
|
Append a vector parameter to be passed to
|
|
|
|
.Fn main Ns .
|
|
|
|
.It Fl float Ar number
|
|
|
|
Append a float parameter to be passed to
|
|
|
|
.Fn main Ns .
|
|
|
|
.It Fl string Ar 'text'
|
|
|
|
Append a string parameter to be passed to
|
|
|
|
.Fn main Ns .
|
|
|
|
.El
|
|
|
|
.Sh BUILTINS
|
2012-12-18 15:03:29 +00:00
|
|
|
The following builtin functions are available:
|
2013-01-31 21:15:01 +00:00
|
|
|
.Bl -ohang
|
|
|
|
.It Li 1) void print(string...) = #1;
|
|
|
|
.D1 Print the passed strings to stdout. At most 8 strings are allowed.
|
|
|
|
.It Li 2) string ftos(float) = #2;
|
|
|
|
.D1 Convert a float to a string.
|
|
|
|
.It Li 3) entity spawn() = #3;
|
|
|
|
.D1 Spawn an entity.
|
|
|
|
.It Li 4) void remove(entity) = #4;
|
|
|
|
.D1 Remove an entity.
|
|
|
|
.It Li 5) string vtos(vector) = #5;
|
|
|
|
.D1 Convert a vector to a string.
|
|
|
|
.It Li 6) void error(string...) = #6;
|
|
|
|
.D1 Print at most 8 strings to stdout and then exit with an error.
|
|
|
|
.It Li 7) float vlen(vector) = #7;
|
|
|
|
.D1 Get the length of a vector.
|
|
|
|
.It Li 8) string etos(entity) = #8;
|
|
|
|
.D1 Get the entity ID as string.
|
|
|
|
.It Li 9) float stof(string) = #9;
|
|
|
|
.D1 Convert a string to a float.
|
|
|
|
.It Li 10) string strcat(string, string) = #10;
|
|
|
|
.D1 Concatenate two strings, returning a tempstring.
|
|
|
|
.It Li 11) float strcmp(string, string) = #11;
|
|
|
|
.Li 12) float strncmp(string, string, float) = #11;
|
|
|
|
.D1 Compare two strings. Returns the same as the corresponding C functions.
|
|
|
|
.It Li 12) vector normalize(vector) = #12;
|
|
|
|
.D1 Normalize a vector so its length is 1.
|
|
|
|
.It Li 13) float sqrt(float) = #13;
|
|
|
|
.D1 Get a value's square root.
|
|
|
|
.El
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr gmqcc 1
|
|
|
|
.Sh AUTHOR
|
|
|
|
See <http://graphitemaster.github.com/gmqcc>.
|
|
|
|
.Sh BUGS
|
2012-12-18 15:03:29 +00:00
|
|
|
Please report bugs on <http://github.com/graphitemaster/gmqcc/issues>,
|
|
|
|
or see <http://graphitemaster.github.com/gmqcc> on how to contact us.
|