LazyBoy is the next generation of my DOSKit. I'm just developing it under the
working title
of LazyBoy during the creation of this new version of the library
and a new DOS program. Those sources include newest version of the
LazyBoy library sources.
Eventually, LazyBoy will probably be ported back to DOSKit as version 4.0. Then again,
maybe not. Now many weeks into this project, I'm starting to get very attached to the
working title.
LazyBoy provides a large set of interwoven macros that provide a near high level language experience when programming in assembly. Things like windowed text output, mouse support, displaying large numbers in different formats, and much much more. The code supporting such things is compiled conditionally when needed. For example, if you don't need to display a ZWORD as an signed integer, then that code is excluded from the compiled binary.
The LazyBoy library absolutely requires NASM 2.16.01 or better. Don't even bother trying to use 2.15.03 or a lesser version. You will be sadly disappointed. Yeah, I know this is for DOS. But, it has a bunch of complex macros that make the library possible. Some of which is not supported as written in the library with older compiler versions.
The library, manual and other included files are all released under the BSD 3-Clause License.
In general and unless otherwise stated, all library macros and macro sets have the following behaviour and requirements:
preferedset of registers. Although passing other registers as parameters to those macros may be desired and is acceptable, using the
preferedregister will generate the least amount of compiled code.
internalmacros are not described in this document and you should refrain from using them. They could completely change at any time.
defineto exclude the initialization of that group to reduce the compiled binary file size. For instance, to exclude all CRT support, simple place a
%define NO_CRT
before the %include "lazy.inc"
. There is also a
means to just postpone the initialization of those groups until a later point in the program.You will probably want to get started by checking out one of these: