home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
rbbs
/
rbbsdocs.lzh
/
RBBSDOCS.APG
< prev
next >
Wrap
Text File
|
1990-11-05
|
3KB
|
65 lines
APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors" G-1
APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors"
------------------------------------------------------------
A bug in Microsoft's BASIC and QuickBASIC compilers requires SysOps who
wish to recompile RBBS-PC to apply the following patches. The problem has
to do with BASIC's treatment of the communications port when you exit a
BASIC program. The Data Terminal Ready (DTR) line MUST be kept on at all
times, or the modem will hang up on your caller.
If you are recompiling RBBS-PC, and you plan to use Doors or external
protocols, you must make the following patches. Any hex editor can be
used: DEBUG, which comes with DOS, or the Norton Utilities are just two
examples. A tutorial on how to use DEBUG is beyond the scope of this
document.
There are actually two patches, depending on the version of the compiler
you have. The first patch is for QuickBASIC 2, 3 & 4 or BASCOM 6.0.
The file you will patch is BCOMx0.LIB (where X is the QB version number).
Of course, you will save your original file before applying the patch. To
make the fix, you will search for the following string of HEX digits: 83 C2
04 32 C0 EE. The assembly code for this string is:
83 C2 04 ADD DX,4
32 C0 XOR AL,AL
EE OUT DX,AL
We need to change the XOR AL,AL to MOV AL,1. Change the "32 C0" to "B0
01". Make this change in both places where the string occurs.
If you use QB 4.5, or BASCOM 7.0, the patch is different. Look for the
string: B0 00 E3 01 40 83 C2 04 EE. In assembly code, it is:
B0 00 MOV AL,00
E3 01 JCXZ nnnn
40 INC AX
83 C2 04 ADD DX,4
EE OUT DX,AL
Again, we want to put a 1 in AL, so we change the "B0 00" to B0 01". We
also need to remove the INC AX, so change the "40" to "90".
You may also want to make an additional patch. This patch will prevent
QuickBASIC from pausing on a fatal error. Normally, BASIC says "press a
key to continue". If RBBS-PC were allowed to recycle, it would do so
without trouble, but BASIC will hold up your board until you press a key.
If you have QuickBASIC 2.01 or 3.0, search the BCOMx0.LIB for the following
string of HEX digits: E2 F8 E8 00 00 E8 00 00 E8 00 00 C3. Change the
MIDDLE "E8 00 00" to "C3 90 90". If you have QuickBASIC 4.5, search for
the string "B8 07 0C CD 21" and change the "CD 21" to "90 90". Now,
whenever BASIC can't handle an error, it will allow RBBS-PC to recycle
quickly.
If you have BASCOM 7.0, you can apply the patch for QB 4.5, although you
will have to patch whichever BC70xxxx.LIB file you use to link.
Thanks to Doug Azzarito, Jeff Porter, Rod Bowman, Kenny Gardner and Bob
Eyer for information on these patches.