IS-DOS
|
|
deathsoft | Дата: Среда, 2009-03-18, 18:17:36 | Сообщение # 121 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (lvd) Это ты, видимо, сам проверял (паял девайсы), раз так уверенно говоришь. Советую посмотреть спецификацию на CF - специально залил на сервер (аж 2 штуки 2.1 и 3.0).
|
|
| |
Black_Cat | Дата: Среда, 2009-03-18, 19:00:48 | Сообщение # 122 |
 Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Статус: Offline
| Quote (deathsoft) Старые винты в 8 битный режим переключались аппаратно сигналом /IOCS16 (подать 1). эт ты фигню однако сморозил.. винты в 8ми битный режим не переключаются никак, а /IOCS16 - это выход винта, сообщающий на шину ISA, что винт в данный момент юзает 16 битную шину данных. Соответственно ничего подать по этому выводу на винт нельзя в принципе. Quote (deathsoft) Советую посмотреть спецификацию на CF CF и винт - это две большие разницы, мешать которые не надо
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
|
|
| |
deathsoft | Дата: Среда, 2009-03-18, 19:22:11 | Сообщение # 123 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (Black_Cat) эт ты фигню однако сморозил.. винты в 8ми битный режим не переключаются никак, а Иди родимый на t13.org и читай спецификацию ATA-1 и ATA-2 (читай про команду set features и feature #1). На счет /IOCS16 - да - это лажа с моей стороны. А на счет пометок obsolete - надо все проверять, ибо на винтах WD все что помечено как obsolete прекрасно работало вплоть до ATA-4 (дальше на самых новых винтах я уже не проверял).
Сообщение отредактировал deathsoft - Среда, 2009-03-18, 19:33:53 |
|
| |
SinglWolf | Дата: Среда, 2009-03-18, 19:54:59 | Сообщение # 124 |
 Активист
Группа: Человеки
Сообщений: 168
Статус: Offline
| Black_Cat, блин, про ИС-ДОС не даёшь ничего написать. Иди в соответствующую ветку и...
|
|
| |
Black_Cat | Дата: Среда, 2009-03-18, 19:56:56 | Сообщение # 125 |
 Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Статус: Offline
| Quote (deathsoft) читай спецификацию ATA-1 и ATA-2 Это я и без спецификаций знаю - ни один IDE винт в принципе не может переключаться в 8ми битный режим в отличие от CF Quote (SinglWolf) Black_Cat, блин, про ИС-ДОС не даёшь ничего написать звыняйтэ
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
Сообщение отредактировал Black_Cat - Среда, 2009-03-18, 20:00:27 |
|
| |
deathsoft | Дата: Среда, 2009-03-18, 19:58:58 | Сообщение # 126 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (Black_Cat) ни один IDE винт в принципе не может переключаться в 8ми битный режим Кури спецификацию до посинения, и еще кури что такое PIO Mode. (для CF отдельная спецификация и на другом сайте лежит). П.С. ATA-1 спецификация исключительно на HDD. ППС Вот специально для мега знатаков: "5.2.11 IOCS16- (Device 16-bit I/O) During PIO transfer modes 0, 1 or 2, IOCS16- indicates to the host system that the 16-bit data port has been addressed and that the device is prepared to send or receive a 16-bit data word. This shall be an open collector output. - When transferring in any PIO mode and accessing any register except the data port, transfers shall be 8-bit using DD0-7; - When transferring in PIO modes 0, 1 or 2, if IOCS16- is not asserted, transfers shall be 8-bit using DD0-7; - When transferring in PIO modes 0, 1 or 2, if IOCS16- is asserted, transfers shall be 16-bit using DD0-15; - When transferring in PIO modes 3 or 4, IOCS16- shall not be used by the host, and all transfers shall be 16-bit using DD0-15, except for bytes beyond the 512th byte for READ LONG and WRITE LONG commands which shall be 8-bit using DD0-7; - When transferring in DMA mode, the host shall use a 16-bit DMA channel and IOCS16- shall not be asserted." "Table 14 - SET FEATURES register definitions 01h Enable 8-bit data transfers (see 6.2.5)" "6.2.5 Data register The data register is either 8-bits or 16-bits depending on the interface width currently selected and/or the type of data being transferred by the current command." Спецификация, если конечно соизволишь прочесть, лежит тут http://www.t13.org/Documen....A-2.pdf
Сообщение отредактировал deathsoft - Среда, 2009-03-18, 20:07:19 |
|
| |
lvd | Дата: Среда, 2009-03-18, 20:14:41 | Сообщение # 127 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| я же предупреждал - не разговаривайте с ботами. А теперь хуле - тему боты вам засрали.
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
SinglWolf | Дата: Среда, 2009-03-18, 21:33:22 | Сообщение # 128 |
 Активист
