<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 19 Dec 2005 22:27:44 +0100
From   : John Kortink <kortink@...>
Subject: Re: Connecting a BBC Micro to a PC

On Mon, 19 Dec 2005 19:30:05 +0000, Jules Richardson wrote:

>Jon Welch wrote:
>> Jules Richardson wrote:
>> 
>>> Speed's the main problem - it's not blindingly fast at BBC serial
port 
>>> speeds. It's a shame there isn't a project around to cable up the 
>>> BBC's 1MHz bus to a PC parallel port and transfer data that way!
>> 
>> If someone can provide me with a ready made cable from the BBC's
>> printer/user/1MHz port to a PC's printer port, I will modify the XFER
>> software to support it.
>
>I'll have a look around. I know I *did* have a load of spare cables with
 User 
>port connectors at one end, and I went and chucked them out because I
didn't 
>think I'd ever use them for anything (and nobody else would possibly
want them!)
>
>Knowing me I may well have kept a couple "just in case" though. John K -
 do 
>you have the pinouts of the 65Link cable handy? I suppose it'd make
sense to 
>wire any Xfer-type ones the same way to avoid confusion. Presumably data
 lines 
>go straight through and the 'modern' host is assumed to have a
bi-directional 
>port, but you use CB1 and CB2 as some sort of acknowledge lines too (in
which 
>case which lines are you using for the RPC end of this?)

Useful datasheets :

http://www.smsc.com/main/datasheets/37c665gt.pdf

(most parallel ports are more or less exactly like this)

http://www.westerndesigncenter.com/wdc/datasheets/w65c22s.pdf

(6522)

A full handshake is easiest, e.g. for BBC side transmit :

Init :

=46E62 = 0xFF (port B all outputs)
=46E60 = 0xFF (clear handshake flag CB1)
=46E6B = FE6B bit7=0 bit1=1 (port B latched, no T1-to-PB7)
=46E6C = 0xF0 (CB2=1, CB1 positive active edge)
=46E6E = 0x18 (clear CB1/CB2 interrupt enables)
=46E6D = 0x18 (clear CB1/CB2 interrupt flags)

Byte transmit sequence :

- read FE60 (clear handshake flag CB1)
- FE6C = 0xD0 ('ready to transmit')
- Wait for FE6D bit 4 (CB1 active edge detect)
- FE60 = byte
- FE6C = 0xF0 ('transmitted')
- Wait for FE6D bit 4 (CB1 active edge detect)

The other side pulses CB1 (to 0, then to 1 -> active CB1 edge)
with the 'out' handshake line, and detects transitions on 'in'
line.

'Write handshake mode' on the 6522 is another option. But
I've found this is too sensitive to cable noise. Best avoid
probably.


John Kortink

-- 

Email    : kortink@...         
Homepage : http://www.inter.nl.net/users/J.Kortink

GoMMC, the ultimate BBC B/B+/Master storage system :
http://web.inter.nl.net/users/J.Kortink/home/hardware/gommc
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>