memory management (universal for real+protected, blocks over 64KB)
Mys
mouse management
Num
numeric conversions
Scrol
scrolling engine from Deus ex Machina, any mode/any bitmap size
Streamy
stream helpers
Stringy
string management
Sys
system helpers (partial crt replacement, accurate time)
Texty
long text management
Timer
ray synchronization
Tools
various helpers
VGA
vga, vesa, bitmaps (universal for all modes, avoids VGA/VESA bugs)
More detailed desriptions are inside units.
OTHER FILE
DESCRIPTION
bit2scr.inc
double include for vga.pas
define.inc
global $define for all units
fn.pas
separated font converter fn.exe
gui1.inc
interface GUI
gui2.inc
implementation GUI
initdone.inc
standard init/done include for all units
lang.cz
text file with Czech localization
lang.eng
text file with English localization
lang-.inc
identifiers of localized texts
lang1.inc
array of localized texts
lang1inc.*
generates lang1.inc
modern.fn
some proportional font
moder_np.fn
some non-proportional font
pr*.*
examples
sbit2scr.inc
double include for scrol.pas
sele.inc
dialogs fileselector and pathbrowser
dpmi.,timer.
subset of Midas necessary when full Midas is not used
midasfix*.*
bugfixes to apply when full Midas is used
Unit dependencies
timer lang1/2
/ /
chyby-----key-----sys--fajly-------------------
\ (/) / \ \ \
dpmi--memo==stringy--mys--VGA---loadery--ldtga \
\ \ \ \ \ \
\ \ cache-----fonty-------ldtxt >-langfile,ini
\ \ \ / /
streamy \ cs,num dialogy / /
\ / / /
texty-----------------------------
--- right one needs the left one
(/) only in protected timer+ini+fonty--scrol--tools
=== both directions
Conventions
Comments are not yet compiled into *.TPH help,
so you can find main unit comment at the beginning of unit,
variables are commented around their declaration,
functions are commented around their implementation.
If there is code after the last "end", it could be
candidates for inclusion into CiA, but it needs more testing.
Units after "uses" go in following order: Chyby, Memo,
standard Borland units, other units.
Member procedures are 'Procedure', non-object ones are usually 'PROCEDURE'.
English is used for all new developments, amount of Czech can only decrease.
When procedure says 'Does not change registers', it's not 100%.
AX changes if you enable stack checking and procedure uses stack
(stack is used for parameters, local variables and for member procedures).
Comment {* marks place with unfinished work.
When speed is important, code is optimized for speed,
otherwise for simplicity.
Each unit can read its own parameters from commandline.
Those considered 'own' are processed and marked in paramUsed array,
so other units can ignore them.
UNIT
COMMANDLINE
DESCRIPTION
Memo
file.swp [megabytes]
create swapfile of this size (default is 16)
Chyby
:lang
select language (default is eng)
VGA
+bits
use only models with this # of bits per pixel
VGA
bits
use only -"-
VGA
-bits
don't use -"- (where "4 bits" is textmode)
VGA
AxisRelLimit
let only resolutions which pass this test
Axis is X or Y
Rel is one of
<
<=
=<
=
==
!=
=>
>=
>
lt (Less Than)
eq (EQual to)
gt (Greater Than)
le (Less or Equal to)
ne (Not Equal to)
ge (Greater or Equal to)
Limit is number of pixels (chars in textmode)
Note that < and > symbols have special meaning (redirection) in DOS.
If you want to use them in parameter, enclose whole parameter into ""
(it works under MS-DOS 7.00, not yet tested elsewhere).
Examples: xlt800 "y<600"