home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / 095z / dtrpatch.doc < prev    next >
Text File  |  1987-02-16  |  8KB  |  285 lines

  1.  
  2. The QuickBASIC compiler offers a lot of needed features to compiled
  3. BASIC programs.  Regretably, it also  included  a  few  "problems."
  4. For those who use  RBBS-PC to "exit" to DOS (either via a "door" or
  5. as a remote SYSOP), the code generated by the  QuickBASIC  compiler
  6. would  "help"  you  by dropping carrier when you chose to return to
  7. RBBS-PC from  DOS or a "door."  Help like this RBBS-PC didn't need.
  8.  
  9. Jeff Porter, documented a "patch" to the BCOM10.LIB of the QuickBASIC
  10. compiler that corrects this problem within the logic of the code
  11. generated by the QuickBASIC compiler.
  12.  
  13. As I state in RBBS-PC's documentation:
  14.  
  15.      "RBBS-PC continues to grow and expand because hundreds
  16.       (and quite possibly thousands) of SYSOP's spend the
  17.       time and trouble not only to modify RBBS-PC to meet
  18.       their needs, but also to share these modifications
  19.       with others."
  20.  
  21. Jeff's contribution is available by simply downloading the file
  22. DTRPATCH.DOC.
  23.  
  24. Please note that nowhere does Jeff describe the hours and hours
  25. it must have taken him to find the fix to the problem.  Nowhere
  26. does he ask anything for himself for his efforts.  As I have
  27. said so often "I am very proud of the company that RBBS-PC keeps."
  28.  
  29. Tom Mack
  30. January 10, 1986
  31.  
  32.  
  33.                      DTR Fix for QuickBasic 2.1
  34.                             Rod Bowman
  35.                              02-10-87
  36.  
  37. Well, MicroSoft still has not fixed the other DTR problem from QB 2.0!
  38. Hopefully in the next release, which will be QB 3.0, they will take care
  39. of this one.
  40.  
  41.  
  42. This  patch  modifies the serial communication  routines  in  the
  43. BCOM20.LIB  file so that the  DTR  line  will be not be turned off
  44. when running another program with the RUN Command of BASIC!
  45.  
  46. Here  is  a  transcript  of  a  patch  session.    More  detailed
  47. instructions follow it.
  48.  
  49. A>copy bcom20.lib bcom20bk.lib
  50.       1 File(s) copied
  51.  
  52. A>debug bcom20.lib
  53. -dD858 L 5
  54. xxxx:D858  83 C2 04 32 C0
  55. -aD85B
  56. xxxx:D85B mov al, 1
  57. xxxx:D85D 
  58. -w
  59. Writing xxxxx bytes
  60. -q
  61.  
  62.  
  63. 1.   Make a backup copy of the BCOM20.LIB file, just in case.
  64.  
  65. 2.   Run debug and load BCOM20.LIB
  66.  
  67.      A>debug bcom20.lib
  68.  
  69. 3.   Display  the  following sections of data and see  that  they
  70.      match.   This is to insure that you are patching the correct
  71.      version of the library.
  72.  
  73. -dD858 L 5
  74. xxxx:D858  83 C2 04 32 C0
  75.  
  76. 4.   If  debug shows the same information as listed  above,  then
  77.      you may continue with the patching process.   If not,  go to
  78.      the section Patching other Library Files.
  79.  
  80. 5.   Do the following:
  81.  
  82.      -a D85B
  83.      xxxx:D85B mov al, 1
  84.      xxxx:D85D
  85.  
  86. 6.   Now write the file back to disk and quit debug.   The  patch
  87.      is complete.
  88.  
  89.      -w
  90.      Writing  xxxxx  bytes
  91.      -q
  92.  
  93.  
  94.                         "The 'PC' Spectrum" (tm) RBBS-PC
  95.                          Rod Bowman
  96.                          P.O. Box #1546
  97.                          Cucamonga, CA  91730
  98.                          (714) 945-2612 (DATA)
  99.  
  100.  
  101.                      DTR Fix for QuickBasic 2.0
  102.                             Rod Bowman
  103.                              09-11-86
  104.  
  105. Well, we thought MicroSoft fixed all of the DTR problem from QB 1.x but they
  106. only fixed half of the problem!  Maybe in the next release they will be able
  107. to get this one in there too!
  108.  
  109.  
  110. This  patch  modifies the serial communication  routines  in  the
  111. BCOM20.LIB  file so that the  DTR  line  will be not be turned off
  112. when running another program with the RUN Command of BASIC!
  113.  
  114. Here  is  a  transcript  of  a  patch  session.    More  detailed
  115. instructions follow it.
  116.  
  117. A>copy bcom20.lib bcom20bk.lib
  118.       1 File(s) copied
  119.  
  120. A>debug bcom20.lib
  121. -dD368 L 5
  122. xxxx:D368  83 C2 04 32 C0 EE EB                    ..2...
  123. -aD36B
  124. xxxx:D36B mov al, 1
  125. xxxx:D36D 
  126. -w
  127. Writing 2B000 bytes
  128. -q
  129.  
  130.  
  131. 1.   Make a backup copy of the BCOM20.LIB file, just in case.
  132.  
  133. 2.   Run debug and load BCOM20.LIB
  134.  
  135.      A>debug bcom20.lib
  136.  
  137. 3.   Display  the  following sections of data and see  that  they
  138.      match.   This is to insure that you are patching the correct
  139.      version of the library.
  140.  
  141. -dD368 L 5
  142. xxxx:D368  83 C2 04 32 C0 EE EB                    ..2...
  143.  
  144. 4.   If  debug shows the same information as listed  above,  then
  145.      you may continue with the patching process.   If not,  go to
  146.      the section Patching other Library Files.
  147.  
  148. 5.   Do the following:
  149.  
  150.      -a D36B
  151.      xxxx:D36B mov al, 1
  152.      xxxx:D36D
  153.  
  154. 6.   Now write the file back to disk and quit debug.   The  patch
  155.      is complete.
  156.  
  157.      -w
  158.      Writing         bytes
  159.      -q
  160.  
  161.  
  162.                         "The 'PC' Spectrum" (tm) RBBS-PC
  163.                          Rod Bowman
  164.                          P.O. Box #1546
  165.                          Cucamonga, CA  91730
  166.                          (714) 945-2612 (DATA)
  167.  
  168.  
  169.                     DTR Fix for QuickBasic 1.x
  170.                            Jeff Porter
  171.                              1-5-86
  172.  
  173. As anyone who has tried to write any programs that use  COM1:  or
  174. COM2: with MicroSoft QuickBasic knows, the DTR modem control line
  175. is  dropped everytime a a communication file is opened or closed.
  176. I don't know why MicroSoft drops the DTR line all the time; all I
  177. know  is that it can be a serious problem with programs  such  as
  178. RBBS-PC.   Therefore,  I  present the following patch to fix  the
  179. problem.
  180.  
  181. This  patch  modifies the serial communication  routines  in  the
  182. BCOM10.LIB  file so that the DTR line will be not be turned off.
  183.  
  184. Here  is  a  transcript  of  a  patch  session.    More  detailed
  185. instructions follow it.
  186.  
  187. C>copy bcom10.lib bcom10bk.lib
  188.       1 File(s) copied
  189.  
  190. C>debug bcom10.lib
  191. -d540 L 10
  192. xxxx:0540  0B D2 75 04 B5 FF EB 34-FA 83 C2 04 32 C0 EE EB   ..u....4....2...
  193. è-d830 L 10
  194. xxxx:0830  14 8B FA E8 00 00 83 C2-04 32 C0 EB 00 EE C7 47   .........2.....G
  195. -a54c
  196. xxxx:054C mov al, 1
  197. xxxx:054E 
  198. -a839
  199. xxxx:0839 mov al, 1
  200. xxxx:083B 
  201. -w
  202. Writing 25C00 bytes
  203. -q
  204.  
  205.  
  206. 1.   Make a backup copy of the BCOM10.LIB file, just in case.
  207.  
  208. 2.   Run debug and load BCOM10.LIB
  209.  
  210.      C>debug bcom10.lib
  211.  
  212. 3.   Display  the  following sections of data and see  that  they
  213.      match.   This is to insure that you are patching the correct
  214.      version of the library.
  215.  
  216. -d540 L 10
  217. xxxx:0540  0B D2 75 04 B5 FF EB 34-FA 83 C2 04 32 C0 EE EB   ..u....4....2...
  218. -d830 L 10
  219. xxxx:0830  14 8B FA E8 00 00 83 C2-04 32 C0 EB 00 EE C7 47   .........2.....G
  220.  
  221. 4.   If  debug shows the same information as listed  above,  then
  222.      you may continue with the patching process.   If not,  go to
  223.      the section Patching other Library Files.
  224.  
  225. 5.   Do the following:
  226.  
  227.      -a 54c
  228.      xxxx:054C mov al, 1
  229.      xxxx:054E
  230.      -a 839
  231.      xxxx:0839 mov al, 1
  232.      xxxx:083B
  233.  
  234. 6.   Now write the file back to disk and quit debug.   The  patch
  235.      is complete.
  236.  
  237.      -w
  238.      Writing         bytes
  239.      -q
  240.  
  241.  
  242.                   Patching other Library Files
  243.  
  244. If  you  do  not  have  MicroSoft QuickBasic or  if  you  have  a
  245. different  version than I,  you can probably still  perform  this
  246. patch.   You  will  have to find the correct locations to  patch.
  247. The  addresses  054C  and  0839 were  found  with  the  following
  248. èprocedure:
  249.  
  250. 1.   Search  for the byte sequence 83 C2 04 32 C0 in the  library
  251.      file.   If you are lucky,  debug will find it in exactly two
  252.      places.
  253.      
  254.      (for example:)
  255.      -s 100 fff0 83 C2 04 32 C0
  256.  
  257. 2.   Unassemble   the  addresses  you  found.    The  first   two
  258.      instructions will be
  259.  
  260.           ADD  DX, +04
  261.           XOR  AL, AL
  262.  
  263.      Within the next few instructions should be
  264.  
  265.           OUT  DX, AL
  266.  
  267. 3.   If everything has gone correctly so far, just change the
  268.  
  269.           XOR  AL, AL
  270.  
  271.      to a
  272.  
  273.           MOV AL, 1
  274.  
  275. 4.   Perform this change in both places where the
  276.  
  277.           XOR AL, AL
  278.  
  279.      instruction was found.
  280.  
  281.  
  282. 5.   Write the updated file.
  283.  
  284.  
  285.