Page 1 of 1

Maximum effective BAUD with superHermes and unexpanded QL

Posted: Tue Feb 06, 2018 3:42 pm
by martyn_hill
Hi everyone

A little while ago I picked-up a repaired superHermes and fitted to one of my unexpanded QLs (with Minerva 1.98).

At the time, I carried-out some testing of SER3 with its increased range of BAUD rates - connected to QPC on a laptop with native COM port.

Curiously, I was never able to get an effective CPS beyond what was achieved with 19200 BAUD. Each end was correctly configured for the higher BAUD rate at each iteration and the flying lead to the EXTINT pin on the expansion bus was also correctly connected, yet something inherent in the QL's ability to service SER3 simply wouldn't take it any higher. No transmission errors, just no higher...

Of course, we wouldn't expect an unexpanded QL (without GC/SGC) to reach the highest available BAUD of sH, but it seemed peculiar that CPS performance plateaued at the 19200 equivalent.

Any thoughts? Its mostly academic (at least once the QLUB adapter is finished and I can connect QPC to the native QL LAN port), but would be happy to know what to expect from superHermes.

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Wed Feb 07, 2018 2:05 pm
by Peter
Hi,
SuperHermes was advertised with "Use the QL for high speed BBS (V34 at 57600bps)". Since the QL can handle similar rates with NET, I would have hoped this throughput is realistic.
Looks like too much interrupt handling overhead for the 68008. Future SER card projects may want to minimize that overhead by hardware FIFO.
Peter

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Wed Feb 07, 2018 3:50 pm
by martyn_hill
Hi Peter

Thanks for that. I should add that its perfectly possible that either I've messed up in configuring the sH, or perhaps my unit is slightly wobbly - I wouldn't want to tarnish the reputation of this ageing but beautiful bit of technology!

Anyone else had better (effective CPS) results from SER3 on sH on a BBQL ?

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Mon Feb 12, 2018 2:05 pm
by Nasta
I believe this is due to the limited speed the QL can communicate with the IPC, which ever that may be. As far as I understand it, it's a bit-bang affair, so the speed of the CPU and ultimately the (slow) speed of the QL bus will be the limiting factor, even over the rate the interrupt can be served. In theory something like the SGC with cache switched on might push the QL bus to the maximum, and I am sure sH can cope with that.

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Mon Feb 12, 2018 2:15 pm
by martyn_hill
Thanks Nasta! Seems perfectly feasible as you say that the 8302 to sH IPC replacement might be the limiting factor.

None the less, I'll play a bit more to see if > 19,200 equivalent CPS can be reached. Time to reach for my digital logic analyser :-)

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Mon Feb 12, 2018 2:32 pm
by Pr0f
Just out of interest, is this file transfer over the serial port?

I was just wondering what other paths the data is taking in your transfer tests, where the data is coming from (as in what storage). If the QL is unexpanded then I presume Microdrives. I wonder what speed you might achieve from floppy disk / expanded RAM interface, or from Qubide equipped BBQL?

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Mon Feb 12, 2018 5:53 pm
by martyn_hill
Hi Pr0f

If I remember correctly, I used memory to memory transfers to avoid any storage-access delays of a 16kB string using PRINT at the QPC sender and INPUT$ at the QL/sH receiver.

I'll test again and report back.

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Thu Feb 15, 2018 2:18 pm
by Silvester

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Thu Feb 15, 2018 6:16 pm
by martyn_hill
Hi Silvester
Silvester wrote:POKE!!53,128 ?
Interesting idea. Whilst that poke would disable the IPC interrupt that is designed to service the serial ports at higher speeds, it could be that given that sH uses EXTINT instead, it is at least unnecessary.

Anyways, very easy for me to test - thank's for the idea! I'll report back later.

Re: Maximum effective BAUD with superHermes and unexpanded QL

Posted: Sat Feb 17, 2018 9:15 am
by Silvester
Look at Minerva/Hermes documentation, it is the suggested fix to improve rate.

IIRC the problem is the default action (POKE!!53,192) causes unnecessary repeat polling of IPC after it had just taken data(see source).

update:
Minerva source (M_inc_pc extract) relevant to the problem which causes disk interleave problem on Trump card and perhaps serial flow rate.

Code: Select all

* The five lsbs are set on read to indicate which interrupts are pending and
* writing a set bit will clear such an interrupt once it has been serviced.
* At boot, $1f is written here twice, then $c0 is put in sv_intr to start off
* with transmit and IPC interrupts enabled.
* The second write of $1f, one gathers, is because a bug in the h/w sometmes
* causes the first one to fail.