[comp.sys.amiga] USR 14400/V42bs and Amiga

torkell@ifi.uio.no (Torkel Lodberg) (01/02/91)

In a message, Matti Joutkoski writes:

>JR-Comm is truely lazy, and hard load to the Amiga. It have problems
>with 38400.

Well you can't really blame Jr-Comm. As a matter of fact, it has a very
quick Zmodem transfer protocol that should stick with much faster
transfer speeds than 38400 baud. The real problem is the Amiga system
and the serial.device. Receiving fast wouldn't have been a problem
on the Amiga if it had been a single-tasking system. But when multi-
tasking, there isn't much CPU left for transfers and any transfer at
speeds above 31500 baud *will* give you problems. The only exception is
for programs that completely take over the machine and jump straight
on the hardware (which isn't a nice thing to do on the Amiga).

The buffer will actually overflow, which means that you will loose
incoming data. Another very annoying thing is that bringing another
screen to front during a transfer at 38400 baud may give the same
result even if CTS/RTS has been set. One reason for this may be
that CTS/RTS is handled by software (read: serial.device) and not
hardware like on other systems.

I guess the Amiga would have been better suited for fast transfers
if CTS/RTS would had been properly handled by hardware. 38400 
baud works pretty well on the A3000 (due to the more powerful CPU)
but it is still irritating that data may disappear during a transfer.
Especially this makes it very unsafe to use a protocol like Ymodem-G.

T.Lodberg   InterNet: torkell@ifi.uio.no  Fido: 2:502/110
                UUCP: ...!cbmvax!cbmehq!cbmnor!lodberg!torkel

jprad@faatcrl.UUCP (Jack Radigan) (01/02/91)

torkell@ifi.uio.no (Torkel Lodberg) writes:

>In a message, Matti Joutkoski writes:

>>JR-Comm is truely lazy, and hard load to the Amiga. It have problems
>>with 38400.

>Well you can't really blame Jr-Comm. As a matter of fact, it has a very
>quick Zmodem transfer protocol that should stick with much faster
>transfer speeds than 38400 baud. The real problem is the Amiga system
>and the serial.device. 

  Exact-a-mundo!  The problem is due to the internal port not having the
ability to buffer multiple bytes, it only buffers the most recently
received byte.

  Add to this the fact that the serial port is addressed in chip ram
space and that the cpu has the lowest DMA priority, and you have the
added problem of the cpu being locked out while higher priority DMA is
taking place.  That's why I don't recommend 8 and 16 color screens at
19.2kbps, much less 38.4kbps.

  Finally, we have the problem of the cpu servicing the serial port
interrupt itself.  Although the cpu can normally service it with little
problem, there are occasions when the cpu is delayed long enough so that
the buffered byte is overwritten by the next incoming byte.  The most
common situations that I've seen cause this are more than two floppy drives
and/or hard disk partitions being mounted.  AmigaDOS is evidently doing a
Disable() long enough to cause data loss when it checks each device for
a disk change.  Another cause is having a task with a excessively high
task priority, usuallyt above 15.

>I guess the Amiga would have been better suited for fast transfers
>if CTS/RTS would had been properly handled by hardware. 38400 
>baud works pretty well on the A3000 (due to the more powerful CPU)
>but it is still irritating that data may disappear during a transfer.
>Especially this makes it very unsafe to use a protocol like Ymodem-G.

  Yes, the A3000 and any A2000 w/3rd party serial cards run 38.4kbps
without problems.  If C= decides on a new Paula chip I hope multiple
byte buffering finds its way in there...

  -jack-