ZXNet эхоконференция «hardware.zx»


тема: Подключение IDE-винтов к Спектрумам



от: Eugene Stahov
кому: All
дата: 01 May 2000
_-~ Greetings to you, All ! В течение довольно долгого времени происходила разработка сабжевой схемы. Устройство разрабатывалось как альтернатива SMUC - девайсу. Пока схема собрана на макетке и МГТФ, в Екатеринбурге довольно много желающих на сей девайс. Перед тем, как делать печатку, хотелось бы выслушать соображения всесведущего ALL о данном вопросе. Для начала: Основные свойства, аппаратные особенности: 1. Файловая система MS-DOS 2. Возможность работы с TR-DOS на уровне #3D13 (скорость - высокая) 3. Возможна загрузка с винта 4. диапазон портов HDD: xx90h-xx9fh 5. для устранения конфликтов вводится /IORQGE /IORQGE=/IORQ | (A7 & A4 & /A6 & /A5) 6. Имеется мс 62256-621024 (в последнем случае можно отключать пзу полностью. ), в частности, это позволяет работать с винтом в TR-DOS (эмуляция #3Д13, буферизация секторов 512<->256) 4. При работе с винтом в ТR-DOS на любое из устройств A,B,C,D можно назначить обраы дисков *.TRD (естественно, не более 4х за раз). ^^^^^^^^^^^^^^^^^это^^^^^уже^^^^^^^^^^есть^^^^^^^^^^^^^ 7. Возможна реализация в будующем: - второй IDE порт - универсальный последовательный контроллер (I2C, RS232, USB) - I2C realtime clock DS1307 (dip08) Почему I2C? Я уже имел дело с этими часами, а также с 512ви1 Для 512ви1 пришлось делать относительно сложную схему блокировки от искажения информации при вкл/выкл. А тут все внутри. предполараемая цена < 10$ ВОПРОС: - какие на данное время существуют раскладки портов IDE? ~-_ Ну, All, бывай. Eugene Stahov Воскресенье 1 Май 2000 13:34:43 [] [STUDIO STALL] [STD2] [QUORUM]

от: Felix Knajzev
кому: Eugene Stahov
дата: 05 May 2000
Приветствую тебя, о досточтимый(ая) Eugene! [Понедельник 1 Май 2000] в [13:34:43] Eugene Stahov начертал(а) письмецо к All. Обсуждали они тему "Подключение IDE-винтов к Спектрумам". Продолжим начатое... [skip] ES> ВОПРОС: ES> - какие на данное время существуют раскладки портов IDE? ================== begin of file "NemoHDD .C" ================== DATL EQU #10 ;10:Младший байт регистра данных DATH EQU DATL+1 ;11:Старший байт регистра данных ERRF EQU DATL+#20 ;31:Рг ошибок SCNT EQU ERRF+#20 ;51:Рг счетчика сектора SNMB EQU SCNT+#20 ;71:Рг н-ра сектора CYLL EQU SNMB+#20 ;91:Рг н-ра цилиндра (младший) CYLH EQU CYLL+#20 ;B1:Рг н-ра цилиндра (старший) SDH EQU CYLH+#20 ;D1:Рг н-ра привода и головки RSTA EQU SDH+#20 ;F1:Рг состояния RCOM EQU RSTA ;F1:Рг команд ASR EQU #C8 ;Alter Stat Rg FDR EQU #C8 ;Fixed disk Rg DIR EQU #E8 ;Dig In Rg SYSR EQU #F8 ;сис рг . ================== end of file "NemoHDD .C" ================== С уважением, Felix. [I.ZX]

