Bcom40.Lib Dtr Patch

 BBS: Inland Empire Archive
Date: 10-12-92 (22:03)             Number: 374
From: TOM HAMMOND                  Refer#: NONE
  To: TOM CUNHA                     Recvd: NO  
Subj: Bcom40.Lib Dtr Patch           Conf: (2) Quik_Bas
TC> Anyone got the DTR patch for v4.0?

time passes...

TC> Thanks Dick.  But I'm more interested in the BCOM40.EXE.  I don't
TC> distribute executables that require the run time module.


I got this patch from a friend who runs RBBS-PC.  That software is
written in QuickBASIC and they require the use of this patch whenever a
user modifies the source code and has to recompile.

The is NOT a step-by-step patch, but it DOES have all the info you
should need to make the changes.

Use whatever binary editor you wish to use (DEBUG, NORTON, whatever).


The changes are to be made to  BCOM40.LIB

Search for 83 C2 04 32 C0 EE (Note: Should find it in two
                                    places in the code)

The assembly listing of these commands follows:

     83 C2 04    ADD DX,4
     32 C0       XOR AL,AL
     EE          OUT DX,AL

You want to change XOR AL,AL to MOV AL,1

Change 32 C0 to B0 01

Make this change to BOTH instances where the string occurs in the
BCOM40.LIB file.

Hope this is what you're looking for.

Tom Hammond

Tom - Just read another reply which (differently) addresses your
problem.  In the off-chance that you may have missed it, it's included
here in its entirity (sp.):

Date: 10-09-92 (11:55)
From: JERRY HUNTER                 Refer#: NONE
  To: ALL DTR PATCH FOLKS           Recvd: NO
Subj: Why PATCH DTR?                 Conf: (5) Quickbasic

I've seen more queries on how to patch versions of QB2, QB3, QB4 and
QB45 here than I can believe.

Question is, WHY BOTHER patching ANYTHING in QB, the compiler, or the
Lib when a couple lines of code are enough to resolve the problem.

Y'see, when QB issues a RUN command to go run another program, she
handles closing all OPENED ports for you in her effort to do general
housekeeping.  So CLOSE the port.  Make her happy.  But within a
heartbeat, you need to take YOUR OWN precautions to make sure YOU don't
kill the DTR...  As follows :

PortAddr% = &H3F8      ' the base port address of COMx: to preserve
CLOSE #1               ' go ahead and close the port
OUT PortAddr% + 4, 3   ' within a heartbeat, Slam the DTR High
RUN "MYPROG.EXE"         go on about your business...

In this manner, the port may be reopened in subsequent applications
without error and with CD still active.

On some (slow) systems, the S25 register may need to be set as high as
20 to buy you enough time to catch the MSR quickly enough.  An 8088 just
doesn't get around to it as quick as we'd like.

This method is used internally to DarkStar BBS, as well as DarkStar
CommLink.  Works for me, and haven't seen a problem one with using this
method... and it SURE beats worrying about what version of QB you're
using, or installing a patch...

Hope it helps...

-- Jerry Hunter
 * Origin: Night Shift BBS (314)635-7588 HST 14.4 (1:289/15)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET