Rev 50 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?
Спецификация на сетевую карту для zx-bus
wiznet W5300, подключенный пространством регистров на память Z80 (вместо ROM).
Используется возможность zx-bus подменять ROM на устройство ZX-BUS.
программный интерфейс:
==========================================================================================================
Базовый адрес (младшие 8 бит): #AB
Порты #00AB..#7FAB -- либо регистр данных sl811 (для возможности использовать
INIR/OTIR -- предекремент B), либо часть регистрового пространства 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
адресное пространство w5300 мапится в пространство zx-bus ROM 16k так:
zx-bus ROM | w5300
------------+-----------------------------
#0000-#1FFF | повторение 8 раз
| неизменного адресного пр-ва
| w5300 размером #400 байт
------------+-----------------------------
------------+-----------------------------
#2000-#21FF | повторение 256 раз регистров
| w5300 с адресами #22E,#22F
| (socket 0 TX FIFO register)
------------+-----------------------------
#2200-#23FF | повторение 256 раз регистров
| w5300 с адресами #26E,#26F
| (socket 1 TX FIFO register)
------------+-----------------------------
#2400-#25FF | повторение 256 раз регистров
| w5300 с адресами #2AE,#2AF
| (socket 2 TX FIFO register)
------------+-----------------------------
#2600-#27FF | повторение 256 раз регистров
| w5300 с адресами #2EE,#2EF
| (socket 3 TX FIFO register)
------------+-----------------------------
#2800-#29FF | повторение 256 раз регистров
| w5300 с адресами #32E,#32F
| (socket 4 TX FIFO register)
------------+-----------------------------
#2A00-#2BFF | повторение 256 раз регистров
| w5300 с адресами #36E,#36F
| (socket 5 TX FIFO register)
------------+-----------------------------
#2C00-#2DFF | повторение 256 раз регистров
| w5300 с адресами #3AE,#3AF
| (socket 6 TX FIFO register)
------------+-----------------------------
#2E00-#2FFF | повторение 256 раз регистров
| w5300 с адресами #3EE,#3EF
| (socket 7 TX FIFO register)
------------+-----------------------------
------------+-----------------------------
#3000-#31FF | повторение 256 раз регистров
| w5300 с адресами #230,#231
| (socket 0 RX FIFO register)
------------+-----------------------------
#3200-#33FF | повторение 256 раз регистров
| w5300 с адресами #270,#271
| (socket 1 RX FIFO register)
------------+-----------------------------
#3400-#35FF | повторение 256 раз регистров
| w5300 с адресами #2B0,#2B1
| (socket 2 RX FIFO register)
------------+-----------------------------
#3600-#37FF | повторение 256 раз регистров
| w5300 с адресами #2F0,#2F1
| (socket 3 RX FIFO register)
------------+-----------------------------
#3800-#39FF | повторение 256 раз регистров
| w5300 с адресами #330,#331
| (socket 4 RX FIFO register)
------------+-----------------------------
#3A00-#3BFF | повторение 256 раз регистров
| w5300 с адресами #370,#371
| (socket 5 RX FIFO register)
------------+-----------------------------
#3C00-#3DFF | повторение 256 раз регистров
| w5300 с адресами #3B0,#3B1
| (socket 6 RX FIFO register)
------------+-----------------------------
#3E00-#3FFF | повторение 256 раз регистров
| w5300 с адресами #3F0,#3F1
| (socket 7 RX FIFO register)
------------+-----------------------------
логика преобразования адресов:
если za[13]=0, то wa[9..1]=za[9..1]
если za[13:12]=10, то:
{ 22e, 26e, 2ae, 2ee, 32e, 36e, 3ae, 3ee}
{2000,2200,2400,2600,2800,2a00,2c00,2e00}
wa[9]=1
wa[8:6]=za[11:9]
wa[5:1]=10111
если za[13:12]=11, то:
{ 230, 270, 2b0, 2f0, 330, 370, 3b0, 3f0}
{3000,3200,3400,3600,3800,3a00,3c00,3e00}
wa[9]=1
wa[8:6]=za[11:9]
wa[5:1]=11000