.\" Process with groff -man -Tascii file.3 .TH QCVM 1 2012-18-12 "" "gmqcc Manual" .SH NAME qcvm \- A standalone QuakeC VM binary executor. .SH SYNOPSIS .B qcvm [\fIOPTIONS\fR] [\fIPARAMS\fR] [\fIfile\fR] .SH DESCRIPTION qcvm is an executor for QuakeC VM binary files created using a QC compiler such as gmqcc(1) or fteqcc. It provides a small set of builtin functions, and by default executes the \fImain\fR function if there is one. Some options useful for debugging are available as well. .SH OPTIONS 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. .TP .B "-h, --help" Show a usage message and exit. .TP .B "-trace" Trace the execution. Each instruction will be printed to stdout before executing it. .TP .B "-profile" Perform some profiling. This is currently not really implemented, the option is available nonetheless. .TP .B "-info" Print information from the program's header instead of executing. .TP .B "-disasm" Disassemble the program by function instead of executing. .TP .BI "-disasm-func" function Search for and disassemble the given function. .TP .B "-printdefs" List all entries from the program's defs-section. Effectively listing all the global variables of the program. This option disables execution. .TP .B "-printfields" List all entries from the program's fields-section. Listing all entity-fields declared in the program. This option disables execution. .TP .B "-printfuns" List functions and some information about their parameters. 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 searching for a DONE instruction in the code. .TP .B "-v" Increase verbosity level, can be used multiple times. .TP .BI "-vector """ "x y z" """" Append a vector parameter to be passed to \fImain\fR. .TP .BI "-float " number Append a float parameter to be passed to \fImain\fR. .TP .BI "-string """ "text" """" Append a string parameter to be passed to \fImain\fR. .SH BUILTINS The following builtin functions are available: .fi .RI "1) " void " print(" string... ") = " "#1" ; .in +8 Print the passed strings to stdout. At most 8 strings are allowed. .in .RI "2) " string " ftos(" float ") = " "#2" ; .in +8 Convert a float to a string. .in .RI "3) " entity " spawn() = " "#3" ; .in +8 Spawn an entity. .in .RI "4) " void " remove(" entity ") = " "#4" ; .in +8 Remove an entity. .in .RI "5) " string " vtos(" vector ") = " "#5" ; .in +8 Convert a vector to a string. .in .RI "6) " void " error(" string... ") = " "#6" ; .in +8 Print at most 8 strings to stdout and then exit with an error. .in .RI "7) " float " vlen(" vector ") = " "#7" ; .in +8 Get the length of a vector. .in .RI "8) " string " etos(" entity ") = " "#8" ; .in +8 Get the entity ID as string. .in .RI "9) " float " stof(" string ") = " "#9" ; .in +8 Convert a string to a float. .in .RI "10) " string " strcat(" string ", " string ") = " "#10" ; .in +8 Concatenate two strings, returning a tempstring. .in .RI "11) " float " strcmp (" string ", " string ") = " "#11" ; .fi .RI " " float " strncmp(" string ", " string ", " float ") = " "#11" ; .in +8 Compare two strings. Returns the same as the corresponding C functions. .in .SH BUGS Please report bugs on , or see on how to contact us. .SH SEE ALSO .IR gmqcc (1) .SH AUTHOR See .