Новости (News)

ZXNetUsb software and hardware

Postby admin » 03 Apr 2013, 03:50

admin
Site Admin
 
Posts: 23
Joined: 16 Dec 2009, 02:24
Group: Administrators

Postby CHRV » 05 Apr 2013, 23:28

Спецификация на сетевую карту для 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
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 923
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby DimkaM » 10 Apr 2013, 20:43

...недокопипастил:
Code: Select all

адресное пространство 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,#2AB
            | (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,#3AB
            | (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

Регистры фифо w5300 обязательно нужно считывать сначала первый байт - потом второй байт. Поэтому если включена инверсия А0, то нужно читать наоборот. Также если включена инверсия А0 и вычитываются буфера ldir'ом, то нужно начинать вычитывать с нечетного адреса.
ZX-Evo rev C, ZXNetUsb rev A
DimkaM
 
Posts: 1269
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users


Return to ZXNetUsb - софт и железо

Who is online

Users browsing this forum: No registered users and 1 guest

cron