Subversion Repositories zxusbnet

Rev

Rev 50 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 lvd 1
Спецификация на сетевую карту для zx-bus
2
 
3
wiznet W5300, подключенный пространством регистров на память Z80 (вместо ROM).
4
Используется возможность zx-bus подменять ROM на устройство ZX-BUS.
5
 
6
 
4 lvd 7
программный интерфейс:
8
 
9
 
12 lvd 10
==========================================================================================================
11
Базовый адрес (младшие 8 бит): #AB
6 lvd 12
 
32 lvd 13
Порты #00AB..#7FAB -- либо регистр данных sl811 (для возможности использовать
14
INIR/OTIR -- предекремент B), либо часть регистрового пространства w5300 (определяется
15
битом w5300_ports).
6 lvd 16
 
32 lvd 17
#80AB - регистр адреса sl811 (LD BC,#80AB: OUT (C),reg: INIR/OTIR). НЕДОСТУПЕН,
18
если w5300_ports=1.
6 lvd 19
 
12 lvd 20
#83AB, #82AB, #81AB -- управляющие регистры карты.
6 lvd 21
 
22
 
12 lvd 23
==========================================================================================================
22 lvd 24
#83AB (порт управления прерываниями и сбросом):
9 lvd 25
 
12 lvd 26
бит 0,ro: 1 -- установлен сигнал /INT от w5300 (/INT=0)
27
 
9 lvd 28
 
12 lvd 29
бит 1,ro: 1 -- установлен сигнал INTRQ от sl811 (INTRQ=1)
30
 
9 lvd 31
 
12 lvd 32
бит 2,rw: 1 -- сигнал /INT от w5300 участвует в формировании внутреннего сигнала прерывания
33
 
34
 
9 lvd 35
 
12 lvd 36
бит 3,rw: 1 -- сигнал INTRQ от sl811 участвует в формировании внутреннего сигнала прерывания
37
 
38
 
9 lvd 39
 
22 lvd 40
бит 4,rw: управление сбросом w5300:
41
 
42
	  1 -- не установлен
43
 
9 lvd 44
 
22 lvd 45
бит 5,rw: управление сбросом sl811:
46
 
47
	  1 -- не установлен
48
 
49
 
12 lvd 50
бит 6,rw: 1 -- внутренний сигнал прерывания формирует /INT на zx-bus (устанавливает в 0)
51
 
52
 
9 lvd 53
 
12 lvd 54
бит 7,ro: состояние внутреннего сигнала прерывания:
55
 
56
	  1 -- есть сигнал
9 lvd 57
 
58
 
12 lvd 59
==========================================================================================================
60
#82AB (порт управления w5300):
9 lvd 61
 
12 lvd 62
биты 0..1,rw: область адресного пространства zxbus, где происходит маппинг ROM на регистры w5300:
63
              2'b00 -- #0000..#3FFF
64
	      2'b01 -- #4000..#7FFF
65
	      2'b10 -- #8000..#BFFF
66
	      2'b11 -- #C000..#FFFF
67
	      2'b00 после сброса. Для клонов, которые позволяют иметь ROM только в #0000..#3FFF,
68
	      устанавливать в 2'b00.
9 lvd 69
 
12 lvd 70
бит 2,rw: 1 -- разрешить подстановку регистров w5300 вместо ROM
71
 
72
 
9 lvd 73
 
12 lvd 74
бит 3,rw: 1 -- производить инверсию A0 на w5300
75
 
76
 
77
 
32 lvd 78
бит 4,rw: 1 -- подстановка адресного пространства w5300 в порты #00AB..#7FAB.
79
               при этом регистр данных sl811 в этих портах недоступен.
80
	       применяется для работы в w5300 в indirect mode.
81
 
12 lvd 82
 
32 lvd 83
ВНИМАНИЕ: биты 2 и 4 этого порта не могут одновременно быть в 1.
12 lvd 84
 
32 lvd 85
биты 5..7,rw: старшие 3 бита адреса w5300 при обращении к ней через порты #00AB..#7FAB.
86
              при этом младшая часть формируется из битов 14..8 адреса порта, бит 0
50 lvd 87
	      адреса w5300 опционально инвертируется, в зависимости от бита 3 данного
32 lvd 88
	      порта.
89
 
90
 
12 lvd 91
==========================================================================================================
92
#81AB (порт управления sl811):
93
 
94
бит 0,rw: управление сигналом M/S sl811:
95
 
96
	  1 -- M/S=1 (девайс)
48 lvd 97
	  1 после сброса компьютера, сброс sl811 битом 5 порта $83AB на
98
	  этот сигнал не влияет (его можно переключать под сбросом sl811).
22 lvd 99
	  сигнал M/S также управляет подачей питания на УСБ-разъём:
100
 
101
	  1 -- питание отсутствует.
12 lvd 102
 
