V124 Communication Erros (AREV Specific)
At 02 FEB 2000 06:10:25AM Trevor McDonald wrote:
Using V124 in Arev 3.12 to communicate with various external devices. On occasions invalid data is read from transmitting devices - problem is not external devices as errors can be partially eliminated by reading via V124 more than once in a for next loop. I have proved thatprocessor speed seems to have an impact which it should not as I am communicating via the UART at low speed. I am not sure but it may be related to buffering?? Any suggestions welcome.
Also I have been trying for some time to get a version of commdrv.ibm which will allow me to communicate via comm1 & comm2 on the same machine.
At 02 FEB 2000 02:24PM Warren wrote:
COMMDRV.IBM hasn't been updated since 1991 AFAIK. I wouldn't expect it to work 100% with todays highspeed processors and communications devices. It probably doesn't even support the 16550 UART.
Unless there is a third party version (Steve Smith?) the only way to access two or more comm ports is explained in the V124.TXT file in the UTILITY disc file UTILITY.DOC
Opening more than one port simultaneously
You can load and access more than one communications device driver
at once. This enables you to open more than one, and perform I/O
to more than one from within a single R/BASIC program.
To do this, you will need to copy the COMMDRV.IBM program, and make
changes to the object code. Follow these instructions:
1. Copy the COMMDRV.IBM to COMMDRV.TWO so you have one to modify.
2. Modify the internal label of the second driver. It is 8 characters long
and looks like this: 'COMM$ '. You will need to edit this file withan editor that will not be "confused" by low-order ASCII characters (<32).Be sure not to change the number of characters. For example,change 'COMM$ ' to 'CDRV$ '.3. Add another device to the list of drivers in your CONFIG.SYS
file at DOS. It should then look something like this:Device=COMMDRV.IBM 4000,1Device=COMMDRV.TWO 4000,24. From this point, you can open each communication driver as a separate
device, and access it using the appropriate handle.CALL V124('OP',HANDLE.1,'COMM$':CHAR(0),'',FLAG1)CALL V124('OP',HANDLE.2,'CDRV$':CHAR(0),'',FLAG2)If you wish to pull it up in TERM, use the device switch:TERM -DEVICE CDRV$ (for comm 2)orTERM -DEVICE COMM$ (for comm 1)