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

User Tag List

Страница 18 из 36 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 357

Тема: Контроллер псевдодиска на SD-карте для ДВК + Ethernet

  1. #171
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,013
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    118
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посмотрел. Круто. Снимаю шляпу!

    А как его транслировать и собирать? Там довольно сложные манипуляции с секциями, расположением и пр. Сходу не въедешь. Батничек... Ой, пардон, com-файлик не сохранился?
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  2. #172
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,717
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    22 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    А как его транслировать и собирать?
    Просто компилировать MNT.MAC - там включается HEAD00.MAC, который уже подтягивает всё остальное.

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

    Цитата Сообщение от AFZ Посмотреть сообщение
    Там довольно сложные манипуляции с секциями, расположением и пр. Сходу не въедешь.
    Это исполняющая система, которая всё делает сама. Использована концепция "библиотеки исходников", потому что только при включении всех исходников в один "корневой" можно создавать переменные не в виде нулевых слов в коде, а в виде смещений от конца кода.

  3. #173
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,013
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    118
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Увы, оно работает только под последними версиями RT-11. С какой версии начали передавать остаток командной строки с адреса 510 ? С 5.04, да? В общем, моя любимая RT-11DS (SJ) V5.01 в их число не попадает...

    Ладно, буду думать.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  4. #174
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    562
    Спасибо Благодарностей отдано 
    101
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    75 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Увы, оно работает только под последними версиями RT-11. С какой версии начали передавать остаток командной строки с адреса 510 ? С 5.04, да? В общем, моя любимая RT-11DS (SJ) V5.01 в их число не попадает...
    Ладно, буду думать.
    да, надо предусматривать совместимость со старыми версиями - дабы ADOS работал
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  5. #175
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,013
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    118
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Без этого при достаточно большом количестве образов пользователь будет регулярно пытаться смонтировать один и тот же образ дважды. Простое решение - в момент монтирования переименовывать монтируемый образ, добавляя к нему расширение с номером привода. Типа SYSTEM.DSK -> SYSTEM.DSK.001
    В принципе, у файлов еще есть атрибуты. Причем флажки Hidden и System у нас не используются. Можно заюзать их. Смонтированному диску ставить HIDDEN, а тому, с которого загрузились, дополнительно - System. Для этого добавить в устройство команду "пометить диск, как загрузочный", а в первичном драйвере выдать ее.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #176
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,717
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    22 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Ладно, буду думать.
    Нужно переделать ввод командной строки:

    Код:
    ;************************************************************************
    ;*									*
    ;*	Подпрограмма		GETLIN					*
    ;*									*
    ;*   -	Назначение		Ввод командной строки вызова программы 	*
    ;*				в буфер с адресом в R0.			*
    ;*									*
    ;*				При пустой командной строке возвращает	*
    ;*				SeC					*
    ;*									*
    ;************************************************************************
    
    .Procedure	GETLIN
    
    	Mov	R0,    R1
    	Mov	#510,  R2
    	Mov	(R2)+, R3
    	BEq	1$
    	Dec	R3
    	BEq	1$
    	.GTLIN			; Нужно убрать командную строку из буфера KMON
    
    2$:	MovB	(R2)+, (R1)+
    	SOB	R3, 2$
    
    	ClrB	(R1)
    	Tst	(PC)+
    1$:	SeC
    	Return
    .End.
    Вызов .GTLIN при отсутствии командной строки рисует приглашение программы, а при наличии - переставляет две части введённой строки местами, помещая между ними символ "=" (и если не ошибаюсь - заменяя пробелы на запятые). Нужно написать обратное преобразование (когда-то давно для ввода командной строки в ранних версиях RT-11 я уже такое делал) и тогда единственным отличием станет появление приглашения программы при вызове программы без аргументов.

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

    Цитата Сообщение от AFZ Посмотреть сообщение
    В принципе, у файлов еще есть атрибуты. Причем флажки Hidden и System у нас не используются. Можно заюзать их. Смонтированному диску ставить HIDDEN, а тому, с которого загрузились, дополнительно - System. Для этого добавить в устройство команду "пометить диск, как загрузочный", а в первичном драйвере выдать ее.
    Помечать загрузочный диск есть смысл только в том случае, когда предусмотрена автоматическая загрузка с ненулевого привода. Нужность такой опции (а значит - и всех связанных с её реализацией заморочек) представляется довольно сомнительной.

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

    Использование флажков, как быстрого способа отличить смонтированный образ от обычного - хорошая идея только в том случае, когда контроллер не успевает фильтровать выдаваемый в ДВК список файлов на флешке по своему списку монтирования. Ведь флажок не может заменить список монтирования, а значит он имеет смысл только тогда, когда сильно экономит какие-то ресурсы (например - сильно упрощает написание алгоритма формирования списка доступных для монтирования файлов).
    Последний раз редактировалось Patron; 18.06.2019 в 10:18.

  7. #177
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,013
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    118
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проблема, правда, возникнет, когда ДВК-шик вырубят внезапно. При плановом выключении (получив низкий на К ПИТН В) можно попытаться снять все эти атрибуты со смонтированных файлов, обещанных 10 мс от снятия К ПИТН В до снятия К ПОСТН В и отключения питания должно хватить. А вот внезапное вырубание всяких самодельных источников (которые сделаны из АТХ) - это ой!

    Те файлы, которые прописаны в AZ.INI можно, конечно, смонтировать, игнорируя эти флаги (и потом поставить их, как надо). А вот с файлами, смонтированными на ходу, будут сложности...

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

    Цитата Сообщение от Patron Посмотреть сообщение
    Помечать загрузочный диск есть смысл только в том случае, когда предусмотрена автоматическая загрузка с ненулевого привода. Нужность такой опции (а значит - и всех связанных с её реализацией заморочек) представляется довольно сомнительной.
    Не факт. Я подаю команду BO AZ2:, и? А для того, чтобы не перемонтировать системный диск (любая ОС от такого, скорее всего, упадёт), в программе надо дополнительно контролировать это дело. Но это, скорее всего, можно будет обойти и как-то по-другому.

    Цитата Сообщение от Patron Посмотреть сообщение
    Ведь флажок не может заменить список монтирования, а значит он имеет смысл только тогда, когда сильно экономит какие-то ресурсы (например - сильно упрощает написание алгоритма формирования списка доступных для монтирования файлов).
    Тоже верно. В принципе, мне, по всей видимости, будет не особенно трудно проверить файл по списку монтирования. Ладно, это надо обдумать.

    Цитата Сообщение от Patron Посмотреть сообщение
    Вызов .GTLIN при отсутствии командной строки рисует приглашение программы, а при наличии - переставляет две части введённой строки местами, помещая между ними символ "=" (и если не ошибаюсь - заменяя пробелы на запятые). Нужно написать обратное преобразование
    Мне казалось, что лучше было бы принять строку CSI и, если в ней указан какой-то файл, использовать его, как источник команд. Если же строки нет, то принимать последовательность команд через .GTLIN и отрабатывать их, зациклив программу. Через .GTLIN - это чтобы можно было править строку посредством SL. В общем, тоже надо обдумать.

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

    И вообще, тут вот СуперМакс высказал предложение: сделать все эти дела внутри контроллера. Переключить контроллер в некоторое подобие терминала и общаться с юзером через терминал ДВК. Тогда программа в ДВК будет совсем маленькой, ее спокойно можно вписать в программу начальной загрузки, которую я пересылаю в ДВК при запуске. И это дело будет работать на голом железе, до загрузки любой ОС. В принципе, продублировать этот кусочек в виде отдельной программы под любую ОС, и можно будет рулить этими делами и на ходу, а не только при запуске.

    Так, что информации к размышлению - море! Буду думать...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    И вообще, тут вот СуперМакс высказал предложение: сделать все эти дела внутри контроллера. Переключить контроллер в некоторое подобие терминала и общаться с юзером через терминал ДВК.
    Да, переключить контроллер в терминальный режим и принимать/передавать потоки байтов через родной регистр данных контроллера. Тогда программа в ДВК должна просто "коммутировать" эти потоки с системным терминалом, а всё остальное будет делать контроллер - рисовать промпт, выводить HELP, разбирать и выполнять команды. Это самый крутой способ, максимально совместимый со всеми возможными применениями контроллера.

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

    Но здесь есть и подводный камень - в многозадачном окружении контроллер должен запоминать фазу терминального обмена на время выполнения блочного обмена. Иначе когда (например) фоновая задача дефрагментирует какой-то диск, смонтировать новый образ в какой-то свободный привод не получится.

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

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

    Таким образом "терминальный агент" оказывается более сложным - перед чтением или записью каждого потокового байта агент должен выдавать в контроллер специальную команду "прочитать терминальный байт" или "записать терминальный байт". В таком случае всё будет работать и в многозадачном окружении.
    Последний раз редактировалось Patron; 18.06.2019 в 14:31.

  9. #179
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    562
    Спасибо Благодарностей отдано 
    101
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    75 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да, для многозадачного решения надо будет продумать архитектуру, но пока начнем с простого - те однозадачный вариант
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  10. #180
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    3,087
    Спасибо Благодарностей отдано 
    125
    Спасибо Благодарностей получено 
    187
    Поблагодарили
    161 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проблему разрушенного содержания накопителя при внезапном снятии питания обычно решают приделыванием достаточно большого конденсатора на связку "контроллер-накопитель", и детектирования понижения входных +5в. до, например, +4.5 в.
    В самой минимальной конфе такой аддон будет содержать сам электролит ( например ~~2200 мкф 6.3 в. ), несколько диодов Шоттки , участок измерения питающих +5в. и софтовую поддержку этого в ОЭВМ.
    Для более сложного варианта можно приделать и 8-выв. DC-DC ИС, обеспечивающую стабильные +5в. 0.1 сек после снятия основного +5в.
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU

Страница 18 из 36 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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