Wires? Pah.....

discuss PC<>Acorn file transfer issues & the use of FDC, XFER, Omniflop/disk etc.
User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Mon Feb 10, 2014 9:50 pm

For those building their own cables, here's some shots of a finished connector which shows the diode orientation. Their thick black rings, the cathode or -ve (the flat line across the triangle on the diode symbol), face away from the D-type and their opposite non-black ends are joined together sharing D-type pin 5 with the cable ground (0v) lead. The resistors don't have any polarity and can be used either way round. Hope this helps.... :wink:

UPURS Connector 1.JPG

UPURS Connector 2.JPG

UPURS Connector 3.JPG
Attachments
UPURS Connector 4.JPG

User avatar
CMcDougall
Posts: 5623
Joined: Wed Feb 02, 2005 3:13 pm
Location: Shadow in a Valley of Scotland

Re: Wires? Pah.....

Postby CMcDougall » Mon Feb 10, 2014 10:31 pm

Martin wrote:Hope this helps

=D>
A picture tells me a thousand words! :shock: (Pic2) :D
\/pic of bits/the diagram on Pg6 of beeb PDF manual 8)
http://www.stardot.org.uk/forums/downlo ... &mode=view
http://www.stardot.org.uk/forums/downlo ... &mode=view
Thanks for clearing that up :wink: , only learnt what the black line down the side of a capacitor was for when I was changing my beeb PSU adaptor (gnd/0/-neg) :oops:
ImageImageImage

User avatar
CMcDougall
Posts: 5623
Joined: Wed Feb 02, 2005 3:13 pm
Location: Shadow in a Valley of Scotland

Re: Wires? Pah.....

Postby CMcDougall » Mon Feb 17, 2014 1:43 pm

I've made one :mrgreen:
some info for the 'make this easy' crew :
Get stupid old desktop PC, rip out HDisc 40 way cable. Take off the 3 (or 2) connectors with small screwdriver, peel off connectors slowly from wires.
Count 20 bits of wire, and half it.
Use holes already present, put on 20way bump connector, making sure to line up the pins to holes already in cable. Squash together using old HDisc connector on flat hard surface, if wires look set in, put proper 20 connector on.
Other now bare end, get black pen, and mark the wires you want to keep, cut others away, and use your teeth to slowly rip off ends to show bare wire for about 5mm:
100_3013.JPG
getting ready!

Then, grab the 9-pin Female connector, put solder onto holes that are needed. Cut Resistors one end about 5mm, and shove in hole while solder is running.
Same with Diode noting black strip away from 9pin connector.
Other ends of resistor and diode, twist together, run some solder on.
Bare wires at end of 20way, 5 only usefull, so run some solder on these.
Connect the wires by shoving the wire on to 9way plug down the holes, run solder and blow :-
Connect pin 4 & 6 together last on 9pin, with wire from bits spare off 20 way cable.
100_3019.JPG
all ready to go!

Try it on computers if it works, cut excess wire off end of diodes and resistors, put in housing to make it look nice :D

Extra Notes:
If on a laptop Win8.1 (probably 8 too), no need to uninstall/install USB>RS232 FTDI drivers, just plug USB end into the USB2 port, and it does the rest. Shows on mine as "Device FTDIBUS\VID_0403+PID_6001+6&32bd888&0&2\0000 was configured." and it is Port COM3.

Wicked stuff Martin =D> 8)
ImageImageImage

User avatar
flaxcottage
Posts: 2799
Joined: Thu Dec 13, 2012 8:46 pm
Location: Derbyshire

Re: Wires? Pah.....

Postby flaxcottage » Mon Feb 17, 2014 2:56 pm

CMcDougall wrote:
Other now bare end, get black pen, and mark the wires you want to keep, cut others away, and use your teeth to slowly rip off ends to show bare wire for about 5mm:



My dentures won't stand up to making this! :twisted:
- John

Currently running Level 4 Econet with BBC B, BBC B+ 128K, Master 128K, 4Mb A3000, 4Mb A3020, 4Mb A4000, 4Mb A5000 dual FDD; UK101; HP41CX setup; Psion 3a, 3mx and 5mx; Z88; TI-58c, TI-59 and printer, HP-16C programmer's calculator

User avatar
paulv
Posts: 3606
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: Wires? Pah.....

Postby paulv » Mon Feb 17, 2014 4:02 pm

I've made one :mrgreen:
some info for the 'make this easy' crew :


Alternatively some of us offer a "for the price of parts" + P&P build and test service...

