FreshLib is an assembly library aimed to ease the development of rapid assembly language applications, freely portable between different platforms, such as Win32 or Linux.
The library consists of two layers: one that is OS dependent and a second one that is OS independent. The OS dependent layer is very small, in order to help porting it for different OS. This layer only makes interface to the core OS functions, such as memory allocations, file access, drawing functions, simple window management etc.
The OS independent layer is responsible for the main application functionality allowing creation of different kind of windows and controls, user interaction with the program and interaction between particular windows and other GUI elements.
FreshLib is mainly intended for developing GUI applications, as they are the most challenging to be ported across different platforms. FreshLib is also created with visual programming in mind, so it contains a flexible, event driven and OS independent template engine allowing visual creation of application user interfaces.
FreshLib is in early development stage and probably will be changed many times in order to reach their objectives: to be small, fast and easy to use.
The main intention is to keep the bloat off the library, but containing all necessary accessories for comfortable programming of a very wide range of applications.
The architecture of FreshLib is open and it can be freely expanded with other libraries without increasing the size of applications. In other words, only those parts of the library that are effectively used will be compiled on the final executable.
About this manual
This manual is a "work in progress". Any part of it can be changed at any time.
Of course, some of the libraries described in this document are more stable and finished like the macro, system and data libraries. Therefore, the chapters about these libraries are less likely to be changed. Other libraries (like graphics and GUI), will be heavily modified so the manual will be changed accordingly.
Structure of the library
FreshLib contains many code and macros libraries, structured hierarchically and depending on each other. Here is the directory tree of the library:
The library is structured to support different platforms transparently. The platform dependient code is contained in a subdirectory of each library component. For example, "system" subdirectory contains libraries for accessing system resources such as memory, files, etc. Inside "system" there several subdirectories that contain OS dependent code these directories are named after the platform they serve.
Currently, only Win32 and Linux platforms are supported.
FreshLib main scope is to provide a fast and easy framework to start programming multiplatform assembly applications. Now, what is needed to start writing applications?