Спецификация на сетевую карту для zx-bus
wiznet W5300, подключенный пространством регистров на память Z80 (вместо ROM).
Используется возможность zx-bus подменять ROM на устройство ZX-BUS.
программный интерфейс:
==========================================================================================================
Базовый адрес (младшие 8 бит): #AB
Порты #00AB..#7FAB -- либо регистр данных sl811 (для возможности использовать
INIR/OTIR -- предекремент

, либо часть регистрового пространства w5300 (определяется
битом w5300_ports).
#80AB - регистр адреса sl811 (LD BC,#80AB: OUT (C),reg: INIR/OTIR). НЕДОСТУПЕН,
если w5300_ports=1.
#83AB, #82AB, #81AB -- управляющие регистры карты.
==========================================================================================================
#83AB (порт управления прерываниями и сбросом):
бит 0,ro: 1 -- установлен сигнал /INT от w5300 (/INT=0)
0 -- не установлен
бит 1,ro: 1 -- установлен сигнал INTRQ от sl811 (INTRQ=1)
0 -- не установлен
бит 2,rw: 1 -- сигнал /INT от w5300 участвует в формировании внутреннего сигнала прерывания
0 -- не участвует
0 после сброса
бит 3,rw: 1 -- сигнал INTRQ от sl811 участвует в формировании внутреннего сигнала прерывания
0 -- не участвует
0 после сброса
бит 4,rw: управление сбросом w5300:
0 -- установлен сброс для w5300 (/RESET=0)
1 -- не установлен
0 после сброса
бит 5,rw: управление сбросом sl811:
0 -- установлен сброс для sl811 (nRST=0)
1 -- не установлен
0 после сброса
бит 6,rw: 1 -- внутренний сигнал прерывания формирует /INT на zx-bus (устанавливает в 0)
0 -- не формирует
0 после сброса
бит 7,ro: состояние внутреннего сигнала прерывания:
0 -- нет сигнала (всегда 0, если биты 0 и 1 ==0)
1 -- есть сигнал
==========================================================================================================
#82AB (порт управления w5300):
биты 0..1,rw: область адресного пространства zxbus, где происходит маппинг ROM на регистры w5300:
2'b00 -- #0000..#3FFF
2'b01 -- #4000..#7FFF
2'b10 -- #8000..#BFFF
2'b11 -- #C000..#FFFF
2'b00 после сброса. Для клонов, которые позволяют иметь ROM только в #0000..#3FFF,
устанавливать в 2'b00.
бит 2,rw: 1 -- разрешить подстановку регистров w5300 вместо ROM
0 -- запретить
0 после сброса
бит 3,rw: 1 -- производить инверсию A0 на w5300
0 -- не производить
0 после сброса
бит 4,rw: 1 -- подстановка адресного пространства w5300 в порты #00AB..#7FAB.
при этом регистр данных sl811 в этих портах недоступен.
применяется для работы в w5300 в indirect mode.
0 после сброса
ВНИМАНИЕ: биты 2 и 4 этого порта не могут одновременно быть в 1.
биты 5..7,rw: старшие 3 бита адреса w5300 при обращении к ней через порты #00AB..#7FAB.
при этом младшая часть формируется из битов 14..8 адреса порта, бит 0
адреса w5300 опционально инвертируется, в зависимости от бита 3 данного
порта.
==========================================================================================================
#81AB (порт управления sl811):
бит 0,rw: управление сигналом M/S sl811:
0 -- M/S=0 (хост)
1 -- M/S=1 (девайс)
1 после сброса компьютера, сброс sl811 битом 5 порта $83AB на
этот сигнал не влияет (его можно переключать под сбросом sl811).
сигнал M/S также управляет подачей питания на УСБ-разъём:
0 -- питание подано,
1 -- питание отсутствует.
бит 1,ro: наличие 5в питания на УСБ-разъёме. Имеет смысл проверять ТОЛЬКО когда M/S=1
и sl811 под сбросом, чтоб определить, подключены ли мы к хосту или к девайсу.
биты 2..7: не используются, при чтении игнорировать, при записи устанавливать в 0