79 lines
2.6 KiB
Markdown
79 lines
2.6 KiB
Markdown
# FasmOnDelphi functions description
|
|
|
|
### function FasmVersion:TFasmVersion;
|
|
Return assembler version in TFasmVersion structure.
|
|
|
|
### function FasmAssemble(const Source:AnsiString;cbMemorySize:cardinal=1024*1024;nPassesLimit:DWORD=100):TFasmResult;
|
|
Compiles the code.
|
|
|
|
Source - contains source code to compile.
|
|
|
|
cbMemorySize - amount of memory that compiler can use (may be rounded to kilobytes).
|
|
|
|
nPassesLimit - the maximum number of passes that the compiler can use.
|
|
|
|
Returns structure TFasmResult with information of error or compiled code.
|
|
|
|
### function FasmAssembleToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal=1024*1024*8;nPassesLimit:DWORD=100):TFasmResult;
|
|
Like FasmAssemble, but output will be in file provided in OutFile.
|
|
|
|
### function FasmAssembleFile(const Source:AnsiString;cbMemorySize:cardinal=1024*1024*8;nPassesLimit:DWORD=100):TFasmResult;
|
|
Like FasmAssemble, but input will be used from file provided in Source.
|
|
|
|
### function FasmAssembleFileToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal=1024*1024*8;nPassesLimit:DWORD=100):TFasmResult;
|
|
Like FasmAssembleFile, but output will be in file provided in OutFile.
|
|
|
|
### procedure OpenFASM(Location:string=FASMPath;AsDll:boolean=false);
|
|
Initializes the Flat Assembler.
|
|
|
|
Location - path to fasm.exe/fasm.dll (only Win32).
|
|
|
|
AsDll - set to True if using DLL version of compiler, else False (non Win32 targets ignored).
|
|
|
|
### procedure SetFasmTemp(Path:string);
|
|
Selects a directory for temp files.
|
|
|
|
**********************************************************
|
|
# Description of FasmOnDelphi types:
|
|
|
|
TFasmError=FASMERR_ASSERTION_FAILED ..FASM_ERROR;
|
|
|
|
Type for Fasm error codes.
|
|
|
|
TFasmVersion=packed record
|
|
V1,V2:word;
|
|
end;
|
|
|
|
Type for provide the assembler version.
|
|
|
|
V1 - the first number of the version (to the point).
|
|
|
|
V2 - the second version number (after the point).
|
|
|
|
TFasmResult=record
|
|
OutData:Pointer;
|
|
sb:integer;
|
|
Error:TFasmError;
|
|
OutStr:string;
|
|
Lines:array of TFasmLine;
|
|
end;
|
|
|
|
OutData - pointer to the result of assembling (nil on error or FasmAssembleToFile/FasmAssembleFileToFile).
|
|
|
|
sb - the size of the result of assembly (0 on error or FasmAssembleToFile/FasmAssembleFileToFile).
|
|
|
|
Error - error code (FASM_OK if everything went well).
|
|
|
|
OutStr - the string that compiler produces.
|
|
|
|
Lines - detailed information about errors (for more details see TFasmLine).
|
|
|
|
TFasmLine=record
|
|
Line:UInt32;
|
|
&File:string;
|
|
end;
|
|
|
|
Line - number of line with error.
|
|
|
|
File - name of file with error ('' or a file from the temp folder implies that this is the code passed to FasmAssembleFile or FasmAssembleFileToFile).
|