home *** CD-ROM | disk | FTP | other *** search
-
-
-
- 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.
-
-