Rev 48 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
Спецификация на сетевую карту для zx-buswiznet 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..#3FFF2'b01 -- #4000..#7FFF2'b10 -- #8000..#BFFF2'b11 -- #C000..#FFFF2'b00 после сброса. Для клонов, которые позволяют иметь ROM только в #0000..#3FFF,устанавливать в 2'b00.бит 2,rw: 1 -- разрешить подстановку регистров w5300 вместо ROM0 -- запретить0 после сбросабит 3,rw: 1 -- производить инверсию A0 на w53000 -- не производить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]=1wa[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]=1wa[8:6]=za[11:9]wa[5:1]=11000