<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 04 Mar 2008 01:25:09 +0000
From   : jgh@... (Jonathan Graham Harston)
Subject: TUBE chip, accessing 'Parasite' side

Johan Heuseveldt wrote:
> I'm sort of 'designing' a CoProcessor with a 6809 - 2 MHz version (68B09).
> I refound the schematics for the internal CoPro 80186, but couldn't find
> anything else. With my own 6502 external 2ndProcessor, I've investigated a
 
http://mdfs.net/Tube and follow the link to Circuit Diagrams which
will take you to http://mdfs.net/Info/Comp/BBC/Circuits You will
also find the circuit diagram for the Acorn 6809 System CPU card.
 
Note that the Tube connector pin numbers are the pin numbers of
the ribbon cable header on the CoPro PCB, *NOT* the pin numbers of
the plug at the host computer end. You have to rotate it to get
the "correct" numbers, ie 1->40, 2->39, etc.
 
At http://mdfs.net/Tube/6809 you will find information on other
home-made 6809 CoPros. Particularly interesting is Graham Toal's
at http://mdfs.net/Tube/6809/Toal which actually uses the Tube ULA
and implements the Tube API. It is incredibly simple: 6809 CPU,
64K SRAM, Tube ULA and PAL to decode addresses.
 
I'd recommend a similar design, but also add a ROM. Graham used a
battery-backed SRAM, programmed it in a computer, unplugged it,
and plugged it into the CoPro!
 
I'd recommend the following design, based on the 6502 CoPro which
is a R/W memory-mapped CPU, instead of a RD/WR IO-mapped CPU:
 
 +--------+     +------+    +-----+            +------+
 |      D0|=====| 64K  |====|  4K |============| Tube |
 | 6809 ..|     | SRAM |    | ROM |            | ULA  |
 |      D7|=====|      |====|     |============|      |
 |        |     |      |    |     |            |      |
 |      A0|=====|A0    |====|A0   |============|PA0   |
 |      ..|     |      |    |..   |            |..    |
 |     A15|=====|A15   |====|A11  |============|PA2   |
 |        |     |      |    +-----+            |      |
 |     W/R|-----|W/R   |-----+---------+---\   |      |
 |        |     +------+     |         |NAND>--|PRD   |
 |       E|--------------+---|---------+---/   |      |
 |        |              |   |  +--\           |      |
 |        |              |   +--|NOT>--+---\   |      |
 |        |              |      +--/   |NAND>--|PWR   |
 |        |              +-------------+---/   |      |
 |     NMI|------------------------------------|PNMI  |
 |     IRQ|------------------------------------|PIRQ  |
 |     RST|------------------------------------|PRST  |
                                               |      |
                                               |      |
A15---------+-----\                            |      |
 ..         |      |                           |      |
 A9---------+      |                           |      |
 A7---------+      |                           |      |
 ..         |13-NAND>----+---------------------|PCS   |
 A3---------+      |     |  +--\   +------+    +------+
     +--\   |      |     ---|NOT>--|RESET |--->RAM CS
 A8--|NOT>--+-----/         +--/   |TOGGLE|--->ROM CS
     +--/                          +------+
 
If you look at the 6502 circuit diagram, you'll see that:
 
All access to &FEE0-&FEFF goes to the Tube ULA
All writes (other than the Tube ULA) goes to RAM
After RESET, all reads (other than the Tube ULA) goes to ROM
After a Tube ULA access, all reads (other than Tube) goes to RAM
 
In other words, on RESET, the memory map is filled with
reflections of the ROM. The startup code copies the ROM to RAM by
effectively doing FOR A=&F000 TO &FFFF:?A=?A:NEXT. Any access to
the Tube ULA toggles off ROM access so all further reads come from
RAM.
 
> few things. It appears that the power connections to the TUBE chip are more
> advanced than I first assumed, which makes sense as this chip - besides the
 
The Tube ULA is always powers from the host (the Beeb) as a host
peripheral. The parasite system has its own power supply which
powers everything else, though all parasite systems have links to
allow the parasite to be powered from the host instead. On the
external 6502 you would unplug the power connectors and make LINK
1.
 
I've had a Z80 CoPro inside a Beeb for years like this.
 
Graham Toal also wrote some 6809 client code, but his only source
is in a meta-language. I am gradually translating this into 6809
assembler, and making the APIs available via defined calls. Do you
have any preferences? The 6809 has three SWI entries, so I could
use SWI 0-15, SWI2 0-15 or SWI3 0-15. Or any other block of
sixteen entries (eg SWI2 &F0-&FF).
 
> doesn't have pin numbers
 
Crumbs, you're right. Anybody have a PDF-to-editable document
convertor so App004.pdf can be edited and corrected?
 
     +------------+
    1|GND1   ~PNMI|40
    2|Vcc1   ~HIRQ|39
    3|FVcc     DRQ|38
    4|Vcc2   ~PRST|37
    5|GND2   ~PIRQ|36
    6|HD0      PD0|35
    7|HD1      PD1|34
    8|HD2      PD2|33
    9|HD3      PD3|32
   10|HD4      PD4|31
   11|HD5      PD5|30
   12|HD6      PD6|29
   13|HD7      PD7|28
   14|HA0      PA0|27
   15|HA1      PA1|26
   16|HA2      PA2|25
   17|R/~W   ~DACK|24
   18|~HCS    ~PWR|23
   19|theta2  ~PRD|22
   20|~HRST   ~PCS|21
     +------------+
        TUBE ULA
-- 
J.G.Harston - jgh@...                - mdfs.net/User/JGH
BBC BASIC for 30+ platforms - http://mdfs.net/Software/BBCBasic
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>