No danger of losing any teeth either :lol: :lol: :lol: :lol:

Paul

User avatar
leenew
Posts: 3407
Joined: Wed Jul 04, 2012 3:27 pm
Location: Doncaster, Yorkshire

Re: Wires? Pah.....

Postby leenew » Mon Feb 17, 2014 4:09 pm

Hi Paul, :D
Would you mind awfully checking your P.M.'s
Thanks,

Lee.

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Mon Feb 17, 2014 7:30 pm

Col wrote:I've made one :mrgreen:

Nice one Colin =D>

Your infectious enthusiasm might well inspire me to upgrade UPURS to a long-overdue 5.1 and sort out a few niggles that have been reported - it is only a few but I keep meaning to get on the case. If any users have any gripes or enhancement ideas, can you shout up on here over next few weeks plz..... 8)

Lee, nicely on topic - if you're thinking of equipping with UPURS, the UPXROM ? command will list any SWR in a Beeb :D

Here showing your Holy Grail of slots 4 & 5 as an example...... :wink:

UPXROM.png

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Sun Oct 12, 2014 10:00 pm

Elsewhere I suggested that I would post a development version of the Electron version of UPCFS (which is part of the UPURS rom) for Colin, Stuart and anyone else to have a play with. Attached then is an UPURS 1.0E rom image containing UPCFS development version 1.dE. This is essentially identical in functional terms to the current release version and to keep things simple, I've removed any code changes I have been playing with and limited the changes to the location in memory of the fast serial buffer and the rom switching code. These are now both embedded around the centre of the CPU Stack in an area that I have slowly refined to one which appears to be least used by a large sample of games during their loading sequences. (It doesn't matter if UPCFS is overwritten after loading because it's then finished with.)

Basically then Colin and Stuart (and anyone else?), just try to get a feel for whether this is an improvement or not. Through much iterative testing, Paul V and I were able to get the Beeb up to over %80+ games compatibility I'd say but the Elk seems to be a much tougher nut to crack with every bit of memory being hunted down, especially during loading. (A lack of the 1K Mode 7 seems to be partly be responsible.)

No rush, whenever suits and it can be a long job anyway.... 8)


UPURS 1.0E + UPCFS 1.0dE.zip
(5.2 KiB) Downloaded 62 times

User avatar
aerworuld
Posts: 1689
Joined: Tue Sep 25, 2012 8:40 pm
Location: Basingstoke, Hampshire
Contact:

Re: Wires? Pah.....

Postby aerworuld » Mon Oct 13, 2014 3:36 pm

Nice one Martin 8) will make a start of some games testing :wink:

Would it be beneficial to make a list of games i have actually tried and annotate whether they play ball or not?

Stuart :)

edit, me being me, I couldn't wait and have started a list :lol: it is in this thread.

User avatar
CMcDougall
Posts: 5623
Joined: Wed Feb 02, 2005 3:13 pm
Location: Shadow in a Valley of Scotland

Re: Wires? Pah.....

Postby CMcDougall » Mon Oct 13, 2014 9:25 pm

Many thanks for the new elk UPCFS version Martin =D> =D> =D>

Will give it a go very soon :wink:

Wish I could mind all the ones that did not work with the now older version #-o so that you know your new code will give you even more games to play, as I know you ARE really a hardcore elk gamer 8)
ImageImageImage

User avatar
george.h
Posts: 1027
Joined: Wed Apr 13, 2011 5:32 pm
Location: Chelmsford Essex

Re: Wires? Pah.....

Postby george.h » Tue Oct 14, 2014 11:46 am

I'm sure there is something probably buried in the 27 (!!) pages of this thread, but has anyone used one of the many TTL to RS-232 converters available on fleabay (based on the ubiquitous MAX232) for the PC end of a UPURS cable?

I've got four around which I bought (for work) to do level translating on a couple of old Sprecher & Schuh SE290 PLCs. I'm tempted to give one a try with UPURS so just wondering if the slew rate on them would be good enough?

George
:D
Pic Caption: "One day son, this will all be yours..."

User avatar
1024MAK
Posts: 6798
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...

Re: Wires? Pah.....

Postby 1024MAK » Tue Oct 14, 2014 7:46 pm

@ George - why do you want a level converter? UPURS is designed to connect between a Beeb user port / Elk user port and a PC.

Answers please (but not on a post card :lol: )...

Mark
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk NOW!
BeebWiki‬ - for answers to many questions...

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Tue Oct 14, 2014 7:52 pm

