Supported platforms:
Supported assemblers: (more can be added on demand)
FASMLIB offers you following:
File I/O:
FASMLIB contains functions wrapping basic file I/O:
open,
create,
close,
read,
write,
seek.
Functions refer file with file handles, and use 32bit file position pointers. These
functions are limited to files up to 2GB. Because of portability, functions don't allow
changing file access flags on linux. Directory functions are not supported yet.
Memory Management:
FASMLIB offers you basic heap memory management:
alloc,
realloc,
free,
size.
If heap management is not provided directly by OS, FASMLIB provides it's own
heap manager. Additionally, FASMLIB contains memory manipulation functions:
copy (supports overlapped copy),
fill,
find,
compare
String Library:
FASMLIB contains library for working with static strings.
It has strong buffer overflow checking.
It allows limited working with non-zero terminated constant-length strings
(eg. section name in PE-file header).
Provided functions are:
copy,
concatenate,
insert,
case conversion (ASCII only, no locale support),
get length,
find substring.
get substring,
compare (both case in/sensitive, ASCII case sensitivity only),
Conversions:
FASMLIB contains functions for numeric conversions. Currently it contains
function to convert signed or unsigned byte, word or dword value to/from decimal or hexadecimal
string. Padding is also supported.
Streams:
FASMLIB defines it's own interface for stream. Any function that operates
on stream can then work with anything that can be represented as stream.
Currently there are NUL, console, file and memory streams supported.
Text:
FASMLIB provides set of procedures that provide text functions on streams.
These include:
write string,
write number (decimal or hexadecimal),
formatted write (printf-like),
read number (decimal or hexadecimal),
read line,
read while/until character (reading terminated by character (not) from given character set),
plus few more.