<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 26 Aug 1997 10:48:20 +0100 (BST)
From   : Mark Cooke <mpc@...>
Subject: Summary: Tube Hardware

Thanks to everyone who mailed me with information about the 6502Tube.

A summary of the available registers follows:

Table 1 Host System Registers

Address         Read
000             Status flags and Register 1 flags
001             Register 1 (24 byte FIFO read only)
010             Register 2 flags
011             Register 2 (1 byte read only)
100             Register 3 flags
101             Register 3 (2 byte FIFO only)
110             Register 4 flags
111             Register 4 (1byte read only)

Address         Write
000             Status flags
001             Register 1 (1 byte write only)
010             - - - - - - 
011             Register 2 (1 byte write only)
100             - - - - - - 
101             Register 3 (2 byte FIFO write only)
110             - - - - - -
111             Register 4 (1 byte write only)Table 2 Parasite System
Registers 

Address         Read
000             Status flags and Register 1 flags A1 F1 P V M J I Q
001             Register 1 (1 byte read only)
010             Register 2 flags
011             Register 2 ( 1 byte read only)
100             Register 3 flags
101             Register 3 (2 byte FIFO read only)
110             Register 4 flags
111             Register 4 (1 byte read only)

Address         Write
000             - - - - - -
001             Register 1 (24 byte FIFO write only)
010             - - - - - -
011             Register 2 (1 byte write only)
100             - - - - - -
101             Register 3 (2 byte FIFO write only)
110             - - - - - -
111             Register 4 (1 byte write only)

---

The Host writing to Register 1 raises an IRQ in the Parasite.
The Host writing to Register 3 can cause an NMI in the Parasite, and can
                               be programmed to be 1 or 2 bytes deep.
The Host writing to Register 4 raises an IRQ in the Parasite.

It looks like these are the same for Parasite writing to host, but the
documentation I have isn't 100% clear (there are IRQ and NMI lines from
the parasite, so it is possible for the parasite to interrupt the host). 
I'll be experimenting later having abstracted my 6502 emulation into C++
classes, and organized a structure along the lines of: 

CBase6502
|
+-- CHost6502
|   |
|   +-- CA6502
|   |
|   +-- CB6502
|
+-- CTube6502

Basic structure is that CBase6502 provides the 6502 emulation code, and
two overridable functions for reading and writing to memory. Child classes
override these to provide the appropriate I/O.  I'll be doing the same for
the C6522 and so on.

Hence, it's fairly easy to provide a tube setup - though I'll have to
fudge the boot rom in the tube for the time being.

More on the tube when I've played around with it some more.

Regards,

Mark

Mark Cooke                  The views expressed above are mine and are not
Systems Programmer          necessarily representative of university policy
University Of Birmingham    URL: http://www.sr.bham.ac.uk/~mpc/



<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>