
QB/VBDOS - compiler or interpreter?
MM> How does PDQ get the EXE so small?
Crescent Software did several things in PDQ to reduce the size of the
EXE (and speed up the execution):
1: Instead of combining several routines into large OBJ chunks, they
separated each function into it's own OBJ file. You can then link into
your EXE just the OBJ's you want (called improved granularity)
2: They went through each function and optimized it's assembly language
for size and speed.
3: They eliminated some of the error checking/hand-holding that QB does
ie in PDQ you can choose to LOCATE at row 3245 and column -457 without
an error (they're depending on the BIOS to save you from writing
electrons all over the neighbor's house <g>)
4: They give you several variations of many of the functions so you can
choose how many features of a given command you can live without and
they tell you what that will save you. (these are called STUB FILES)
5: They do not support some QB functions. I don't use graphics (PSET,
DRAW...) so that doesn't matter to me, but I could sure use
PRINT USING... They do have a very versatile String formatting
function 'FUSING$' that I can use in the place of PRINT USING but
the hassle of converting a whole bunch (10K) PRINT USING statements
is just about the only thing stopping me from converting some of
my older projects.
I use PDS7 and Crescent Software's Quick Pack for most large projects so
that I won't come up with a surprise function causing a retreat from
PDQ. I use PDQ for small utilities - 1K to 10K, for projects when I
need the most speed I can get, when I need a quick, clean TSR, and also
when I need to produce a small, fast demo COM program to frustrate my
C and C++ friends <G>. I still can't beat the Assembly/C boys 57 bytes
for HELLO WORLD (mine is 900 bytes) but I can give them a good run for
a real world string handling utility.
* RM 1.3 * Eval Day 24 * RoboMail -- The next generation QWK compatible reader!
----
One Stop PCBoard = Eastern Washington's Electronic Information Service