Ha ha - me and Mark always seem to wait all day and then post synchronously... :lol:

I've never tried an active converter myself, I decided that I could suitably manage the RS232 levels with resistors and diodes for modern equipment such as PC legacy ports and USB converters. There's no reason why a MAX232 shouldn't work and specifically in terms of slew rate requirements, 115K Baud isn't especially fast (except in Beeb transfer-rate terms :wink:). Furthermore, I designed my bit-banging algorithm to be level sensitive in the centre of each bit period rendering it largely immune to rise and fall times.

What is the terminal equipment you have in mind?

User avatar
george.h
Posts: 1027
Joined: Wed Apr 13, 2011 5:32 pm
Location: Chelmsford Essex

Re: Wires? Pah.....

Postby george.h » Tue Oct 14, 2014 9:26 pm

1024MAK wrote:@ George - why do you want a level converter? UPURS is designed to connect between a Beeb user port / Elk user port and a PC.

Answers please (but not on a post card :lol: )...

Mark

Erm..... 'cos I have them.. :lol: (and work paid for 'em)

MartinB wrote:What is the terminal equipment you have in mind?

Mainly older laptops (Dell Latitude PIII, Toshiba Libretto 110CT) so they have pucka serial ports.

I guess it is one of those "why climb a mountain" type things.... :lol:
Pic Caption: "One day son, this will all be yours..."

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Tue Oct 14, 2014 9:34 pm

George wrote:I guess it is one of those "why climb a mountain" type things....
Because Julie Andrews says you must... :-k

(...and in which case, don't forget to ford every stream while you're about it :- )

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Sun Mar 29, 2015 9:36 pm

As requested by dp11 over on the recent WiFi gadget thread, attached are two of the base utilities from the UPURS suite that between them contain my bit-banged RS232 Tx and Rx engine. These two examples are the disc-based versions of these particular utils and there are some differences for the rom-based equivalents but not in terms of the core technical functionality.

Over time, I've tended to migrate to the simplest text editors I can find - it used to be PSPad and is now Notepad 2 so the code probably needs to be viewed in something equally simple. Most importantly, Tabs must be set to 10 or it’ll be a mess because I'm afraid there are a mixture of Tabs and White Spaces in the text #-o

The most difficult of the Tx/Rx pair is Rx (PC to Beeb) and for a quick look, this is pasted below. It is very important that anyone thinking about modifying the code is fully conversant with the nature of RS232 in terms of the protocols, bit timings for given baud rates (including allowable tolerances), PC Tx byte overrun and the relationships between the data and CTS/RTS handshake control signals. I recommend not diving in with thoughts of apparent easy-win cycle or byte saving within the core routines because it really isn’t that simple – changing an instruction at a critical point (just about everywhere) and risking adding or removing just one cycle will likely terminally break the engine. The routine below should also be reviewed in the context of the full listing for UPSSD because some things might not make sense. Hmmm..., possibly even all of it :shock: :lol:

