User Tag List

Страница 26 из 33 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя
Показано с 251 по 260 из 328

Тема: Контроллер дисковода для УКНЦ, работающий с образами на micro-SD карте.

  1. #251

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно, в принципе такой сигнал уже есть внутри, нужно только вывести его наружу.

  2. #252

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Можно, в принципе такой сигнал уже есть внутри, нужно только вывести его наружу.
    Ну и замечательно. А инструкция по общению с этим контроллером со стороны ЦП готова? А то, ИМХО, пора писать драйвер.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  3. #253

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока нет, вот и спрашиваю здесь, что нужно реализовывать?
    Пока так:
    1. ожидаем готовности на каждом шаге.
    2. в регистр данных заносим код операции
    3. номер тома
    4. номер блока в томе (мл.слово)
    5. номер блока в томе (ст.слово, 0 для RT-11)
    6. кол-во слов (16-бит хватит всем, а в случае с RT-11 - даже 15 бит)
    7. здесь можно прочитать предварительный результат операции из регистра 2.
    8. читаем/пишем данные
    9. читаем результат операции из регистра 2.

    Я пока ничего не делал, так что предложения принимаются.

  4. #254

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    А то, ИМХО, пора писать драйвер.
    есть маленькое пожелание, по возможности, не ограничивать возможность работы с утройством
    версией монитора. ну что бы от 5.0 и все все все )
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  5. #255

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    1. ожидаем готовности на каждом шаге.
    2. в регистр данных заносим код операции
    3. номер тома
    4. номер блока в томе (мл.слово)
    5. номер блока в томе (ст.слово, 0 для RT-11)
    6. кол-во слов (16-бит хватит всем, а в случае с RT-11 - даже 15 бит)
    7. здесь можно прочитать предварительный результат операции из регистра 2.
    8. читаем/пишем данные
    9. читаем результат операции из регистра 2.
    1. На каждом шаге проверяем бит завершения и если он установлен - контроллер завершил выполнение команды.
    2. Если код операции ошибочный - контроллер установит биты ошибки и завершения.
    3. Если к указанному номеру тома не подключен образ - контроллер установит биты ошибки и завершения.
    4,5. Если номер блока больше размера образа - контроллер установит биты ошибки и завершения.
    6. Если количество слов больше имеющегося в образе места от номера блока до конца образа - контроллер установит бит ошибки, но прочитает/запишет всё имеющееся место.


    Коды команд контроллера:

    000 - CHECK - Контроллер возвращает в старшем байте регистра данных номер тома последней операции, а в младшем - код состояния ( код ошибки последней операции ).
    001 - READ
    002 - WRITE
    004 - SIZE - Номер Тома - Контроллер возвращает два слова размера подключенного образа ( мл.слово-ст.слово ). Если образ не подключен - контроллер сразу ставит биты ошибки и завершения.


    Коды ошибок:

    IS_SUC = 0001; // нет ошибки
    IE_OFL = 0277; // устройство offline (образ не подключен)
    IE_BLK = 0354; // выход за пределы устройства
    IE_WLK = 0364; // попытка записи на защищённое устройство
    IE_VER = 0374; // неустранимая ошибка (например внутренняя ошибка контроллера)
    IE_IFC = 0376; // неверная команда
    Последний раз редактировалось Patron; 01.08.2017 в 20:21.

  6. #256

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати, забыли о том, что диски в наших системах имеют блочную структуру. Если отправить на запись кусок произвольной длины, то в последнем блоке, в "хвосте", может остаться мусор. Я на эти грабли уже наступал, но у меня, в качестве мусора, было последнее переданное по DMA слово, в итоге, сохраненный исходник при загрузке в EDK показывал в конце текста множество пустых строк, если последним словом было 005015 (<ВК><ПС>, длина занятой части файла четная) да, в придачу еще и как-то неадекватно себя вел, если последнее слово было 000012 (<ПС>0, длина нечетная). А здесь в RT-11 возможны вообще всяческие чудеса.

    Далее, определяемся с регистрами. Как я понял, основной, всегда доступный регистр состояния - 176560, т в нем бит Д7 (0200) - готовность к обмену через 176562, так? Еще какие-то адреса есть? Вроде бы загрузчику из сети требовались еще 176564 и 66, они дальше используются? Какие еще биты есть или планируются в 176560?
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

  8. #257

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Кстати, забыли о том, что диски в наших системах имеют блочную структуру. Если отправить на запись кусок произвольной длины, то в последнем блоке, в "хвосте", может остаться мусор. Я на эти грабли уже наступал, но у меня, в качестве мусора, было последнее переданное по DMA слово, в итоге, сохраненный исходник при загрузке в EDK показывал в конце текста множество пустых строк, если последним словом было 005015 (<ВК><ПС>, длина занятой части файла четная) да, в придачу еще и как-то неадекватно себя вел, если последнее слово было 000012 (<ПС>0, длина нечетная). А здесь в RT-11 возможны вообще всяческие чудеса.
    Это баг или фича? Нужно повторять такое поведение? Сейчас еще раз глянул исходники FatFS, там неполный сектор предварительно считывается.

    Цитата Сообщение от AFZ Посмотреть сообщение
    Далее, определяемся с регистрами. Как я понял, основной, всегда доступный регистр состояния - 176560, т в нем бит Д7 (0200) - готовность к обмену через 176562, так? Еще какие-то адреса есть? Вроде бы загрузчику из сети требовались еще 176564 и 66, они дальше используются? Какие еще биты есть или планируются в 176560?
    176564 повторяет значение 176560 при чтении. Я хотел исполбзовать 176566 для чтения кода ошибки, но patron предлагает через команду CHECK.

  9. #258

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Это баг или фича? Нужно повторять такое поведение?
    Баг, вестимо. Положено недописанный остаток блока заполнить двоичными нулями.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    176564 повторяет значение 176560 при чтении. Я хотел исполбзовать 176566 для чтения кода ошибки, но patron предлагает через команду CHECK.
    А 176562 - регистр команд/данных?

    Какие биты определены в 176560? Кто из них аппаратный, а кто эмулируется программой Кортекса?

    Когда Кортекс занят длительной операцией (прочитать или записать сектор SD-шки) и не исполняет программу эмуляции программных регистров, что видно и что можно записать в РС ? (обращение к РД, как я понимаю, вызовет TRAP TO 4)
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  10. #259

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Если отправить на запись кусок произвольной длины, то в последнем блоке, в "хвосте"
    Насколько мне не изменяет память, контроллеры аналоги RK05, RK06 и 20-ти мбайтный DP (не помню, чей аналог) добивали сектор нулями до 512 байт при записи не полного сектора

  11. #260

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Я хотел исполбзовать 176566 для чтения кода ошибки, но patron предлагает через команду CHECK.
    Если есть лишний регистр - лучше использовать его, а не команду CHECK.

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

    Для битов ошибки и завершения можно использовать младшие биты 176560 ( 01 == DONE ; 02 == ERROR ). Тогда опрос регистра может выглядеть так:

    Код:
    1$:	MOV	@#176560, R0
    	BPL	1$
    	ASR	R0
    	BCS	DONE
    	.......
    DONE:	ASR	R0
    	BCS	ERROR
    Последний раз редактировалось Patron; 02.08.2017 в 15:52.

Страница 26 из 33 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Контроллер дисковода +3 DOS
    от Tim в разделе Внешние накопители
    Ответов: 8
    Последнее: 17.04.2012, 16:32
  3. [Украина]Продам контроллер дисковода УКНЦ,аукцион.
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 25.12.2011, 00:09
  4. Куплю контроллер дисковода
    от djvini в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 21.04.2011, 01:19
  5. Куплю контроллер дисковода для УКНЦ
    от tnt23 в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 27.02.2009, 08:51

Ваши права

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