
So, on the same day that scientists created life in the laboratory, I did this...
What the...?
Answers on a postcard to MartinB, c/o STH
MartinB wrote:This wireless RS232 facility might appeal to people such as irrelevant Rob (irrelevant) who presumably uses serial data for a lot of his modem etc. work?
Code: Select all
Beeb Signal Beeb Pin Centronics Signal PC Pin
D0 6 Data Bit 0 2
D1 8 Data Bit 1 3
D2 10 Data Bit 2 4
D3 12 Data Bit 3 5
D4 14 Data Bit 4 6
D5 16 Data Bit 5 7
D6 18 Data Bit 6 8
D7 20 Data Bit 7 9
CB1 2 /STROBE 1
CB2 4 BUSY 11
+5v 3 /FAULT 32
0v 9 POUT 12
The remaining Beeb 0v lines will naturally connect in the Centronics IDC to PC 0v lines at 19, 20, 21 etc.
Code: Select all
10 CFLAG=&70:?&70=0 \character rx'd flag, init to zero
20 CSTORE=&71:?&71=0 \rx'd character store, init to zero
100 FOR I%=0 TO 3 STEP3
110 P%=&B00 \code @ $B00 (function key area)
120 [OPTI%
125 LDA&FE6D:AND#&10:BEQ FIN \test IFR bit 4 for CB1 interrupt which
\is STROBE (lo) - if not exit no action
130 LDA&FE60:STA CSTORE:INC CFLAG \STROBE (CB1) rx'd, get character from
\Input Reg B, save in CSTORE and set
\rx'd flag (CFLAG) by increment
140 .FIN LDA&FC:RTI \IRQ exit duplicating system code
150 ]
160 NEXT I%
170 PRINT:PRINT"Ready..."
200 &FE62=0 \Data Direction Reg B = 0 = 8 Inputs
210 V%=?&FE6C \get a copy of Peripheral Control Reg
\which sets the behaviour of Cx1 & Cx2
220 V%=V% AND &0F \clear bits 7-4 (CBn) leaving bits 3-0
\(CAn) untouched
230 V%=V% OR &80 \Bit 4=0 (CB1:STROBE) which is -ve edge
\and bits 7-5 = %100 which sets CB2 to
\'Handshake' mode
240 ?&FE6C=V% \write the CB1/CB2 settings to the PCR
250 ?&206=0:?&207=&B \point IRQ2V to our code at $0B00
260 ?&FE6E=?&FE6E OR &10 \Enable CB1 interrupt in IER by setting
\bit 4 (Note bit 7 must be a '1' to do
\this (is set when the IER is read)
300 ?&FE60=0 \perform a dummy write to the input
\register to initiate 'Handshake'
\sequence
310 IF ?CFLAG=0 THEN 310 \and wait for a character to
\be rx'd by polling CFLAG <> 0
320 PRINT CHR$(?CSTORE); \print the rx'd character to screen
330 ?CFLAG=0 \reset chr rx'd flag
340 GOTO 300 \and goto get next character
Not sure what you mean by that - yes, for any given use the port needs to be set up as required but here, once done, we only do a write to $FE60 to request a byte and an IRQ sync'd read of $FE60 to get the byte.For a "user port" it sure is painful to program.
There are of course many ways to control parallel transfer but as ever, I'm trying to offer something that requires only minimal effort and expense such that it remains within the reach of as many people as possible. If we start adding a bespoke hardware interface then it'll just become a curiosity and folk might just as well use one of the many removable media options.I'm sure a device in the 1mz bus would be faster, at the expense of requiring actual electronics.
You can do that already, just use the obscure dos commands that redirect CON: to PRN: . What you type in dos gets sent down the printer cable. As google sucks I have to go get the dead tree reference book.MartinB wrote: I could write software for the PC end which would directly control the LPT port and improve the speed but in the modern versions of Windows (any maybe other OS), direct hardware control is a little fraught and again this would reduce flexibility.
One the software is finished I will have a system where I throw a disc into the Beeb, type a * command and from wherever I'm sitting with my PC I can send an image over in the backgound and still carry on working in the meantime. Nice, no?
I think you perhaps misunderstood my point. As designed, you can use any PC without any software provided it has a parallel port and you don't even need the latter if the PC has Bluetooth and you add the Pico Plug to the Beeb.You can do that already, just use the obscure dos commands that redirect CON: to PRN:
Actually you missed my point, which is by redirecting the PC keyboard to the beeb, you can issue extra commands. Might be handy if say you're bbc doesn't have a keyboard and you plan to use it as a L3 file server.MartinB wrote:I think you perhaps misunderstood my point. As designed, you can use any PC without any software provided it has a parallel port and you don't even need the latter if the PC has Bluetooth and you add the Pico Plug to the Beeb.You can do that already, just use the obscure dos commands that redirect CON: to PRN:
Using the parallel port through the cable is as easy as using copy/b <file> lpt1: in a command prompt window or through real DOS.
[snip]
So, even given those two faux-pas, did you get it working? (Although I really don't see how it could have worked with the Beeb User Port connector arse-about-face)