Experience has taught me that it is necessary for me to point these things out…. :roll: [-X :wink:


Code: Select all

\-------------------------------------------------------------------------------
\Core User Port 115200 baud RS232 receive routine. Fills the buffer at [buffer]
\with <16384 + overrun> bytes (= 6 tracks). Cycle critical code.

getbytes  CLI                           \enable user keypress interrupt
          LDA       #0                  \zero temporary store
          STA       temp
          JMP       sb1                 \and goto loop wait for Start bit

sb2       LDA       upiob               \during overrun, i.e. immediately after
          BMI       T0                  \CTS dropped, wait for Start bit via
          LDA       upiob               \delay list reads
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0
          LDA       upiob
          BMI       T0

rxrti     LDA       #0                  \if no start bit detected, ensure
          STA       upiob               \CTS is reset
          STY       ylast               \save last received byte pointer
          RTS                           \and return

                                        \immediate post-CTS set start bit loop
sb1       LDA       #$40                \assert CTS
          STA       upiob
idle      LDA       upiob               \wait for Tx line idle (low)
          BMI       idle

sb3       LDA       upiob               \wait loop for start bit
          BPL       sb3                 \only exited via a Strat bit detection
                                        \or a terminating user keypress

                                        \start bit detected...
T0        INY                           \increment byte buffer storage pointer
          BEQ       T0a                 \if exceeded 255, goto increment page
          BIT       0                   \dummy cycle expend
          LDA       #1                  \dummy cycle expend and branch trigger
          BNE       wcts                \goto refresh CTS

T0a       INC       sbufh               \increment track buffer page pointer
          INX                           \increment CTS control counter (-ve up)

wcts      NOP                           \dummy cycle expend
          LDA       upiob               \early read of bit 0

          STX       upiob               \X page counter maintains or drops CTS

          ASL                           \remaing bit 0 processing
          LDA       #0
          ROR
                                        \remaining bit 1 to bit 7 reads
          STA       temp                \bit 1
          LDA       upiob
          ASL
          LDA       temp
          ROR
          NOP

          STA       temp                \bit 2
          LDA       upiob
          ASL
          LDA       temp
          ROR

          STA       temp                \bit 3
          LDA       upiob
          ASL
          LDA       temp
          ROR
          NOP

          STA       temp                \bit 4
          LDA       upiob
          ASL
          LDA       temp
          ROR

          STA       temp                \bit 5
          LDA       upiob
          ASL
          LDA       temp
          ROR
          NOP

          STA       temp                \bit 6
          LDA       upiob
          ASL
          LDA       temp
          ROR
          LSR

          STA       temp                \bit 7
          LDA       upiob
          AND       #$80
          ORA       temp
          EOR       #$FF                \RS232 line data is inverted

          STA       (sbufl),Y           \save byte in buffer
          CPX       bpgcnt              \test for CTS de-asserted
          BCS       sb3                 \CTS still set, goto loop for start bit
          JMP       sb2                 \else CTS reset, goto delay list reads

\-------------------------------------------------------------------------------


upssds_4dot0B.txt
(18.96 KiB) Downloaded 58 times

upxssds_4dot0B.txt
(22.38 KiB) Downloaded 55 times

Coeus
Posts: 474
Joined: Mon Jul 25, 2016 11:05 am

Re: Wires? Pah.....

Postby Coeus » Tue Sep 27, 2016 10:40 am

MartinB wrote:...Best of all, now we've got legacy support, it's a true 'authentic' add-on in that there's nothing in the system that couldn't have been done back in the day :wink:


Which obviously invites one to consider why it wasn't done. I think ideas don't generally occur in a vacuum, they rely on things that have gone before. Casting my mind back, among those of us who had a BBC micro, exchanging discs was the main mechanism for transferring data from one machine or one person to another. The only interest in serial lines was for getting onto bulletin boards but that was very limited by the cost of phone calls. I wonder if it was the same in the mainframe world? Did people ship tapes around rather than attempt to make serial lines go quickly? I guess it's the old bandwidth vs. latency argument. I know later in the 1980s, at work, finding that while both the company mainframes and our Unix workstations all had some kind of networking there were no protocols in common so getting data from one of the mainframes was indeed via 1/2 tape. It was hailed as a major step forwards when the mainframes starting talking the IP protocols.

So, thinking of what one would have done with this had in been available back in the day, i.e. what would one connect to the other end the first thing that comes to mind is another BBC micro. Has anyone tried this? I guess it's a more of a curiosity than of practical value. I can't do so myself as I only have the one BBC micro.

User avatar
PitfallJones
Posts: 431
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

Re: Wires? Pah.....

Postby PitfallJones » Tue Feb 28, 2017 9:47 pm

Did you ever have the Pico-Plug working through the serial port on the BBC?
Or was it only with a UPURS cable to the user port?
Thanks
PJ

User avatar
MartinB
Posts: 4556
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Wires? Pah.....

Postby MartinB » Tue Feb 28, 2017 10:10 pm

Hi PJ :)

No, not really - the Pico plug was about innovating PC-to-Beeb comms via Bluetooth and I originally went for parallel because the Beeb R423 port is somewhat pants above 9600 baud. I then got into the science of high speed serial bitbanging but couldn't get the Pico Plug to play bi-directionally over it's Centronics interface and so ultimately, I abandoned Bluetooth, developed UPURS and the rest, as they say, is history! I can still send disc images to a Beeb from Bluetooth devices [such as that HP PDA] using the Pico Plug but its just for my own amusement really :wink:

I'm now a big fan of I2C because the world is pretty much your oyster with the infinite range of devices costing just pennies and I don't doubt wireless comms, generic RF or Bluetooth, would be eminently doable. I'll certainly pursue this one day when I get through my other higher priority commitments... (Dave H - not forgotten :wink:)


Return to “software & utilities for the pc, mac or unix”

Who is online

Users browsing this forum: No registered users and 1 guest