home *** CD-ROM | disk | FTP | other *** search
- Jack Grey ( Cserve 76040,342 ) 05/15/92
-
- Patching OS2 2.0 COM.SYS for baud rates up to 57600.
- ----------------------------------------------------
-
- The OS2 2.0 serial port driver COM.SYS ( located in the \OS2
- directory ) has a upper speed limitation of 19200 baud.
- The driver may be patched with DOS( or \OS2\MDOS ) DEBUG
- to accept baud rates as high as 65535.
-
- In essence, one loads the driver into DEBUG and searches
- for the the sequence of bytes 3D 00 4B. This is a CMP AX,19200
- instruction. ( compare register AX with decimal 19200 ).
- One simply the replaces instruction with CMP AX,65535.
-
- It is recommended that you make a back up copy your COM.SYS file
- and patch a second copy to avoid problems in the event of improper
- entries.
-
- Of course, the assumption that your UART and serial device ( e.g., modem )
- can handle baud rates above 19200 is implicit. Using the 16550AFN UART
- which has a 16-byte internal data queue is recommended to circumvent
- the OS2 2.0 limit of around 1000 interrupts per second. However, if
- your application ( e.g., file transfer by Zmodem ) is fault-tolerant,
- you may still use baud rates higher than 19200 with errors occuring
- but still gain overall increased throughput. You may want to experiment
- with various baud rates for best results.
-
- The following capture illustrates the procedure using the
- COM.SYS file from the GA release. The actual addresses you see will
- depend on your system configuration. After applying the patch, replace
- the file in \OS2 with the patched file, shutdown, and reboot in order
- for the change to become effective.
-
- This patch has also been tested with the OS2 1.3 driver COM02.SYS.The
- procedure is identical.
-
- This modification should be undertaken entirely at your own risk and
- is not known to be sanctioned by IBM. However, it works for me and I
- thought I would share the information.
-
-
- E:\>debug com.sys
- -r ( dump the registers in order to see the file
- length in BX:CX )
- AX=0000 BX=0000 CX=60B8 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
- DS=0D14 ES=0D14 SS=0D14 CS=0D14 IP=0100 NV UP EI PL NZ NA PO NC
- 0D14:0100 4D DEC BP
- -s 100 61b8 3d 00 4b ( search from the start to the end for
- the byte sequence )
- 0D14:4ECF <== this is the address of the instruction
- -u 0d14:4ecf 4ed2 ( disassemble to confirm )
- 0D14:4ECF 3D004B CMP AX,4B00
- 0D14:4ED2 0F DB 0F
- -e 0d14:4ed0 ( enter new values;
- 0D14:4ED0 00.ff 4B.ff the space bar steps from one byte to the next )
- -u 0d14:4ecf 4ed2 ( disassemble to confirm )
- 0D14:4ECF 3DFFFF CMP AX,FFFF
- 0D14:4ED2 0F DB 0F
- -w ( write out the changed file )
- Writing 60B8 bytes
- -q