Группа: Человеки
Сообщений: 168
Статус: Offline
| Quote (Black_Cat) звыняйтэ Нема за шо!
|
|
| |
jdigreze | Дата: Четверг, 2009-03-19, 08:24:21 | Сообщение # 129 |
Креветко
Группа: Человеки
Сообщений: 322
Статус: Offline
| Quote (lvd) Сейчас вроде выходит, что 16 бит сразу с фпги прут на буферы и в винт. Все 8<>16 будут внутри фпга, что позволит делать более вразумительные времянки. Я имел ввиду чтобы 16 бит писалось/читалось в/из винта через один адрес. Т.е. н-р порт #1234, он 8бит, два раза в/из него пишешь/читаешь, а интерфейс по окончании/начале второй/первой записи/чтения в/из этого порта выдавал -RD/-WR (или как там эти сигналы зовутся по именам) в винт. Т.е. шоб не надо было для записи сначала записать страший(младший) байт в один порт, а потом младший(старший) писать в другой порт. Согласись, что для програмёра это гемор, и лишние такты/байты в драйвере. Винты щас по-любому работают быстрее самого быстрого Спека.
|
|
| |
нолька | Дата: Четверг, 2009-03-19, 09:48:07 | Сообщение # 130 |
 рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| 1 порт - не совсем корректно. лучше разделение старший-младший по A8, при этом чтение идет без проблем (см. например контроллер иде0немо с доработкой А8), но с записью есть засада. При записи в винт идет 16ьитное слово целиком сразу, а в памяти у нас данные идут младший-старший, т.е. надо чтобы сначала младший записывался в буф. регистр, а потом вместе со старшим от проца и буферным младшим писалось в винт. Поскольку я делал свой контроллер на дискретах, то решил это разделением портов адреса #90-#97 8-битные и #0x80 r/w 16-битные (с учетом того что в командах outi и otir регистр B декрементится до вывода в порт в отличие от ini/inir) и установкой доп. регистра для старшего байта. В спринтере схема чуть иная - на регистр сэкономлено, но там логика в альтере и поэтому немного сложнее. В итоге и в моем и в спринтеровском вариантах чтение сектора идет inir:inir (или 512шт ini), а запись otir:otir (или 512 шт. outi).
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
jdigreze | Дата: Четверг, 2009-03-19, 12:03:15 | Сообщение # 131 |
Креветко
Группа: Человеки
Сообщений: 322
Статус: Offline
| Quote (нолька) 1 порт - не совсем корректно А по-моему в самый раз. Quote (нолька) но с записью есть засада Вооот! Про то и речь. Тем более коли речь зашла про fpga. Еще б отрубить декремент "В", было бы вообще красиво, но увы и ах... Правда самое красивое все-таки dma, но боюсь что логики будет в разы больше задействовано. Ежели такое делать, то точно не только на винт, но например и на копирование блоков памяти.
Сообщение отредактировал jdigreze - Четверг, 2009-03-19, 12:05:58 |
|
| |
нолька | Дата: Четверг, 2009-03-19, 12:21:40 | Сообщение # 132 |
 рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| Quote (jdigreze) А по-моему в самый раз. ну глюкнет у тебя прога - не допишет 1 байт в сектор, триггер не переключится - младший старший, а после следующей команды запись или чтение попрет не с младшего, а со старшего байта. Плюс будет нужна инициализация это триггера ресетом, геморрой сплошной, для прогописателей особенно. Да и вообще я думаю, что нынче вряд ли кто-то будет делать что-то отличное от немо-иде, а там чтение и так ini:ini, а операции записи бывают на порядок реже.
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
lvd | Дата: Четверг, 2009-03-19, 21:52:52 | Сообщение # 133 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Quote (нолька) В итоге и в моем и в спринтеровском вариантах чтение сектора идет inir:inir (или 512шт ini), а запись otir:otir (или 512 шт. outi). Самое (и единственное) разумное предложение. Чтоб туда - отир (или оути), обратно - инир (или ини). Только вот хуй. В НГС не хуй, а в коесдях и немоидях - хуй. Максимум в одну сторону. В фпга так сделать, само собой можно. ВОт только это будет новый стандарт - кто его поддержит? Quote (jdigreze) Правда самое красивое все-таки dma, но боюсь что логики будет в разы больше задействовано. Ежели такое делать, то точно не только на винт, но например и на копирование блоков памяти. Аналогично. Кто поддержит?
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
lvd | Дата: Четверг, 2009-03-19, 21:55:18 | Сообщение # 134 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| Quote (нолька) ну глюкнет у тебя прога - не допишет 1 байт в сектор, триггер не переключится - младший старший, а после следующей команды запись или чтение попрет не с младшего, а со старшего байта. Если прога так глюкнёт, то даже при никаких последствиях - это пиздец и ахтунг, кончающийся зависанием и засиранием данных на винте уж совершенно точно. А ты, случаем, вочдоги к спектруму не прикручивал?
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
KOE | Дата: Четверг, 2009-03-19, 22:39:57 | Сообщение # 135 |
 Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Quote (lvd) а в коесдях - хуй. это почему же?
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
|
|
| |
|
|