22 lvd 103
бит 1,ro: наличие 5в питания на УСБ-разъёме. Имеет смысл проверять ТОЛЬКО когда M/S=1
104
          и sl811 под сбросом, чтоб определить, подключены ли мы к хосту или к девайсу.
12 lvd 105
 
22 lvd 106
биты 2..7: не используются, при чтении игнорировать, при записи устанавливать в 0
12 lvd 107
 
108
 
109
 
110
 
111
 
112
 
113
 
114
 
115
 
4 lvd 116
адресное пространство w5300 мапится в пространство zx-bus ROM 16k так:
117
 
118
zx-bus ROM  |  w5300
119
------------+-----------------------------
14 dimkam 120
#0000-#1FFF | повторение 8 раз
121
            | неизменного адресного пр-ва
122
            | w5300 размером #400 байт
4 lvd 123
------------+-----------------------------
124
------------+-----------------------------
14 dimkam 125
#2000-#21FF | повторение 256 раз регистров
126
            | w5300 с адресами #22E,#22F
127
            | (socket 0 TX FIFO register)
4 lvd 128
------------+-----------------------------
129
#2200-#23FF | повторение 256 раз регистров
130
            | w5300 с адресами #26E,#26F
131
            | (socket 1 TX FIFO register)
132
------------+-----------------------------
14 dimkam 133
#2400-#25FF | повторение 256 раз регистров
134
            | w5300 с адресами #2AE,#2AF
135
            | (socket 2 TX FIFO register)
4 lvd 136
------------+-----------------------------
137
#2600-#27FF | повторение 256 раз регистров
138
            | w5300 с адресами #2EE,#2EF
139
            | (socket 3 TX FIFO register)
140
------------+-----------------------------
14 dimkam 141
#2800-#29FF | повторение 256 раз регистров
142
            | w5300 с адресами #32E,#32F
143
            | (socket 4 TX FIFO register)
4 lvd 144
------------+-----------------------------
145
#2A00-#2BFF | повторение 256 раз регистров
146
            | w5300 с адресами #36E,#36F
147
            | (socket 5 TX FIFO register)
148
------------+-----------------------------
14 dimkam 149
#2C00-#2DFF | повторение 256 раз регистров
150
            | w5300 с адресами #3AE,#3AF
151
            | (socket 6 TX FIFO register)
4 lvd 152
------------+-----------------------------
153
#2E00-#2FFF | повторение 256 раз регистров
154
            | w5300 с адресами #3EE,#3EF
155
            | (socket 7 TX FIFO register)
156
------------+-----------------------------
157
------------+-----------------------------
14 dimkam 158
#3000-#31FF | повторение 256 раз регистров
159
            | w5300 с адресами #230,#231
160
            | (socket 0 RX FIFO register)
4 lvd 161
------------+-----------------------------
162
#3200-#33FF | повторение 256 раз регистров
163
            | w5300 с адресами #270,#271
164
            | (socket 1 RX FIFO register)
165
------------+-----------------------------
14 dimkam 166
#3400-#35FF | повторение 256 раз регистров
167
            | w5300 с адресами #2B0,#2B1
168
            | (socket 2 RX FIFO register)
4 lvd 169
------------+-----------------------------
170
#3600-#37FF | повторение 256 раз регистров
171
            | w5300 с адресами #2F0,#2F1
172
            | (socket 3 RX FIFO register)
173
------------+-----------------------------
14 dimkam 174
#3800-#39FF | повторение 256 раз регистров
175
            | w5300 с адресами #330,#331
176
            | (socket 4 RX FIFO register)
4 lvd 177
------------+-----------------------------
178
#3A00-#3BFF | повторение 256 раз регистров
179
            | w5300 с адресами #370,#371
180
            | (socket 5 RX FIFO register)
181
------------+-----------------------------
14 dimkam 182
#3C00-#3DFF | повторение 256 раз регистров
183
            | w5300 с адресами #3B0,#3B1
184
            | (socket 6 RX FIFO register)
4 lvd 185
------------+-----------------------------
186
#3E00-#3FFF | повторение 256 раз регистров
187
            | w5300 с адресами #3F0,#3F1
188
            | (socket 7 RX FIFO register)
189
------------+-----------------------------
7 lvd 190
 
191
 
192
логика преобразования адресов:
193
 
194
если za[13]=0, то wa[9..1]=za[9..1]
195
 
196
если za[13:12]=10, то:
197
 { 22e, 26e, 2ae, 2ee, 32e, 36e, 3ae, 3ee}
198
 {2000,2200,2400,2600,2800,2a00,2c00,2e00}
199
 
200
 wa[9]=1
201
 wa[8:6]=za[11:9]
202
 wa[5:1]=10111
203
 
204
если za[13:12]=11, то:
205
 { 230, 270, 2b0, 2f0, 330, 370, 3b0, 3f0}
206
 {3000,3200,3400,3600,3800,3a00,3c00,3e00}
207
 
208
 wa[9]=1
209
 wa[8:6]=za[11:9]
210
 wa[5:1]=11000
211