Tube coding 101! Help wanted please.

bbc micro/electron/atom/risc os coding queries and routines
User avatar
hoglet
Posts: 9441
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Tube coding 101! Help wanted please.

Post by hoglet » Thu Sep 17, 2020 3:38 pm

rodders wrote:
Thu Sep 17, 2020 3:32 pm
The wiki says *CONFIGURE NOTUBE should do the same as *FX 151,230,14 but that doesn't seem to be the case.
They both disable the Co Processor, but do work differently.

*FX 151,230,14 selects a special Co Processor (call the the Null Co Processor) which tricks the MOS into thinking there is nothing present.

The *FX setting is not remembered across power cycles, but you can set the default value by editing the cmdline.txt file on the SD Card.

For example, this will cause 14 to be the default on power up:

Code: Select all

copro=14 copro1_speed=3 copro3_speed=4 tube_delay=0 elk_mode=0
Dave

User avatar
jgharston
Posts: 4120
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Tube coding 101! Help wanted please.

Post by jgharston » Thu Sep 17, 2020 8:07 pm

jgharston wrote:
Mon Jul 13, 2020 10:07 am
In the standard Tube hardware API, even addresses are read-only status ports, odd addresses are read/write data ports (except &x0 which is writable to control the hardware setup).
...and checking the MOS 1.23 code reminded me, the *X command writes a zero to TUBE+8 (ie &FEE8) and then loops forever. If you don't have any hardware checking for access to TUBE+8, this will simply write to the Tube control register at TUBE+0. Writing a zero is a null operation as it clears (b7=0) those functions set by b6-b0, ie none of them!

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

User avatar
hoglet
Posts: 9441
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Tube coding 101! Help wanted please.

Post by hoglet » Thu Sep 17, 2020 9:11 pm

jgharston wrote:
Thu Sep 17, 2020 8:07 pm
...and checking the MOS 1.23 code reminded me, the *X command writes a zero to TUBE+8 (ie &FEE8) and then loops forever.
What's this actually trying to do then?

User avatar
BigEd
Posts: 3428
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Tube coding 101! Help wanted please.

Post by BigEd » Sat Sep 19, 2020 11:32 am

Just for the record, Dave pointed me at the thread with the resolution to the X command mystery.
hoglet wrote:
Thu Sep 17, 2020 9:11 pm
jgharston wrote:
Thu Sep 17, 2020 8:07 pm
...and checking the MOS 1.23 code reminded me, the *X command writes a zero to TUBE+8 (ie &FEE8) and then loops forever.
What's this actually trying to do then?

User avatar
jgharston
Posts: 4120
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Tube coding 101! Help wanted please.

Post by jgharston » Sun Sep 20, 2020 9:28 am

BigEd wrote:
Sat Sep 19, 2020 11:32 am
Just for the record, Dave pointed me at the thread with the resolution to the X command mystery.
hoglet wrote:
Thu Sep 17, 2020 9:11 pm
jgharston wrote:
Thu Sep 17, 2020 8:07 pm
...and checking the MOS 1.23 code reminded me, the *X command writes a zero to TUBE+8 (ie &FEE8) and then loops forever.
What's this actually trying to do then?
Some documentation suggests it was supposed to be to select between multiple Tubes. *X, press Break, different CoPro. Or *X, hardware causes a RESET, different CoPro. There doesn't seem to be any extant hardware that actually responds to it.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

User avatar
hoglet
Posts: 9441
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Tube coding 101! Help wanted please.

Post by hoglet » Sun Sep 20, 2020 9:43 am

jgharston wrote:
Sun Sep 20, 2020 9:28 am
There doesn't seem to be any extant hardware that actually responds to it.
According to the BBC Micro mailing list, back in 1993, someone called Ian Stephenson was in possession of a Tube Spltter schematic.
>Date: Mon, 12 Jul 93 11:21:43 +0100 (BST)
>From: "I Stephenson" <ian@ohm.york.ac.uk>

>I have before me a (slightly illicit) circuit diagram for the Acorn Tube
>Spiltter. This (officially non-existant) device (which is curently sitting here
>looking dead) plugs into the Tube, and allows two 2nd processors to be
>attached, and switched by software.
If it's only toggling between two devices, this would be quite easy to recreate.

Interestly, the googling indexing of your archive failed to find this message:
https://www.google.com/search?q=splitte ... 2FBBCMicro

Though it is there:
http://mdfs.net/Archive/BBCMicro/1993/07/12/112143.htm

Dave

dp11
Posts: 1199
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Tube coding 101! Help wanted please.

Post by dp11 » Sun Sep 20, 2020 11:15 am

I had a prototype tube splitter back in the day. It was really meant for the ABC workstation I think. It was sort of L shaped around a 6502 second processor.

Post Reply

Return to “programming”