от: Ivan Mak
кому: Kirill Frolov
дата: 05 May 2000
Приветствую Вас, Kirill! <12:46> Kirill Frolov write to Ivan Mak: IM>> Саму схему уже кидал сюда, если нужно, повтоpю. KF> Повтоpи, а то что-то не понятно... === Cut === ╔════════════════════════════════════════╦══════════════════════╗ ║ ║ Designed by Ivan Mak ║ ║ Sprinter HDD controller. Version 1.02. ║ FIDO: 2:5030/529.24 ║ ║ ║ (C) 1999 Peters-Plus ║ ╠════════════════════════════════════════╩══════════════════════╣ ║ Схема предназначена для возможного повторения и установки на ║ ║ компьютеры типа ZX-Spectrum, а так же для понимания логики ║ ║ работы HDD компьютера Sprinter ║ ╠═══════════════════════════════════════════════════════════════╣ ║ "Буферы" ║ ║ К555АП6 ║ ║ ┌──┬────┬──┐ ║ ║ D0──────┤D0│ RG │Q0├───────────────────────────────────┬─WD0 ║ ║ D1──────┤D1│ │Q1├──────────────────────────────────┬──WD1 ║ ║ D2──────┤D2│ │Q2├─────────────────────────────────┬───WD2 ║ ║ D3──────┤D3│ │Q3├────────────────────────────────┬────WD3 ║ ║ D4──────┤D4│ │Q4├───────────────────────────────┬─────WD4 ║ ║ D5──────┤D5│ │Q5├──────────────────────────────┬──────WD5 ║ ║ D6──────┤D6│ │Q6├─────────────────────────────┬───────WD6 ║ ║ D7──────┤D7│ │Q7├────────────────────────────┬────────WD7 ║ ║ ├──┤ │ │ ││││││││ ║ ║ /RD───┤<>│ │ │ ││││││││ ║ ║ DIR1──┤OE│ │ │ ││││││││ ║ ║ └──┴────┴──┘ ││││││││ ║ ║ К555АП6 К555ИР23 ││││││││ ║ ║ ┌──┬────┬──┐ ┌──┬────┬──┐ ││││││││ ║ ║ D0──────┤D0│ RG │Q0├────────┬──────┤D0│ RG │Q0├────────┘ ║ ║ D1──────┤D1│ │Q1├───────┬───────┤D1│ │Q1├───────┘ ║ ║ D2──────┤D2│ │Q2├──────┬────────┤D2│ │Q2├──────┘ ║ ║ D3──────┤D3│ │Q3├─────┬─────────┤D3│ │Q3├─────┘ ║ ║ D4──────┤D4│ │Q4├────┬──────────┤D4│ │Q4├────┘ ║ ║ D5──────┤D5│ │Q5├───┬───────────┤D5│ │Q5├───┘ ║ ║ D6──────┤D6│ │Q6├──┬────────────┤D6│ │Q6├──┘ ║ ║ D7──────┤D7│ │Q7├─┬─────────────┤D7│ │Q7├─┘ ║ ║ ├──┤ │ │ ││││││││ ├──┤ │ │ ║ ║ VCC──┤<>│ │ │ ││││││││DIR3──┤WR│ │ │ ║ ║ /WR──┤OE│ │ │ ││││││││DIR2──┤OE│ │ │ ║ ║ └──┴────┴──┘ ││││││││ └──┴────┴──┘ ║ ║ ││││││││ ║ ║ │││││││└────────────────────────────WD8 ║ ║ ││││││└─────────────────────────────WD9 ║ ║ │││││└──────────────────────────────WD10 ║ ║ ││││└───────────────────────────────WD11 ║ ║ │││└────────────────────────────────WD12 ║ ║ ││└─────────────────────────────────WD13 ║ ║ │└──────────────────────────────────WD14 ║ ║ └───────────────────────────────────WD15 ║ ║ ║ ╠═══════════════════════════════════════════════════════════════╣ ║ ║ ║ "Схема, вшиваемая в ПЛМ" ┌─────────────────────DIR3 ║ ║ │ ┌──┐ ║ ║ ┌───/HDD_ENABLE─────┬─┴───┤1 ├──────────/HDD_CS1 ║ ║ │ ┌──┐ │ ┌───┤ │ ║ ║ ├─┤1 ├─────┐ │ │ ├──┤ ║ ║ /WR──────────│─┤ │ │ ├─│───┤1 ├──────────/HDD_CS3 ║ ║ │ ├──┤ │ │ │ ┌─┤ │ ║ ║ ├─┤1 ├───┐ │ │ │ │ └──┘ ║ ║ /RD──────────│─┤ │ │ │ │ │ └──────┐ ║ ║ │ └──┘ │ │ │ │ ┌──┐ │ ║ ║ └──────┐ │ │ ┌──────│─┴───┤1 o─┘ ║ ║ │ │ │ │ │ └──┘ ║ ║ │ │ │ │ │ ║ ║ ┌──┐ ┌──┐ │ │ │ │ ├────────────┐ ║ ║ /WR───┤& ├─────┤1 ├─┘ │ │ │ │ │ ║ ║ /RD───┤ │ ┌─┤ │ │ │ │ │ ┌──┐ │ ║ ║ └──┘ │ └──┘ │ │ │ └─────┤1 │ │ ║ ║ │ │ │ │ ┌──────────┤ ├─┐ │ ║ ║ │ │ │ │ │ WRH └──┘ │ │ ║ ║ │ ┌──┐ │ │ │ │ ┌──┬────┬──┐ │ │ ┌──┐ ║ ║ A8──────┬────│─┤1 o───│─│─│─┤ ┤S │ TT │ │ │ └─┤1 ├─────DIR1 ║ ║ │ │ └──┘ │ │ │ │ ├──┤ │ Q├──│───┤ │ ║ ║ │ └──────┐ │ │ │ ├─┤D │ │ │ │ ├──┤ ║ ║ │ ┌──┐ │ │ ├─│─┼─>C │ │ _│ └───┤1 ├─────DIR2 ║ ║ /IORQ───│──────┤1 │ │ │ │ │ │ ├──┤ │ Qo┐ ┌┤ │ ║ ║ │ ┌─┤ ├─┘ ├─│─│─│─┤R │ │ ││ │└──┘ ║ ║ │ │ └──┘ │ │ │ │ └──┴────┴──┘│┌──┐│ ║ ║ │ └──────┐ │ │ │ │ └┤& ├┘ ║ ║ │ │ └─│─│─│─────┬────────┤ │ ║ ║ │ │ │ │ │ │ └──┘ ║ ║ │ │ │ │ │ │ ┌──┐ ║ ║ │ │ │ │ │ └─────────────┤1 │ ║ ║ └───────────│───│─│─│───────────────────┤ ├──/HDD_RD ║ ║ │ │ │ │ └──┘ ║ ║ ┌──┐ ┌──┐ │ │ │ │ ┌──┐ ║ ║ A1────┤& o─────┤& o─┘ │ │ └──────────┤1 ├───────────/HDD_WR ║ ║ A2────┤ │ ┌───┤ │ └─│────────────┤ │ ║ ║ ├──┤ │ ┌─┤ │ │ └──┘ ║ ║ A5────┤1 ├─┘ │ └──┘ │ ║ ║ A7────┤ │ │ │ ║ ║ └──┘ │ │ ┌──┐ ║ ║ A6───────────┘ │ A0────────┤1 ├─────────────HD_A0 ║ ║ │ ├──┤ ║ ║ ┌──┐ ┌──┐ │ A1────────┤1 ├─────────────HD_A1 ║ ║ A1────┤1 ├─────┤& ├───────│────────┬───┤ │ ║ ║ A2────┤ │ ┌───┤ │ │ │ ├──┤ ║ ║ └──┘ │ ├──┤ │ A2────│───┤1 ├─────────────HD_A2 ║ ║ A14────────┴───┤& ├───────┘ └───┤ │ ║ ║ A2─────────────┤ │ └──┘ ║ ║ └──┘ ║ ║ ═════════════════════════════════════════════════════════════ ║ ║ Здесь прорисованя только логика в ПЛМ. ║ ║ Действительная реализация в корне отличается от нарисованной, ║ ║ так как ПЛМ позволяет реализовывать сложные функции на одной ║ ║ ячейке. Кроме того, адресация портов производится через схему ║ ║ распределения портов Sprinter-а, которая позволяет изменить ║ ║ все адреса портов винчестера. ║ ║ При повторении достаточно повторить только логику и обеспечить║ ║ отсутствие "глитчей". ║ ║ Кроме того в ПЛМ введена дополнительная задержка от начала /IO║ ║ так как в режиме TURBO на 21MHz не успевают устанавливаться ║ ║ адреса портов винчестера. ║ ║ Выводы /HDD_WR,/HDD_RD,/HDD_CS1,/HDD_CS3 поданы на IDE разъем ║ ║ через сопротивления 150 ом. ║ ║ Сигнал /HD_RES можно подключать, можно не подключать к сбросу ║ ║ компьютера. Лучше не подключать, но некоторые винчестеры ║ ║ могут серьезно "затыкаться" при неправильной работе с ними и ║ ║ им может понадобиться железный сброс. ║ ║ Hа сигнал /PDIAG вешается светодиод через резистор 300 ом на ║ ║ +5v для индикации работы HDD. (но иногда светодиод светится ║ ║ как попало, особенно со старыми винчестерами и в режиме SLAVE ║ ║ Сигнал /HD_RDY либо подключается, либо не подключается на ║ ║ /WAIT процессора. Лучше подключить через элемент И с сигналом ║ ║ идущим на этот вывод процессора со схемы компьютера. ║ ║ ═════════════════════════════════════════════════════════════ ║ ║ Разводка 40-pin разъема HDD ║ ║ ┌──────────┬───────┬──────────┬───────────┐┌────────────────┐ ║ ║ │1 /HD_RES│11 WD3 │21 --- │31 --- ││ │ ║ ║ │2 GND │12 WD12│22 GND │32 --- ││ "штыри" │ ║ ║ │3 WD7 │13 WD2 │23 /HDD_WR│33 HD_A1 ││ на плате │ ║ ║ │4 WD8 │14 WD13│24 GND │34 --- ││ для кабеля │ ║ ║ │5 WD6 │15 WD1 │25 /HDD_RD│35 HD_A0 ││ │ ║ ║ │6 WD9 │16 WD14│26 GND │36 HD_A2 ││ 246 40 │ ║ ║ │7 WD5 │17 WD0 │27 /HD_RDY│37 /HDD_CS1││ ooo........o │ ║ ║ │8 WD10 │18 WD15│28 --- │38 /HDD_CS3││ ooo........o │ ║ ║ │9 WD4 │19 GND │29 --- │39 /PDIAG ││ 135 39 │ ║ ║ │10 WD11 │20 --- │30 GND │40 GND ││ │ ║ ║ └──────────┴───────┴──────────┴───────────┘└────────────────┘ ║ ║ ═════════════════════════════════════════════════════════════ ║ ║ Схема работает на Sprinter-е, но в самом рисунке возможны ║ ║ неточности. ║ ║ ═══════════════════════════════════════╦═════════════════════ ║ ║ Порты HDD: xx50h..xx55h ║ Считывание сектора: ║ ║ xx50h - порт данных ║ CALL HDD_READY ║ ║ 0051h - порт ошибок/предкомпенсации ║ JR C,ERROR ║ ║ 0052h - порт числа секторов ║ LD BC,0050h ║ ║ 0053h - порт номера сектора ║ INI..INI ; 512 раз ║ ║ 0054h - порт номера цилинтра, младшего ║ RET ║ ║ 0055h - порт номера цилинтра, старшего ╠═════════════════════ ║ ║ 4052h - порт драйва/номера головки ║ Запись сектра: ║ ║ 4053h - порт команд/регистра состояния ║ CALL HDD_READY ║ ║ 4054h - порт порт 3F6h ║ JR C,ERROR ║ ║ 4055h - порт порт 3F7h ║ LD BC,0150h ║ ║ При записи в порт, его адрес надо ║ OUTI..OUTI ; 512 раз ║ ║ увеличить на 100h ║ RET ║ ║ ═══════════════════════════════════════╩═════════════════════ ║ ╠═══════════════════════════════════════════════════════════════╣ ║ Как работает схема? ║ ║ ║ ║ Z80 ┌───┐ ║ ║ bus │Buf│ ║ ║ ──┬──┤<─>├────────────┬──<─> Low Byte ║ ║ │ │ 1 │ │ ║ ║ │ ├───┤ ┌───┐ │ ║ ║ │ │Buf│ │Reg│ │ ║ ║ └──┤──>├──┬──┤──>├──┘ HDD bus ║ ║ │ 2 │ │ │ 3 │ ║ ║ └───┘ │ └───┘ ║ ║ │ ║ ║ └────────────<─> High Byte ║ ║ ║ ║ 1. Чтение всех регистров, кроме регистра данных, A8 = 0 ║ ║ Данные с шины HDD через буфер 1 передаются в процессор. ║ ║ Только младший байт, старший не нужен. ║ ║ ║ ║ 2.1 Чтение регистра данных, A8 = 0 ║ ║ Данные с шины HDD через буфер 1 передаются в процессор. ║ ║ Только младший байт, старший нужен и он защелкивается в ║ ║ регистре 3 ║ ║ ║ ║ 2.2 Чтение регистра данных, A8 = 1 ║ ║ Данные из регистра 3 через буфер 1 передаются в процессор. ║ ║ - старший байт - HDD в этот момент не выбирается ║ ║ ║ ║ 3. Запись всех регистров, кроме регистра данных, A8 = 1 ║ ║ Данные с шины Z80 через буфер 1 передаются на шину HDD. ║ ║ Только младший байт, старший не нужен. ║ ║ ║ ║ 4.1 Запись регистра данных, A8 = 0 ║ ║ Данные с шины Z80 через буфер 2 передаются в регистр 3. ║ ║ Только младший байт, старший нужен и он ожидается в следующем ║ ║ цикле. HDD в этот момент не выбирается. ║ ║ ║ ║ 4.2 Запись регистра данных, A8 = 1 ║ ║ Данные из регистра 3 передаются на шину HDD - младший байт. ║ ║ - старший байт - через буфер 2 передается с процессора ║ ║ ║ ║ Почему пункт 4.2 отличается от 3, хотя операции по виду ║ ║ одинаковы? ║ ║ Потому что перед 4.2 всегда идет 4.1, который устанавливает ║ ║ тригер WRH в единицу и, таким образом переключает путь ║ ║ прохождения байтов. Это и позволяет использовать команды OUTI ║ ║ для записи сектора в HDD ║ ║ ║ ╚═══════════════════════════════════════════════════════════════╝ === Cut === Вай! Протосы атакуют моих зерлингов! Пора сматываться. Ivan. - Разводись схемка, больша и маленька.. [ Sprinter-II ] [Forth-CPU] [ZX]

от: Oleg Grigoriev
кому: Eugene Stahov
дата: 07 May 2000
Пусть враги твои, Eugene, умрут без сыновей! 1 May 2000 at 13:34, Eugene Stahov ═> All: ES> Перед тем, как делать печатку, хотелось бы выслушать соображения ES> всесведущего ALL о данном вопросе. ES> Для начала: ES> Основные свойства, аппаратные особенности: ES> 1. Файловая система MS-DOS hpfs... ES> 2. Возможность работы с TR-DOS на уровне #3D13 (скорость - высокая) высокая - это какая? ES> 3. Возможна загрузка с винта как реализовано? ES> 4. диапазон портов HDD: xx90h-xx9fh т.е. inir/otir не катят? ES> 6. Имеется мс 62256-621024 (в последнем случае можно отключать пзу ES> полностью. ), в частности, это позволяет работать с винтом в TR-DOS ES> (эмуляция #3Д13, буферизация секторов 512<->256) программное кэширование секторов винта предполагается? ES> 7. Возможна реализация в будующем: ES> - второй IDE порт имеется в виду другой контроллер на других портах? или сейчас есть только master? ES> предполараемая цена < 10$ это, конечно, круто, хотя мне ||. ES> ВОПРОС: ES> - какие на данное время существуют раскладки портов IDE? smuc, by Jason, все под досом: ── { Begin } ─────────────────────────────────────────── { ports .C } ── SMUC controllers ver 1.1 - 1.3 IDE registers. Command block registers (блок регистров команд). ┌───────┬───────────────────────────┬────────────────────────────┐ │ │ IN │ OUT │ ╞═══════╪═══════════════════════════╪════════════════════════════╡ │ #D8BE │ Регистр данных D8-D15 │ Регистр данных D8-D15 │ │ │ │ │ │ #F8BE │ Регистр данных D0-D7 │ Регистр данных D0-D7 │ │ #F9BE │ Регистр ошибок │ Регистр предкомпенсации (*)│ │ #FABE │ Регистр счетчика секторов │ Регистр счетчика секторов │ │ #FBBE │ Регистр номера сектора │ Регистр номера сектора │ │ #FCBE │ Регистр номера цилиндра │ Регистр номера цилиндра │ │ │ (low) │ (low) │ │ #FDBE │ Регистр номера цилиндра │ Регистр номера цилиндра │ │ │ (high) │ (high) │ │ #FEBE │ Регистр накопителя/головки│ Регистр накопителя/головки │ │ #FFBE │ Регистр состояния │ Регистр команд │ ├───────┼───────────────────────────┼────────────────────────────┤ Control block registers (блок регистров управления). Регистры доступны, если установлен bit 7 #FFBA. ├───────┼───────────────────────────┼────────────────────────────┤ │ #FEBE │ Регистр альтернативного │ Управление состоянием нако-│ │ │ состояния │ пителя │ │ #FFBE │ Регистр адреса накопителя │ not used │ └───────┴───────────────────────────┴────────────────────────────┘ [censored] ── { End } ───────────────────────────────────────────── { ports .C } ── [ WBR, Oleg. ] [ 01:31 7 May XXXV A.S. ]




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Велотриал -ldir про Ромку.
Письмо №317 - Вологда
Софт - музыкальный упаковщик Sound Agressor v1.0 beta.
Реклама - Реклама и объявления ...
Фантастика - Повесть А.Питерского "Четырнадцатое измерение".

В этот день...   7 мая