Maximum effective BAUD with superHermes and unexpanded QL

Nagging hardware related question? Post here!
Post Reply
martyn_hill
Aurora
Posts: 908
Joined: Sat Oct 25, 2014 9:53 am

Maximum effective BAUD with superHermes and unexpanded QL

Post 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.


User avatar
Peter
QL Wafer Drive
Posts: 1948
Joined: Sat Jan 22, 2011 8:47 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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


martyn_hill
Aurora
Posts: 908
Joined: Sat Oct 25, 2014 9:53 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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 ?


Nasta
Gold Card
Posts: 443
Joined: Sun Feb 12, 2012 2:02 am
Location: Zapresic, Croatia

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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.


martyn_hill
Aurora
Posts: 908
Joined: Sat Oct 25, 2014 9:53 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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 :-)


User avatar
Pr0f
QL Wafer Drive
Posts: 1297
Joined: Thu Oct 12, 2017 9:54 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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?


martyn_hill
Aurora
Posts: 908
Joined: Sat Oct 25, 2014 9:53 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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.


Silvester
Gold Card
Posts: 436
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post by Silvester »



David
martyn_hill
Aurora
Posts: 908
Joined: Sat Oct 25, 2014 9:53 am

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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.


Silvester
Gold Card
Posts: 436
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

Re: Maximum effective BAUD with superHermes and unexpanded QL

Post 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.


David
Post Reply