User Tag List

Страница 14 из 17 ПерваяПервая ... 1011121314151617 ПоследняяПоследняя
Показано с 131 по 140 из 166

Тема: Вектор-06Ц: Контроллер HDD

  1. #131

    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    352
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все гораздо проще можно сделать, какие подсчеты тактов?! вот в соседней ветке я выкладывал наработки по SD. 7 простых корпусов мс, скорость ~10КБ/с, а то и больше, файлов больших нет, оценить сложно .

  2. #132

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос подключения SD-карты интересный, но вернёмся к IDE... Прикинул, как будет работать контроллер, если смотреть по используемым стандартным контроллером портам, то на ВВ55 будет примерно так:
    Код:
    Порт          Описание
    стд.  ВВ55
    ▀▀▀▀  ▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    50h   порт A  | Регистр данных 16-бит: 50-мл.,58-ст.байт.
    58h   порт B  | Чтение(запись) данных в(из) буфер сектора контроллера
                  + перед операцией однократно:
          порт РУС+ >> порты A и B на чтение(запись), порт С на запись
          порт С  + >> 01010000b -- перед чтением
          порт С  + >> 10110000b -- перед записью
                  + >> читаем/пишем в порты
          порт С  + >> 10010000b -- после записи
    -------------------------------------------------------------------------------
    51h   порт A  | Запись: Write Precompensation register.  Turn on write precompensation.
                  + перед операцией однократно:
          порт РУС+ >> порты A и С на запись, порт B на чтение
          порт С  + >> 10110001b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010001b -- после записи
    
    51h   порт A  | Чтение: Регистр ошибок. Содержит признаки последней ошибки.
                  + перед операцией однократно:
          порт РУС+ >> порты A и B на чтение, порт С на запись
          порт С  + >> 01010001b -- перед чтением
                  + >> читаем из порта A
    -------------------------------------------------------------------------------
    52H   порт A  | Счетчик числа секторов для операции чтения/записи
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110010b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010010b -- после записи
    -------------------------------------------------------------------------------
    53H   порт A  | Текущий/начальный номер логического сектора для чтения/записи
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110011b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010011b -- после записи
    -------------------------------------------------------------------------------
    54H   порт A  | Цилиндр, старшие (биты 0-1 - это биты 8-9 10-битового номера цилиндра)
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110100b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010100b -- после записи
    -------------------------------------------------------------------------------
    55H   порт A  | Цилиндр, младшие (биты 0-7 10-битового номера цилиндра)
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110101b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010101b -- после записи
    -------------------------------------------------------------------------------
    56H   порт A  | Биты определяют устройство и головку для операции чтения/записи
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110110b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010110b -- после записи
    -------------------------------------------------------------------------------
    57H   порт A  | Запись: регистр команды (См. Tech Ref о подробностях)
                  + перед операцией однократно:
          порт РУС+ >> порт A на запись, порт B на чтение, порт С на запись
          порт С  + >> 10110111b -- перед записью
                  + >> пишем в порт A
          порт С  + >> 10010111b -- после записи
    
    57H   порт A  | Чтение: регистр статуса
                  + перед операцией однократно:
          порт РУС+ >> порты A и B на чтение, порт С на запись
          порт С  + >> 01010111b -- перед чтением
                  + >> читаем из порта A
    -------------------------------------------------------------------------------
    5fH   порт C  | Системный сброс (лучше не пользоваться, сходство с 57Н без обнуления
                    микросхем жесткого диска).
                  + перед операцией однократно:
          порт РУС+ >> порты A и В на чтение, порт С на запись
          порт С  + >> xxx0xxxxb
    Настройку ВВ55 (т.е. запись в РУС), а также, в некоторых случаях, конфигурацию IDE (запись в порт C) можно вынести за циклы, но в любом случае кода будет явно больше, чем со стандартным контроллером...

    Подключение диска к ВВ55 такое же, как и на исходной схеме с одним исключением:
    - Порт A -- D0-D7 на IDE
    - Порт В -- D8-D16 на IDE
    - Выводы порта С0-C2 -- A0-A2 на IDE
    - Вывод порта С4 -- /RESET на IDE
    - Вывод порта С5 -- /CS1FX на IDE
    - Вывод порта С6 -- /DIOW на IDE
    - Вывод порта С7 -- /DIOR на IDE

    Если я правильно понял, в стандартной схеме сброс будет выполняться при любой записи в порты 5Ch-5Fh, на ВВ55 для пришлось задействовать для сброса IDE вывод C4.

  3. #133

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё хорошо, вот только при программировании порта С на вывод все пины этого порта устанавливаются в ноль, а следовательно получишь и RESET, и недопустимое сочетание DIOW DIOR.

  4. #134

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Всё хорошо, вот только при программировании порта С на вывод все пины этого порта устанавливаются в ноль, а следовательно получишь и RESET, и недопустимое сочетание DIOW DIOR.
    Да, в таком случае или понадобится инвертор, или... мне надо освежить в памяти документацию по КР580ВВ55, в частности по работе портов в режиме "2".
    Последний раз редактировалось Improver; 19.12.2018 в 08:18.

  5. #135

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, почитал я "гросбух" и склоняюсь к выводу, что использовать "режим 2" на ВВ55 не получится, потому что простыми средствами там синхронизацию с IDE не сделаешь... Да и в схеме для ПК8000/MSX использовался только "режим 0", судя по подключению управляющих сигналов.

    И ещё, про:
    Цитата Сообщение от b2m Посмотреть сообщение
    недопустимое сочетание DIOW DIOR.
    Это не страшно, т.к. чтение и запись, по стандарту IDE, выполняются по положительному фронту на этих выводах, так что их совместное зануление, думаю, не будет критичным для диска. С другой стороны, смену настроек через РУС нужно будет свести к минимуму.

    Потом, нашёл ещё одну интересную разработку: IDE2LPT - адаптер IDE-винчестера для подключения к параллельному порту PC -- Л.Слободчиков, журнал Радиохобби, №2 1999 г., с.55
    По виду, там схема имеет не только много общего со стандартной Векторовской схемой IDE-контроллера, но и подключается к LPT-порту, во многом схожему с портом ПУ. На основе этих разработок, думаю, можно будет сделать супер-простую схему подключения IDE-дисков в порт ПУ, на одних проводах.

  6. #136

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Анализируя ошибки при тестировании собранного мной контроллера HDD, дизассемблировал TESTHDD3 Фролова, и заодно немного его улучшил. Вот получившиеся исходники: TESTHDD3src.7z

    С моими исправлениями назвал TESTHDD4: TESTHDD4.7z (в архиве исходники и откомпилированная версия)

    Изменения по отношению к третьей версии:

    1. Заменил все обращения к порту 5Fh на 57h, кроме первого, при этом оказалось, что линию "reset" можно не размыкать, диск и с ней работает нормально. Собственно, в документации к контроллеру и было сказано, что порт 5Fh лучше не использовать часто, и, возможно, также нужно будет пропатчить ДОСы...

    2. При "поверхностном" тестировании портов с моим диском выдаётся ошибка "не работает порт IN 57 или индексный маркер HDD". Разбор исходного алгоритма показал, что там считывается байт из порта и анализируется изменение его второго бита, если оно не произошло за 65536 х 16 циклов, то и выдаётся эта ошибка. В найденном описании из инета сказано, что это "индекс, трактуется особо каждым производителем", поэтому я не исключаю, что на моей модели диска он просто не меняется. В этом тесте я значительно переработал алгоритм проверки и добавил вывод значения порта, по которому можно судить о его работе: если с порта 57 читается значение 50h или 51h, то скорее всего проблема в индексном маркере.

    3. При тестировании чтения/записи сектора выдавалась малопонятная ошибка "мало данных", дополнил её выводом числа считанных/записанных байт. Кроме того поправил подпрограмму сравнения считанных данных, теперь она проверяет не больше, чем было считано и выводит номер байта, на котором возникла первая ошибка. Собственно, это тоже связано с моделью диска: в тесте изначально читается сектор 512 байт и дополнительно ещё 16 байт (контрольные суммы?), мой же диск отдаёт только 8 дополнительных байт. Не думаю, что эти дополнительные данные как-то влияют на работу программ, но вывод этих ошибок в тесте я оставил.

    4. Ну и напоследок, убрал неиспользуемые части, исправил найденные ошибки, добавил новые...

    Эти 7 пользователя(ей) поблагодарили Improver за это полезное сообщение:

    crackintosh(06.08.2019), dk_spb(12.08.2019), electroscat(09.09.2019), ivagor(06.08.2019), KTSerg(06.08.2019), Syntal(06.08.2019), Дмитрий2012(02.01.2020)

  7. #136
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #137

    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    1,034
    Спасибо Благодарностей отдано 
    467
    Спасибо Благодарностей получено 
    194
    Поблагодарили
    125 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Доброго времени дорогие друзья ! Хотел бы поделиться своими наработками в области сопряжения контролера HDD с CF картой, подробно.
    В ходе выполнения работ выяснил опытным путем, что не со всеми CF картами контроллер ведет себя правильно. Самый лучший вариант на данный момент это CF Kingston 256 mb. Китайские малой емкости - которые есть на али - не одну не получил в рабочем состоянии, лучше искать на авито. Еще, не рекомендую Transcend, не знаю все или нет, у меня были два экземпляра по 128 мб, оба искажали большие контрастные файлы при записи на диск, сдвигали произвольный кусок файла на 2 байта,. В обшем, приводили в негодность. Эти же карточки резко реагировали на тип и положение шлейфа IDE, на сложенном и скрученном шлейфе могла вообще не читать ничего, или искажать сильно при записи, вообще не писать, на развернутом - гораздо получше. На Kingston - вообще проблемы нет, работает на любом шлейфе в сложенном и развернутом виде, пишет без искажений.
    Для предотвращения заворота и удобного пользования диском при помощи программы ASC.COM - обрезал диск до 41 дискеты (32мб), путем инициации его INITHDD2 - c параметрами 124C16H32S

    кол-во цилиндров - 20H 32B
    кол-во головок - 10H 16B
    кол-во клайстеров - 7СH 124B

    Так работает идеально, без завоторов, 41B 29H дискет, в целом больше и не нужно...

    Программа ASC.COM - с зеленым интерфейсом прекрасно переносит перемонтирование диска - не вываливается, как многие другие, спасибо автору, жаль что он не известен.
    Кстати, хотелось бы сразу поинтересоваться, у кого есть рабочие исходники ASC ? Или кто знает как можно поменять цвет интерфейса, где он прописан в коде программы, по какому адресу, зеленый - очень яркий.

    Хочу так же поделиться образом диска - вот тут по ссылке можно скачать, там же описание - что на каком диске, и программа HDDRawCopy1.10Portable для записи образа на CF и последующего считывания.
    Считывается вся CF, так как она у меня 256 mb - обрезаю ее в hex редакторе, для экономии места.

    Скачать можно тут: https://yadi.sk/d/wrH30lL4UGK_3Q

    И есть еще один нюанс, на aliexpress доступно несколько типов CF to IDE плат. Так вот, они не все работают с картами Transcend (по крайней мере теми, которые у меня были). Те которые подключаются без шлейфа, у которых разъем "мама" - не работают, шлейф для этих карт очень критичен, должен быть. Так же на сильно коротком шлейфе тоже не работают. Но с картами Kingston проблемы нет, все читается и пишется на любой плате CF to IDE.



    Поменял на яндекс диске файл описания, добавил некоторые важные элементы описания...

    Еще один важный момент вспомнил,без него не заработает, не помню, писал в предидущих сообщениях или нет, если повторюсь, простите.

    На разьеме IDE (в моем случае, разьем на плате combodevise) вывод 37 (выбор контроллера) с выводом 40 (общий) спаял перемычкой и вывод 1 (reset) убрал, обрезал - все пошло. До этого жесткий диск не видился контроллером, или видился, но производил одни ошибки..




    Обновил образ CF на файлсервере, это наверное окончательная версия, тут уже вроде как все поисправлял что хотел, покрякал кое что, наделал ASC гармоничных расцветок, ну и там кое что из софта понаходил еще, в общем, кому интересно качайте.... https://yadi.sk/d/wrH30lL4UGK_3Q


    И еще кое что, на мой взгляд интересное. Попробовал как носитель CF карту на 32 мб от CANON - отлично работает, пишется и читается прекрасно, на векторе. На PC она в 3 раза медленнее чем Kingston И Transcend, и вместо 5 мб\сек еле набирает 1,9мб\сек. В целом это ничего, скорость работы с вектором не меняется из за этого, там максималка... Но есть одно но.... Kingston И Transcend, если зажать F2+F3 до включения компа, и включить - успевают инициализироваться и загрузка происходит с HDD. А в случае с CANON инициализация не проходит до опроса готовности HDD и старт переводится на касету. по этому, лучше ничего не трогать, тогда загрузка начинается с дискеты, и тогда можно нажать ввод+блк +F2+F3 и загрузка пойдет с HDD. То есть, CANON не успевает показать свою готовность до опроса контроллером HDD.

    CF CANON 32 мб имеет другие параметры,

    кол-во цилиндров - 20H - 32B
    кол-во головок - 4H - 4B
    кол-во клайстеров - 1EAH - 490B

    но в целом, на нее можно так же залить дамп с файлсервера https://yadi.sk/d/wrH30lL4UGK_3Q только предварительно поправить в дампе с 80 адреса 5 байт, вместо 20 10 7C 00 29 вписать 20 04 EA 01 28 или попросту запустить с FDD - программу INITHDD.COM и дать программе инициализировать диск уже после записи дампа, все данные останутся целыми, поменяются только 5 байт образа с 80 адреса.
    Последний раз редактировалось electroscat; 17.03.2020 в 23:07.

    Эти 9 пользователя(ей) поблагодарили electroscat за это полезное сообщение:

    crackintosh(02.01.2020), DATAsoft(23.02.2020), Felix_73(01.01.2020), KTSerg(29.01.2020), Silensilen(02.01.2020), Stas Bergich(02.03.2020), surinm(16.08.2021), svofski(01.01.2020), Дмитрий2012(02.01.2020)

  9. #138

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    На разьеме IDE (в моем случае, разьем на плате combodevise) вывод 37 (выбор контроллера) с выводом 40 (общий) спаял перемычкой
    Кстати, да, возможно это имеет смысл. В оригинальной векторовской схеме контроллера сигнал CS1FX# отключается после DIOR#/DIOW# с задержкой до 10-14нс (которую обеспечивает микросхема КР1533ЛИ1), какую задержку делает комбодевайс не знаю, но возможно этой задержки мало для нормальной фиксации данных CF-картой с переходником на IDE. Думаю, этот глюк можно решить в прошивке комбодевайса, просто увеличив там задержку отключения CS1FX# до 20 или более нс.

    Этот пользователь поблагодарил Improver за это полезное сообщение:

    electroscat(09.01.2020)

  10. #139

    Регистрация
    25.01.2009
    Адрес
    Canada, Toronto
    Сообщений
    32
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ASC.COM мой, правда он был с синим интерфейсом. Исходники тут: http://sensi.org/scalar/ware/794/
    Опять начал программировать на ассемблере!

  11. #140

    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    1,034
    Спасибо Благодарностей отдано 
    467
    Спасибо Благодарностей получено 
    194
    Поблагодарили
    125 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    - - - Добавлено - - -

    Цитата Сообщение от Stas Bergich Посмотреть сообщение
    ASC.COM мой, правда он был с синим интерфейсом. Исходники тут: http://sensi.org/scalar/ware/794/

    Доброго времени! Пытался ваши исходники скомпилить, и в TASM и в Pretty Assembler, в итоге получается только синий фон и красный прямоугольник выделения файла, без букв и прочего Я нашел в коде 3 ошибки, но результата это никакого не дало, код так же компилится в синий экран с красным прямоугольником с лева, меняющим своре положение по нажатию "таб" на правое... Программа запускает файлы, запрашивает подтверждение при попытке выхода, выход работает. Но на экране синий фон и прямоугольники выделения имен файлов, букв и псевдографики нет.. Что это может быть? Где то еще есть ошибки в коде. И когда компилится, файл получается на 1 кб меньше чем тот ASC что я использовал. Ваш код очень помог мне найти в машинном коде ASC место где цвета находятся, и еще некоторые другие интересные места, код местами очень похож на код ваших исходников, но лишь местами. В итоге, я из 3х найденных мной версий ASC нашел самый лучший (основным критерием явилось то, что программа не вылетает в MicroDOS c HDD при вводе команды 9, монтирования дискеты из HDD к определенной метке) и уже в коде наменял цветов, и кое чего еще. В целом, цель достигнута. Пытался собрать исходники из ваших, и дизассемблированных текстов лучшей версии ASC - но код таки местами сильно отличается, да и времени сейчас не очень много на это, по этому, остановился пока на исправлении того что мне мешало непосредственно в коде программы. А ваш код ASC адаптирован под версию MDOS c HDD? И почему он не отображает текст и псевдографику? Он компилился у вас в рабочюю программу?

    Проверил, ваша версия программы, которая по ссылке доступна скомпилированная, она вываливается, когда дискету монтируешь командой, например "9 А:2"... Тем не менее, если по исходникам можете помочь, может у вас осталась копия рабочих исходников, поделитесь пожалуйста. Те которые по ссылке не работают как надо.
    Последний раз редактировалось electroscat; 18.03.2020 в 10:38.

Страница 14 из 17 ПерваяПервая ... 1011121314151617 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Кино и вектор
    от ivagor в разделе Вектор
    Ответов: 92
    Последнее: 25.12.2023, 19:51
  2. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  3. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  4. Ищу ВЕКТОР-06ц
    от BYTEMAN в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 17.11.2008, 20:50
  5. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •