Dec 252017
 
RBBS 17.3. Merges to reduce size of EXE.
File RBBS-LIT.ZIP from The Programmer’s Corner in
Category BBS Files
RBBS 17.3. Merges to reduce size of EXE.
File Name File Size Zip Size Zip Type
LIT 0 0 stored
LIT-READ.ME 2031 1031 deflated
10NET.LIT 3683 843 deflated
ALLDIR.LIT 732 268 deflated
ANSWER.LIT 1962 660 deflated
ASCCODES.LIT 712 246 deflated
ASMANSI.LIT 1479 481 deflated
ASMCAPS.LIT 653 250 deflated
ASMFFIND.LIT 1578 552 deflated
ASMFRSP.LIT 581 209 deflated
AUTODOWN.LIT 704 252 deflated
AUTOPAG1.LIT 567 184 deflated
AUTOPAGE.LIT 602 205 deflated
BASCAPS.LIT 812 303 deflated
BASFFIND.LIT 1496 533 deflated
BASFRSP.LIT 630 240 deflated
BAUD450.LIT 638 227 deflated
CONFENCE.LIT 714 267 deflated
COPYRITE.LIT 821 349 deflated
CORVUS.LIT 5320 1042 deflated
DESQVIEW.LIT 2999 660 deflated
DISPCALL.LIT 644 239 deflated
DOOREXIT.LIT 623 231 deflated
DOORRTN.LIT 632 235 deflated
DOORS.LIT 634 230 deflated
DOORS3.LIT 673 236 deflated
DOSEXIT.LIT 601 206 deflated
EXTERNAL.LIT 940 349 deflated
FMS.LIT 1253 463 deflated
FMS4.LIT 913 355 deflated
FOSSIL01.LIT 2098 730 deflated
FOSSIL02.LIT 12 12 stored
FOSSIL03.LIT 1293 436 deflated
FOSSIL11.LIT 1549 520 deflated
FOSSIL12.LIT 1077 451 deflated
FOSSIL13.LIT 631 226 deflated
FOSSIL14.LIT 1210 492 deflated
FOSSIL15.LIT 703 270 deflated
FOSSIL21.LIT 1020 361 deflated
FOSSIL22.LIT 654 228 deflated
FOSSIL23.LIT 3391 729 deflated
FOSSIL24.LIT 875 345 deflated
FOSSIL25.LIT 744 265 deflated
FOSSIL31.LIT 940 328 deflated
FOSSIL32.LIT 646 231 deflated
FOSSIL41.LIT 1142 415 deflated
FOSSIL42.LIT 974 316 deflated
FOSSIL43.LIT 635 214 deflated
FOSSIL51.LIT 835 314 deflated
FOSSIL52.LIT 838 305 deflated
IDLEDV.LIT 612 218 deflated
IDLEML.LIT 613 213 deflated
INDEF.LIT 13561 3092 deflated
INDIVID.LIT 647 237 deflated
LIBRARY.LIT 736 246 deflated
MACROS.LIT 806 256 deflated
MAILCHK.LIT 642 238 deflated
MAKELIT.BAT 842 380 deflated
MIMPORT.LIT 735 266 deflated
MITESIZE.DOC 6403 2891 deflated
MITEVER.LIT 636 215 deflated
MITEVER2.LIT 516 282 deflated
ML2OK.LIT 541 231 deflated
MLSUB2.LIT 631 224 deflated
MLSUB3.LIT 3911 759 deflated
MULTNODE.LIT 1014 331 deflated
MUSIC.LIT 660 233 deflated
NETBIOS.LIT 2832 624 deflated
NETBOFF.LIT 665 250 deflated
NETMAIL.LIT 750 298 deflated
NOIDLE.LIT 914 247 deflated
NOVELL.LIT 822 318 deflated
NOVIEW.LIT 629 233 deflated
OLDDIR.LIT 656 252 deflated
OUTDEF.LIT 580 206 deflated
OUTDEF2.LIT 4744 1193 deflated
PCNET.LIT 3652 832 deflated
PERSDOWN.LIT 894 342 deflated
PUI.LIT 684 252 deflated
QUESSAVE.LIT 688 263 deflated
RBBSANS.LIT 1170 431 deflated
RBBSLIT.MRG 4128 1283 deflated
RECOVER.LIT 680 259 deflated
SECVIO.LIT 721 288 deflated
SETLIT.INC 9546 2372 deflated
SHELEXIT.LIT 615 233 deflated
SHELL2.LIT 570 205 deflated
SHELL3.LIT 954 393 deflated
SMARTTXT.LIT 890 301 deflated
SPEECH.LIT 652 241 deflated
SUB1HDR.LIT 2742 1192 deflated
SUB1LIT.MRG 1214 311 deflated
SUB2HDR.LIT 4794 2169 deflated
SUB2LIT.MRG 2327 583 deflated
SUB3HDR.LIT 3916 1768 deflated
SUB3LIT.MRG 1666 425 deflated
SUB4HDR.LIT 4620 2047 deflated
SUB4LIT.MRG 1784 420 deflated
SUB5HDR.LIT 2092 992 deflated
SUB5LIT.MRG 889 265 deflated
SURVEY.LIT 812 268 deflated
SURVEY1.LIT 843 243 deflated
SYSMAINT.LIT 1034 295 deflated
SYSMENU.LIT 606 206 deflated
SYSMNT2.LIT 599 209 deflated
SYSOPKEY.LIT 869 267 deflated
TIMEEVNT.LIT 602 217 deflated
TIMELOCK.LIT 621 220 deflated
UPDWNRAT.LIT 638 246 deflated
VARCASM.LIT 949 355 deflated
VARCBAS.LIT 2082 657 deflated
VIEWINT.LIT 1191 491 deflated
WHOSON.LIT 658 245 deflated

Download File RBBS-LIT.ZIP Here

Contents of the MITESIZE.DOC file


Mite-Size
A Set of Merges to Minimize Code Size
for RBBS 17.3

by Ken Goosens (data line 703-978-6360)

What These Merges Do

These merges allow you select what functions to eliminate
from RBBS in order to reduce the size of the compiled program
and reduce the amount of memory needed.

WARNING!!! These merges must be applied to the UNMODIFIED
source code to RBBS 17.3. The merges substitute code for
code in RBBS, and therefore may destroy other changes you
have made to RBBS. If you have fixes, you may want first to
reduce the code, then add in the fixes.

History of Changes

01-10-90. Lit code rewritten to conform to "periodless" base code.
END SUB written into line containing omitted subroutine
for uniformity, and to save a few extra ASCII bytes.
Most subroutine descriptions and 'SUBTITLEs' removed
when subs .lit-ted out.

08-06-89. Problem fixed when omitting fossil driver.

07-30. Incorporated changes made in 17.2B.

05-22. More variables added. Recommend using BLED 2.2,
since 2.1 had a bug that would cause erroneous warnings.

12-27-88. Corrections to doc. Should only use BLED 2.1.
Variables added. More code removeable.

12-13. Two variables left out of 12-11 release of SETLIT.INC:
DOORRTN, and ASMFREESP. Added.

Three LIT files added: ASMANSI (omits ANSI.OBJ) by using only
Basic screen writes. CONFERENCE (no conferences). And
DOORS (no doors).

Documentation (this file) corrected: base should use is
17.2A, and QB 4.5 added as possible compiler.

