Важная информация

User Tag List

Страница 2 из 69 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 690

Тема: Контроллер псевдодиска на SD-карте для ДВК/ УКНЦ / PDP-11 original + Ethernet

  1. #11
    Guru Аватар для MiX
    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,065
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Образ HD - это файл на карте SD
    Во как!
    Значит контроллер должен поддерживать файловую систему (FAT16/32) и распаковывать образ DSK.

    Цитата Сообщение от Patron Посмотреть сообщение
    Вытащить карту SD при работающем контроллере, это как вытащить флешку из гнезда USB,
    Вот по этому и был задан вопрос. Значит карту нельзя вынимать на протяжении всего сеанса, вплоть до выключения компьютера.

  2. #12
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,994
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Значит контроллер должен поддерживать файловую систему (FAT16/32)
    Насколько я успел посмотреть, уже есть готовые библиотеки.
    Цитата Сообщение от MiX Посмотреть сообщение
    распаковывать образ DSK
    ? Считаем смещение в файле образа (если хитрые, типа .dw .rd .dx .dy - просто немного хитрее смещение считается) и дальше читаем или пишем затребованное количество байт (при записи добивая нулями до следующей кратной 512 байтам границе). Никакой распаковки упаковки - файловую систему поддерживает система на ДВК

  3. #13
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    В моем варианте реализации DMA - это лишние 6 шинных драйверов для A16-21, второй комплект шинных драйверов для управляющих сигналов (СИА, СИП, ВВОД, ВЫВОД и т.д.). Если делать без ДМА, то на прием с МПИ хватит 1/6-й простого 1533ЛН1, на передачу - половины 155ЛА18 или похожей мощной восьминожки с другой логической функцией. А для ДМА их придется ставить двусторонними, или ставить второй комплект с обратной функцией. Да, увеличивается количество рассыпухи, причем заметно.
    Без ДМА придётся делать пакетную эмуляцию ДМА ( когда передача "блока ДМА" начинается с появления бита 040000 в CSR и заканчивается появлением бита READY в CSR, а в промежутке - сначала в регистре данных выдаётся счётчик передаваемых слов, а потом все слова пакета со скоростью шины, т.е. без проверки готовности для каждого отдельного слова ).

    Но при такой реализации "псевдо ДМА" - минимальный загрузчик, отправляющий команду "передать блок 0 устройства 0" и считывающий из регистра данных пакет "псевдо ДМА" - будет выглядеть так:

    Код:
    Error:				; При ошибке - повторить чтение.
    	Mov	#177720, R1	; HD CSR -> R1
    	Mov	#10,    (R1)	; 010 == Read Boot
    	Tst	(R1)		; Блок "псевдо ДМА" готов?
    	BEq	.-4.		; Нет..
    	Tst	(R1)+		; Была ошибка чтения?
    	BMi	Error		; Да..
    	Mov	(R1), R0	; Word Count -> R0 
    	Clr	R2		; Buff Addr  -> R2
    	Mov	(R1), (R2)+	; Читаем слова блока
    	SOB	R0, .-4.	; Все слова переданы?
    	Clr	PC		; Переходим на адрес 000000

    Если часть предварительных операций выполнить вручную - минимальный код загрузчика в ОЗУ ДВК будет таким:

    Код:
    	Mov	(R1), R0	; Word Count -> R0 
    	Mov	(R1), (R2)+	; Читаем слова блока
    	SOB	R0, .-4.	; Все слова переданы?
    	Clr	PC		; Переходим на адрес 000000

    При работе с пульта ДВК это будет выглядеть так:

    Код:
    *****  ДОСТУПНОЕ  ОЗУ  - 256 K *
    @ 001000
    @R1/001122 177722
    R2/000000
    @R7/001000 10000
    @0010000/000000 11100
    00010002/000000 11122
    00010004/000000 77002
    00010006/000000 5007
    @17777720/040200 10
    @17777720/000000 /040000
    @P
    HD Boot-I-Cold boot..
     
    HD (177720) disk driver  v4.0  2017
    SL V08.00 [SW] Сторожевых С.В. 1988
    KZ V01.00 (C) ВЦ МИЭТ,  НОЯБРЬ 1987
     
    RT-11SB (Y) V05.07

    Если такая процедура загрузки устраивает - можно сделать разновидность контроллера HD с пакетной эмуляцией DMA. В режиме записи - передавать счётчик слов в пакете не надо, потому что контроллер использует счётчик слов, переданный командой "задать счётчик слов". Важная особенность, которую надо учитывать, заключается в том, что контроллер может отдать в пакете меньше слов, чем было указано в счётчике слов чтения, поэтому в качестве счётчика слов при приёме пакета "псевдо ДМА" - обязательно должно использоваться первое слово пакета. При записи контроллер может записать не все переданные ему слова, но перед этим принимает пакет целиком - в соответствии со значением текущего счётчика слов.

    Текущие значения номера привода, номера блока и счётчика слов сохраняются между операциями и обнуляются по сигналу шины INIT ( команда CPU = RESET ).

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

    Сигнал INIT и любая запись в CSR на этапе чтения/записи пакета "псевдо ДМА" - принудительно завершают выполнение текущей команды и переводят контроллер в режим приёма команды. При этом, в случае записи в CSR - выполнение текущей команды завершается с установкой бита ошибки в CSR и кода ошибки IE_ABT = 0375 в регистре данных.

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

    Чтобы операционка могла сбросить операцию на "этапе заглушки" - можно добавить в заглушку возможность приёма сигналов DOUT и INIT с установкой флагов для контроллера. Тогда, при выходе из "режима заглушки" контроллер при наличии флага INIT или флага записи в CSR - отменяет посылку прерывания, отключает прерывания, а всё остальное делает так же, как в случае приёма INIT или записи в CSR на этапе обмена пакетами.
    Последний раз редактировалось Patron; 26.09.2017 в 01:14.

  4. #14
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,134
    Спасибо Благодарностей отдано 
    470
    Спасибо Благодарностей получено 
    519
    Поблагодарили
    412 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как бы сделали в НЦ в 1990-е :
    Собственно котроллер-полуплата состоит из 2-х частей :
    1. Телеграфный адаптер для карточки, по типу ВП1-065.
    2. Небольшой участок ПЗУ загрузчика, да со сменным адресом. ИМХО - в 000400 можно уложиться для загрузки 0 сектора карточки.

    Т.е. все эти шевеления с ФАТ - программно в драйвере.
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда надо проверять какой-то бит - команда становится длиннее на одно слово ( маску этого бита ).
    Если этот бит - не Д15.

    Цитата Сообщение от MiX Посмотреть сообщение
    Значит контроллер должен поддерживать файловую систему (FAT16/32) и распаковывать образ DSK.
    Именно. Я давно продвигаю основной тезис этого дела: псевдодиск PDP-11 на современном носителе должен быть файлом для писюка. Вне зависимости от типа носителя, будь то простая USB-флешка, SD-карточка, винчестер, да вообще, хоть SSD-шник. Чтобы сняв этот носитель и подключив его к писюку можно было нормальными писюшными средствами свободно манипулировать файл-образами. Архивировать, выкладывать в Нет, заливать на носитель свежеукачанные из Нета файл-образы и пользовать их на ДВК. А что делать, допустим, с УКНЦ-шным WD? Правильно, без специальной программы (которой нет), ничего. Разве что посекторную копию сделаешь...

    А распаковки файл-образы .dsk не требуют, этим будет заниматься ОС, работающая на ДВК, точно так же, как это делается на эмуляторе.

    Цитата Сообщение от Patron Посмотреть сообщение
    Чтобы операционка могла сбросить операцию на "этапе заглушки" - можно добавить в заглушку возможность приёма сигналов DOUT и INIT с установкой флагов для контроллера. Тогда, при выходе из "режима заглушки" контроллер при наличии флага INIT или флага записи в CSR - отменяет посылку прерывания, отключает прерывания
    А вот об этом я забыл... Спасибо.

    Что касается формата регистров, я еще не решил, и вообще, всё, кроме "заглушки" легко будет перепрограммировать под любой формат, а вот заглушка - вещь аппаратная и изменить ее будет не так просто. Именно поэтому ее нужно спланировать очень тщательно, и, желательно, чтобы она, во-первых, была минимальной по объему аппаратуры, во-вторых не сильно привязана к тому или иному формату регистров и, в третьих, если получится, выполняла еще какие-либо полезные функции.

    В частности, если адресную часть цикла МПИ обрабатывать аппаратно, можно попробовать обрабатывать запросы МПИ в режиме прерываний. Программная реализация этого дела предусматривают строго синхронную "прополку" (Polling), поскольку нельзя пропустить фронт СИА, да и не сдюжит 72-МГц процессор прерываний с частотой 1 МГц - это же, максимум, 72 команды от одного прерывания до другого - ведь нужно и сохраниться, и в конце восстановиться, и проверить, к нам обращаются, или нет, и это по каждому обращению к МПИ, включая память. Так и на основную программу времени не останется. А вот если адрес зафиксируется аппаратно, причем "наш" адрес, на чужие не реагировать, то вполне можно и СИП притормозить, если что... Если это сойдется, то, может быть и отключать регистры не понадобится. Но, опять же, это большое количество рассыпухи, что очень не хочется. В общем, буду прикидывать схемы и думать...

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

    Цитата Сообщение от MM Посмотреть сообщение
    Т.е. все эти шевеления с ФАТ - программно в драйвере.
    Нет никаких там ФАТов. По-простому, сектор 0-0-1 - блок 0, 0-0-2 - блок 1 и т.д. А сделать FAT в драйвере PDP-11... Известное творение г-на Чана - FatFS, при всех его оптимизациях и отсечениях всего, сколь-нибудь избыточного, занимает на любой платформе не менее 10=12К, отдать столько на драйвер - так ведь для работы места не останется...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #16
    Guru Аватар для MiX
    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,065
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    А распаковки файл-образы .dsk не требуют, этим будет заниматься ОС, работающая на ДВК, точно так же, как это делается на эмуляторе.
    Распаковкой DSK занимается ОС работающая на ДВК только одного образа с одного диска. Если на SD карте несколько образов, то контроллер должен распределить на каком диске какой образ. Для этого делаются маркеры в имени файла.
    Например: HD000.DSK, HD001.DSK, HD001.DSK... итд.

    Более того, какой размер должен быть у образа? 32Мб?
    Тогда нужна утилита для форматирования из под ОС на ДВК.
    И не забудьте про блокиратор записи на SD карте.

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

  8. #17
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Если этот бит - не Д15.
    Старший бит CSR у всех контроллеров означает: команда завершена с ошибкой.

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

    Цитата Сообщение от MiX Посмотреть сообщение
    Например: HD000.DSK, HD001.DSK, HD001.DSK... итд.
    Лучше: 000.исходное имя образа, 001.исходное имя образа - тогда и пользователь, и контроллер смогут легко управлять монтированием.

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

    Цитата Сообщение от AFZ Посмотреть сообщение
    А что делать, допустим, с УКНЦ-шным WD? Правильно, без специальной программы (которой нет), ничего. Разве что посекторную копию сделаешь...
    DSK-плагин для TC поддерживает упаковку/распаковку прямых и инверсных образов HDD UKNC на DSK-образы разделов, а также прямую работу с содержимым разделов HDD UKNC в образе HDD, если эти разделы содержат файловые системы, поддерживаемые плагином.

  9. #18
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,994
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто-нибудь потом, странице где-нибудь на 13, если тема до неё доживёт, сравните, пожалуйста общий ход обсуждений здесь и здесь: 32-разрядный процессор, полностью совместимый с архитектурой PDP-11

  10. #19
    Guru Аватар для MiX
    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,065
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Кто-нибудь потом, странице где-нибудь на 13, если тема до неё доживёт, сравните, пожалуйста общий ход обсуждений здесь и здесь: 32-разрядный процессор, полностью совместимый с архитектурой PDP-11
    Не понял намёка... ???

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

    Цитата Сообщение от Patron Посмотреть сообщение
    DMA полезно для загрузки, потому что можно добавить контроллеру команду "прочитать блок 0 устройства 0 по адресу 0"
    А как это будет выглядеть? Без загрузчика будет загружаться?

  11. #20
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,994
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати, вот вам ещё идея начального загрузчика:
    - принцип - как у MY - то есть нулевой сектор читаем с адреса 0, 1000 или какого ещё.
    - у устройства есть 2 спец регистра. Команда 17abcdG (где 17abcd - первый из них) приводит к следующему - устройство выдаёт по это адресу значение 777 (если я не ошибся с кодом BR .), одновременно читая по адрес 0 или 1000 или см выше начальный загрузчик и как только он прочитан, по адресу 17abcd читается JMP @(PC)+, а с адреса 17abcd+2 - соответственно 0 или 1000 или см выше.

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

    Цитата Сообщение от MiX Посмотреть сообщение
    Без загрузчика будет загружаться?
    Как в MY

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

    Цитата Сообщение от MiX Посмотреть сообщение
    Не понял намёка... ???
    Ничем не могу помочь.

Страница 2 из 69 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 116
    Последнее: 20.01.2024, 17:40
  2. Ответов: 327
    Последнее: 03.12.2019, 22:49
  3. Контроллер IDE PATA для QBUS (Э-60, ДВК)
    от Жека:) в разделе Новодел
    Ответов: 4
    Последнее: 04.05.2012, 14:40

Ваши права

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