Expand description

A bus device for ZX Interface I.

I/O Port 0xe7.

Used to send or receive data to and from the microdrive.

Accessing this port will halt the Z80 until the Interface I has collected 8 bits from the microdrive head; therefore, if the microdrive motor isn’t running, or there is no formatted cartridge in the microdrive, the Spectrum hangs. This is the famous ‘IN 0 crash’.

I/O Port 0xef.

Bits DTR and CTS are used by the RS-232 interface.

The WAIT bit is used by the ZX Network to synchronize incoming bytes. It is being activated just before reading bits of each incoming byte.

GAP, SYNC, WR_PROT, ERASE, R/W, COMMS CLK, and COMMS DATA are used by the microdrive system.

       Bit    7   6    5    4    3    2    1     0
            +---------------------------------------+
        READ|   |   |    |busy| dtr |gap| sync|write|
            |   |   |    |    |     |   |     |prot.|
            |---+---+----+----+-----+---+-----+-----|
       WRITE|   |   |wait| cts|erase|r/w|comms|comms|
            |   |   |    |    |     |   | clk | data|
            +---------------------------------------+

I/O Port 0xf7.

If the microdrive is not being used, the COMMS DATA output selects the function of OUT bit 0 of 0xf7 port:

       Bit      7    6   5   4   3   2   1       0
            +------------------------------------------+
        READ|txdata|   |   |   |   |   |   |    net    |
            |      |   |   |   |   |   |   |   input   |
            |------+---+---+---+---+---+---+-----------|
       WRITE|      |   |   |   |   |   |   |net output/|
            |      |   |   |   |   |   |   |   rxdata  |
            +------------------------------------------+

If a 0 was written to COMMS DATA the lowest bit is written to the net output, if 1 was written to COMMS DATA the lowest written bit is rxdata. !

Re-exports

pub use crate::serial::SerialPortDevice;
pub use crate::serial::DataState;
pub use crate::serial::ControlState;
pub use crate::storage::microdrives::*;
pub use crate::network::zxnet::*;

Structs

The RS-232 serial port remote device.
Connects the ZX Interface 1 I/O port emulator as a BusDevice.

Constants

Spectrum’s BAUD RATES.
A default BAUD RATE used by Spectrum.