01-09 Updated all .LIT files to recognize line numbers at the beginning
of every subroutine. (These were made available in the Base dated
01/09/88.

01-09 Corrected SUB4LIT.MRG to correctly identify NOVIEW.LIT. Also
created the file (NOVIEW.LIT) since it was not in the archive.

01-09 Added reference to DOORS.LIT to RBBSLIT.MRG.

01-09 Added reference to DOORS3.LIT to SUB3LIT.MRG.

01-09 Corrected CORVUS.LIT to use BRKFNAME as was being done in the
original code.

01-09 Created SUB5HDR.LIT so that we are consistant.

01-09 All SUBxHDR.LIT files were updated to identify that it is part
of a MITE SIZE program list.

01-09 Standardized headings of each LIT file.

01-15 Line should have been omitted for PCNET. Doors code reduction
corrected.

01-16 Four new LIT variables added.

Why Code Reduction May be Needed

In the absence of an overlay linker or optimizing compiler for
BASIC, RBBS has gotten steadily larger in code size as new functions
have been added, and will continue to do so rather than not add
new functions. The increase in code size causes a problem on
systems that wish to run 2 nodes within 640K of memory, or
otherwise has only a restricted amount of memory to use.

These merges allow sysops with a supported BASIC compiler to
reduce code size. This is achieved by eliminating the code
for unused functions, redundant code (typically doing the same
thing in both BASIC and assembler), and functions which the
sysop is willing to sacrifice.

RBBS can then continue to grow while still supporting sysops
with limited memory.


How to Apply the Merges

1st, you need a copy of the unmodifed source code for 17.2A.
Put this in a separate subdirectory (e.g. 172A)

2nd, in the subdirectory where you normally recompile RBBS,
copy all the files in this application.

3rd, modify the file MAKELIT.BAT by putting in the drive/path
for the original code (the first parm to BLED). The lines
you should modify all begin with "*$", which is the default
for a BLED metacommand. The lines beginning with "* " are
BLED comments, which are ignored in a merge.

4th, get BLED version 2.2 or higher. The latest is 2.2.
Earlier versions lack the necessary features.
Either put BLED in with the merges or in your
path. The new BLED functions are documented in BLED.DOC.

5th, use your favorite text editor to modify the file
SETLIT.INC. Directions are right in the file. Here is where
you specify what options use are using and which you don't
want. This is the fundamental "driver" used. The typical
way you remove code is by setting a variable to the value
"OFF", e.g. BAUD450 to "OFF" to save code by not supporting
changing 300 baud to 450, or LIBRARY to "OFF" if not using the
Library section.

6th, execute the MAKELIT.BAT, which will generate the code
needed to support your application (a new RBBS-PC.BAS,
RBBSSUB2.BAS, and RBBSSUB3.BAS). The version will say
"17.2A Mite-Sized". You should get no BLED warnings.

7th, recompile. Hint: QB 3 produces the largest code.
QB 2.01 is smaller, and QB 1.02 is the smallest. QB 4.5
works but produces the largest code of all.
Also when removing certain routines it is possible to
further reduce the size of the resulting .EXE file by
removing the associated .OBJ from the link step. i.e.
If you specify MULTNODE = NETBIOS then you can remove
BDRIVEC2.OBJ, PCNET.OBJ, RBBSML.OBJ, 10NET.OBJ and
RBBSDV.OBJ from the link parameters.

Never use the /E option in linking. You should
get no errors when recompiling.

8th, reconfigure RBBS for the reduced code, if needed. For example,
disable the commands for functions you remove, such as taking out
the 'A' command if you turn questionnaires off.


What the Files Mean

SETLIT.INC - An file shared by all merges, which sets the
options the sysop wants and does not want. Basically
defines BLED metavariables.

RBBSLIT.MRG, SUB1LIT.MRG,SUB2LIT.MRG, SUB3LIT.MRG, SUB4LIT.MRG,
SUB5LIT.MRG.

The fundamental BLED merges for rbbs-pc.bas, rbbssub1.bas,
rbbssub2.bas, rbbssub3.bas, rbbssub4.bas and rbbssub5.bas
respectively. Each reads in (includes) SETLIT.INC to set
the metavariables, then uses the values to determines what
merges to process in the run.

*.LIT. Files that reduce the code.


You are welcome to enhance these merges with further code reduction.
Please report any problems to Ken Goosens, data # 703-978-6360.
Realize that there is no way I can test the many different
environments or all the combinations of choices.


 December 25, 2017  Add comments

Leave a Reply