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

User Tag List

Страница 1 из 28 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 273

Тема: Протокол HX - имитация блочного устройства с последовательным интерфейсом.

  1. #1
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Протокол HX - имитация блочного устройства с последовательным интерфейсом.

    Большинство старых компьютеров имеют в своём составе последовательный порт, поэтому имитатор блочного устройства ( диска с секторами по 512 байт ) с последовательным интерфейсом - часто может быть использован с ними для загрузки программ.

    При разработке протокола HX преследовались две основные цели:

    1. Передача блочного обмена по последовательному каналу.
    2. Передача терминального обмена по тому же самому каналу.

    В результате появилась технология, позволяющая использовать последовательный порт не только для загрузки программ, но также и для загрузки операционной системы и даже для загрузки операционной системы через порт её системного терминала.

    ...

    В своём развитии протокол HX прошёл следующие этапы:

    HX v1.1 - добавлена поддержка сжатия при чтении.

    HX v2.0 - порядок байтов при передаче слов заголовков и контрольных сумм приведён в соответствие с порядком байтов при передаче данных ( little-endian ), 16-битный номер блока заменён на 32-битный, счётчик слов в операциях чтения и записи заменён на счётчик байтов.

    HX v2.1 - сервер при записи перестал дополнять неполные блоки нулями (на диск пишется ровно столько байтов, сколько было передано). При запросе чтения, переходящем через размер образа диска, смонтированный в приводе - возвращаются только реально прочитанные байты. При запросе записи, переходящем через размер образа - пишутся только "умещающиеся" байты и возвращается признак конца файла.

    HX v2.2 - в протоколе появилась поддержка указания желательного типа сжатия в запросах чтения сжатых данных.

    HX v2.3 - добавлена поддержка команды TU58 "передать загрузчик для привода 0". Теперь, после получения байтов "\x04\x08\x00" - сервер передаст первые 512 байтов образа, подключенного к нулевому приводу.

    HX v2.4 - добавлена поддержка спецкоманд. Добавлены спецкоманды: EcHo, BrEaK, VeR.

    ...

    В архитектуре протокола HX реализованы следующие основные идеи:

    1. Сервер только отвечает на запросы клиента.

    2. Клиент никогда не отвечает на ответы сервера.

    3. Вся информация, необходимая для контроля версий, содержится в каждом запросе клиента.

    4. Все версии протокола, начиная с 2.1 - обратно совместимы ( клиент, поддерживающий HX v2.1 - сможет работать с любой последующей версией сервера ).

    5. Сервер (в общем случае) является фильтром, вырезающим из потока байтов пакеты блочного обмена и пропускающим терминальный обмен без изменений. Все принимаемые сервером байты запроса клиента сохраняются и в случае ошибочного опознавания запроса там, где его не было - возвращаются в терминальный обмен. В некоторых реализациях данное требование может не соблюдаться.

    ...

    Протокол HX имеет следующую структуру:

    1. Весь обмен осуществляется в виде пакетов.

    2. Все пакеты (кроме спецпакета №1 и спецпакета №2) имеют контрольную сумму. Контрольная сумма передаётся в двух последних байтах пакета.

    3. Пакеты могут быть трёх основных типов:

    --- 1) Короткий пакет с заголовком, начинающимся с байта длины пакета. Короткий пакет c нулевым байтом длины - это спецпакет №1.
    --- 2) Длинный пакет с заголовком, начинающимся с двух байтов длины пакета. Длинный пакет с двумя нулевыми байтами длины - это спецпакет №2.
    --- 3) Упакованный поток - не имеет заголовка. Структура упакованного потока зависит от используемого типа сжатия.

    4. Запрос клиента начинается байтом SOH. Значение байта SOH зависит от покления запрашиваемого протокола HX. Для протокола поколения 2 - это байт 01.

    5. Второй байт запроса клиента - байт типа пакета. Клиент посылает три типа пакетов:

    --- 1) Короткий пакет, начинающийся с байта 0375.
    --- 2) Длинный пакет, начинающийся с байта 0376.
    --- 3) Спецкоманда, начинающаяся с байта 0373.

    6. После байта типа пакета и одного или двух байтов длины пакета располагается тело пакета, завершаемое контрольной суммой. Контрольная сумма считается 16-разрядным суммированием байтов пакета между длиной и контрольной суммой ( не включая ни длину, ни контрольную сумму ). Спецкоманды не оформлены в пакеты и получают от сервера специальные ответы.

    7. Первый байт тела запроса клиента определяет вид пакета. В HX 2.2 есть только один вид запроса клиента - команда ( байт вида пакета 'C' ).

    8. Следующий байт после C задаёт команду клиента.

    Для коротких пакетов это:

    --- 1) R - чтение несжатых данных.
    --- 2) r - чтение сжатых данных.
    --- 3) s - запрос размера диска.

    Для длинных пакетов это:

    --- 1) W - запись несжатых данных.

    9. Затем передаётся байт номера привода и, для запросов чтения и записи - 4 байта номера блока и 2 байта счётчика байтов.

    Читать и писать лучше всего кусками, кратными размеру блока ( 512 байт ). Однако, возможно и чтение, и запись любого количества байтов ( от 1 до 65525 ) от начала любого блока.

    10. После получения от клиента спецкоманды EcHo - сервер будет возвращать клиенту все получаемые от него байты, включая завершающий нулевой байт.

    11. После получения от клиента спецкоманды BrEaK - сервер отправит клиенту сигнал BREAK.

    12. После получения от клиента спецкоманды VeR - сервер отправит клиенту два байта версии и ревизии протокола ( сейчас это: 002 ; 004 ).


    Что происходит дальше словами описать трудно, поэтому в приложении находится исходный текст ( на С++ ) фильтра HX v2.2 и исходный текст ( на MACRO-11 ) драйвера HX.SYS для RT-11.

    ...
    Вложения Вложения
    Последний раз редактировалось Patron; 23.09.2017 в 17:29.

  2. Эти 10 пользователя(ей) поблагодарили Patron за это полезное сообщение:
    alone (08.06.2014), CodeMaster (14.07.2014), hobot (22.01.2013), Keeper (03.02.2013), Murzik (22.01.2013), mvb (25.09.2013), NovaStorm (22.01.2013), nzeemin (10.02.2013), Vslav (03.09.2017), Ал-р (26.03.2014)

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

  4. #2
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Текущая версия сервера HX для использования PC, подключенной через COM-порт к порту С2 УКНЦ - в качестве эмулятора диска при работе на УКНЦ, включая возможность загрузки RT-11 при помощи пункта стартового меню УКНЦ: "Загрузка через стык С2".

    HX_Server 2.3_-_UKNC_-_C2_26.03.14_15-57

    ...

    Загрузчик RT-11, проверяющий бит оверрана ВП1-065:

    Boot_RT-11_from_HX0_(+065_overrun_test_v2_)

    Загрузчик NC-11, проверяющий бит оверрана ВП1-065:

    Boot_NC-11_from_HX0_(+065_overrun_test_v2_)

    ...

    Комплект сервера HX для работы через порт CA УКНЦ:

    HX_Server 2.3_-_UKNC_-_CA_26.03.14_15-57.

    ...
    Последний раз редактировалось Patron; 26.03.2014 в 17:24.

  5. Этот пользователь поблагодарил Patron за это полезное сообщение:
    hobot (10.02.2013)

  6. #3
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имя COM-порта для сервера HX нужно указать в разделе [ComPort.ini] используемого файла конфигурации ( UKNC_HX_COM.cfg или NC11_HX_COM.cfg ):

    Код:
    [ComPort.ini]
    PortName = COM1
    InitialStateOf[ShowPortUse]=1
    SaveChangesFor[ShowPortUse]=1
    InitialStateOf[StopReading]=0
    SaveChangesFor[StopReading]=0
    Настройки по-умолчанию для COM-порта находятся в файле Terminal_ComPort_Adapter.ini и полностью соответствуют параметрам DCB Windows:

    BaudRate = CBR_9600 - скорость порта (можно просто числом).

    fDtrControl = DTR_CONTROL_ENABLE - включает постоянный уровень ENABLE на линии DTR.

    fRtsControl = RTS_CONTROL_HANDSHAKE - переключает порт в режим квитирования приёма по RTS ( если программа со стороны PC перестаёт читать байты из порта, а "складировать" их больше некуда - Windows выставит уровень DISABLE в линии RTS ).

    StopBits = TWOSTOPBITS - если не используется сжатие можно установить ONESTOPBIT, тогда скорость обмена увеличится на 10%. Самые крутые контроллеры могут работать с одним стоповым битом и при включённом сжатии ( например, контроллеры на чипе Oxford Semiconductor ).

    fOutxCtsFlow = FALSE - чтобы включить квитирование передачи ( без квитирования сжатие HX может не работать ) - нужно установить TRUE, тогда Windows будет останавливать передачу каждый раз, когда программа на УКНЦ не успеет прочитать из порта переданный байт и 1801ВП1-065 установит уровень DISABLE в линии CTS.

    ...
    Последний раз редактировалось Patron; 11.02.2013 в 00:09.

  7. Этот пользователь поблагодарил Patron за это полезное сообщение:
    hobot (11.02.2013)

  8. #4
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновлённая версия драйвера HX.SYS для RT-11 ( HX.SYS_v3.1 ) с прежним функционалом и новыми возможностями настройки.

    Изменения:

    1. Команда SET HX INFORM сообщает основную информацию о драйвере.

    2. Команда SET HX LIST показывает активные SET-параметры.

    3. Команда SET HX HXCSR = oooooo задаёт адрес порта ( >= 160000 ) для связи с сервером HX.

    4. Команда SET HX TTCSR = oooooo задаёт адрес порта ( >= 160000 ) для вывода сообщений при загрузке.

    5. Команда SET HX ERLG / SET HX NoERLG устанавливает значение флага ERL$G в параметрах генерации.

    6. Команда SET HX TIMIT / SET HX NoTIMIT устанавливает значение флага TIM$IT в параметрах генерации.

    Код:
    .SET HX INFORM
     
    HX DSK/TTY multiplexer   v3.1  2014
     
    SET HX HXCSR=octal      Change HX CSR address.
    SET HX TTCSR=octal      Change terminal CSR address for boot messages.
    SET HX LIST             Check active set parameters.
     
    .SET HX LIST
     
    HX DSK/TTY multiplexer   v3.1  2014
     
    SET HX active parameters
    ========================
    NoERLG
    NoTIMIT
    HXCSR = 177560
    TTCSR = 177560
     
    .
    Вложения Вложения
    Последний раз редактировалось Patron; 08.02.2014 в 17:18.

  9. Этот пользователь поблагодарил Patron за это полезное сообщение:
    hobot (19.02.2013)

  10. #5
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Комплект сервера HX для работы через порт CA: HX_Server_2.3_-_UKNC_-_CA_09.04.13_14-25

    Изменения:

    1. Исправлена кошмарная ошибка в адаптере COM-порта, приводившая к резкому увеличению использования процессора при создании объектов типа Terminal_ComPort_Adapter.

    2. Программа DAY.SAV улучшена до версии v2.0 ( исправлена ошибка, приводившая к вылету по Trap_To_4 на процессорах, не допускающих словного обращения к нечётному адресу ).

    ...
    Последний раз редактировалось Patron; 23.09.2014 в 13:42.

  11. Этот пользователь поблагодарил Patron за это полезное сообщение:
    hobot (09.04.2013)

  12. #6
    Guru Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,499
    Благодарностей: 990
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    комплект сервера HX для работы через порт CA:
    Patron, мне в плане архивы залить на сайт нужно уточнить моменты, DAY я в архиве залил версию 2.0, поглядел а у меня в разделе ДВК(эмуляторы) лежит архив с эмулятором ДВК, HX22 Сервер УК-НЦ и вот такой как в сообщении.
    В эмуляторе ДВК я заменил (пока только у себя) EXE файл.
    А нельзя два этих сервера в один проект совместить?
    Я имею в виду СА-сервер и без СА-приставки?
    Архив программ для УК-НЦ, ДВК и БК.

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

  13. #7
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    А нельзя два этих сервера в один проект совместить?
    Я имею в виду СА-сервер и без СА-приставки?
    Там разные образы дисков, разные загрузчики (и их исходники) и разные конфиги.
    Файл HX_Server.exe, понятное дело - чем новее, тем (скорее всего) лучше.

  14. Этот пользователь поблагодарил Patron за это полезное сообщение:
    hobot (09.04.2013)

  15. #8
    Guru Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,499
    Благодарностей: 990
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    HX_Server.exe,
    его тогда заменю и DAY ручками что бы обновление как-бы состоялось, но для совместимости с авторской темой номер версии 2.2 оставлю, 2.3-это СА версия сервера. В общем, как-то так получается.
    Архив программ для УК-НЦ, ДВК и БК.

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

  16. #9
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,570
    Благодарностей: 2690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    его тогда заменю и DAY ручками что бы обновление как-бы состоялось, но для совместимости с авторской темой номер версии 2.2 оставлю
    Версия должна совпадать с датой exe-файла иначе смысл теряется ( эта дата запомнена внутри файла и при запуске выводится на системной консоли ).

  17. #10
    Guru Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,499
    Благодарностей: 990
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Версия должна совпадать с датой exe-файла иначе смысл теряется.
    Согласен.
    не могу найти последнюю версию сервера HX без СА - приписки - потерял )
    Архив программ для УК-НЦ, ДВК и БК.

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

  18. Этот пользователь поблагодарил hobot за это полезное сообщение:
    TheGWBV (06.05.2015)

Страница 1 из 28 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Устройства на канальных рег-рах AY
    от ARTi в разделе Для начинающих
    Ответов: 6
    Последнее: 01.10.2011, 15:12
  2. Подключение HDD c интерфейсом ST-412
    от Святослав в разделе Внешние накопители
    Ответов: 5
    Последнее: 11.03.2011, 16:23
  3. Устройства для ZX-BUS?
    от Keeper в разделе Unsorted
    Ответов: 36
    Последнее: 01.02.2009, 11:50
  4. Имитация GOTO из машкода
    от Jukov в разделе Программирование
    Ответов: 7
    Последнее: 01.10.2006, 14:12

Ваши права

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