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

User Tag List

Страница 56 из 56 ПерваяПервая ... 5253545556
Показано с 551 по 556 из 556

Тема: DSDOS для ПРК "Орион-128"

  1. #551
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Если так будет быстрее и проще - можно сделать две версии редактора. Один - с моими хотелками (извиняюсь, назову их так, так как, кроме меня, о редакторе никто не написал), один - с твоими
    У тебя же собран COM-порт и работает связь с писи? Я к тому, что достаточно файла редактора или нужно делать отдельную сборку ОС для ROM-диска?

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Так что, думаю, для портов достаточно предусмотреть какую-нибудь горячую кнопку или комбинацию. Скажем, PW<addr>,<value> - записать в порт по адресу addr значение value. Или PR<addr> - прочитать и вывести на экран значение из порта с адресом <addr>.
    Первое что приходит мне в голову - отдельный режим "работа с портами". Там появляется окно, в котором можно добавлять порты, с которыми будем работать. Максимальное кол-во - сколько поместится в экране окна.
    В каждый добавленный порт я могу прописать значение по-умолчанию (к нему можно осуществлять быстрый возврат по горячей клавише), вводить альтернативное значение или активировать только режим отображения. Все введённые параметры сохраняются, в т.ч. при выходе из редактора - в файле конфигурации, при последующих входах оказываемся в тех же портах, с теми же настройками/параметрами.
    Есть режим "Слежение", при активации которого состояние всех портов сконфигурированных в режиме "Отображение" будет отражено в реальном времени. Можно дополнить небольшим "самописцем", который, например графически, будет отображать историю изменения состояния порта (фиксация только изменений).
    В любой момент можно либо просто прервать слежение, либо ввести новое значение в какой-либо из портов. При выключенном слежении можно обновлять показания пошагово.
    Также можно сделать вариант фиксации изменений в файл, чтобы потом можно было в офф-лайне проанализировать большое кол-во состояний.

    Как-то так.

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

    Накидал дизайн утилиты работы с портами:

    Последний раз редактировалось Denn; 20.03.2024 в 22:21.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. #552
    Veteran Аватар для AlexBel
    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,325
    Спасибо Благодарностей отдано 
    156
    Спасибо Благодарностей получено 
    126
    Поблагодарили
    76 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    У тебя же собран COM-порт и работает связь с писи? Я к тому, что достаточно файла редактора или нужно делать отдельную сборку ОС для ROM-диска?
    Да, связь с РС работает, редактор можно и так загружать. Но, думаю, я могу просто засунуть его в сборку - если я правильно помню, для этого достаточно знать, в каком месте дампа ПЗУ располагается редактор, чтобы можно было в любой момент его оперативно вызвать. А загрузка с РС - лишняя привязка и зависимость, не очень удобно. Хотя, конечно, лучше уж так, чем никак

    Цитата Сообщение от Denn Посмотреть сообщение
    Первое что приходит мне в голову - отдельный режим "работа с портами". Там появляется окно, в котором можно добавлять порты, с которыми будем работать. Максимальное кол-во - сколько поместится в экране окна.
    Отдельный режим - здорово! Только хорошо бы ещё добавить возможность работать не только с портами, положенными на память, но и с честными портами, которые IN/OUT. Правда, недопонял, чтобы один раз прочитать содержимое какого-то порта, что нужно сделать? Что такое [..]? И что такое "Задать по-умолчанию"? При нажатии ENTER включается постоянное чтение из всех портов на экране? Как удалить порт(ы) из списка?

    Практический пример. Допустим, я подключил контроллер. В список вывел его порты, скажем, их два - порт команд/статуса (в списке номер 0) и порт данных (в списке номер 1). Остальные порты из списка нужно удалить. Можно и не удалять, но, в процессе работы они никак не должны затрагиваться, даже на чтение. Порт номер 0 используется на чтение и на запись по разному - при записи в него пишется команда для контроллера, при чтении - состояние контроллера. Я пишу команду и мне нужно далее прочитать этот порт, чтобы посмотреть состояние. Но прочитать именно тогда, когда мне это нужно. Т.е. нажал кнопку - получил значение этого (и только этого) порта. Далее - чтение данных. У контроллера есть особенность - после чтения данных его регистр данных обнуляется. Т.е. данные можно прочитать только один раз, потом будут считываться нули. В этом случае, как и в предыдущем, нужно иметь возможность прочитать данные из порта 1 и только тогда, когда это нужно, режим постоянного чтения, попросту говоря, всё испортит.

    Цитата Сообщение от Denn Посмотреть сообщение
    В каждый добавленный порт я могу прописать значение по-умолчанию (к нему можно осуществлять быстрый возврат по горячей клавише),
    На мой взгляд - бесполезная функция. Если даже какое-то значение используется для ввода часто (я правильно понял - именно такое значение считается "по-умолчанию"?), то его легко ввести вручную - для этого потребуется на пару нажатий больше, что на оперативности, думаю, никак не скажется.

    Цитата Сообщение от Denn Посмотреть сообщение
    вводить альтернативное значение или активировать только режим отображения. Все введённые параметры сохраняются, в т.ч. при выходе из редактора - в файле конфигурации, при последующих входах оказываемся в тех же портах, с теми же настройками/параметрами.
    Есть режим "Слежение", при активации которого состояние всех портов сконфигурированных в режиме "Отображение" будет отражено в реальном времени. Можно дополнить небольшим "самописцем", который, например графически, будет отображать историю изменения состояния порта (фиксация только изменений).
    В любой момент можно либо просто прервать слежение, либо ввести новое значение в какой-либо из портов. При выключенном слежении можно обновлять показания пошагово.
    Также можно сделать вариант фиксации изменений в файл, чтобы потом можно было в офф-лайне проанализировать большое кол-во состояний.
    Слежение - интересная функция. Могу предложить некоторые варианты.
    1. Ожидание появления на заданном порту заданного значения с последующими возможными действиями:
    а) остановка слежения с выводом сообщения
    б) вывод в заданный порт заданного значения с выводом сообщения
    в) можно ещё что-то придумать
    2. Считывание из заданного порта с наложением маски, далее - как в п.1
    3. можно ещё что-то придумать

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



    И вопрос: насколько я помню, в DS-DOS версии 3 всё захардкожено, т.е. драйвера в их общем понимании отсутствуют и ядро системы работает напрямую с железом. Есть ли возможность ввести в систему ещё один или два диска на не поддерживаемых системой накопителем? Если можно, то как? Если нет, то, конечно, можно просто написать оболочку, которая будет работать с этим накопителем, но хотелось бы поддержки на уровне системы.
    Последний раз редактировалось AlexBel; 21.03.2024 в 14:11.

  3. #553
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Да, связь с РС работает, редактор можно и так загружать. Но, думаю, я могу просто засунуть его в сборку - если я правильно помню, для этого достаточно знать, в каком месте дампа ПЗУ располагается редактор
    Нет, просто так новый код не "впихнуть" в образ ПЗУ ROM-диска. Он же будет другого размера. Нужно пересобирать сборку по-новой.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    А загрузка с РС - лишняя привязка и зависимость, не очень удобно.
    Можно загрузить один раз и закинуть на винчестер или дисковод, или в SRAM-диск, в зависимости от того, что есть из носителей.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    Только хорошо бы ещё добавить возможность работать не только с портами, положенными на память, но и с честными портами, которые IN/OUT.
    Вот тут у меня мыль раздваивается
    С одной стороны хочется сделать платформо-зависимо, т.е. на О-128 автоматом будет адресация как ячеек памяти, а на Орион-ПРО - как порты по IN/OUT.
    С другой стороны можно сделать универсально, но это скорее будет вводить в заблуждение пользователя. Например, если ввели только две цифры адреса, то программа интерпретирует адресацию порта по IN/OUT. Если ввели четыре цифры, то адресует как память.
    Надо будет ещё раз подумать, как лучше сделать.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    Правда, недопонял, чтобы один раз прочитать содержимое какого-то порта, что нужно сделать? Что такое [..]?
    Нажать один раз на любую клавишу, кроме зарезервированных на спец. функции (управление портами, выход).

    [..] - это из терминологии авторов Ориона, и я как увидел, то сразу понял, о чём речь. Это означает "любая клавиша, кроме тех, которые указаны дальше в списке".


    Цитата Сообщение от AlexBel Посмотреть сообщение
    И что такое "Задать по-умолчанию"?
    Полагаю частой задачей будет "пулять" в порт какое-то значение (типа что-то включить), а потом откатываться на предыдущее (выключить в исходное). И так многократно.
    Каждый раз вводить и то, и другое значение - задолбаешься. А так хотя бы вводить одно, а второе возвращать в один "клик". Оперативнее.
    Для ввода значения надо сделать три нажатия, а для сброса в дефолтное - одно.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    При нажатии ENTER включается постоянное чтение из всех портов на экране?
    Из всех активированных. Неактивные не участвуют в этом процессе.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    Как удалить порт(ы) из списка?
    Просто деактивируем. Удалять не требуется. По-умолчанию неактивны все. Включая нужные, мы как бы добавляем порты в работу. При этом записывать значения можно в любые порты, в т.ч.в неактивные. Статус "активен" влияет только на чтение показаний из порта при нажатии "Шага" или циклический вывод в режиме слежения.


    Идейно так. На экране всегда присутствуют 10 портов. В любом можно: 1) изменить адрес, 2) записать значение, 3) Читать или не читать состояние.
    По-моему, так прозрачно и удобно. Любая функция по любому порту доступна в один клик!

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Практический пример. Допустим, я подключил контроллер. В список вывел его порты, скажем, их два - порт команд/статуса (в списке номер 0) и порт данных (в списке номер 1). Остальные порты из списка нужно удалить. Можно и не удалять, но, в процессе работы они никак не должны затрагиваться, даже на чтение. Порт номер 0 используется на чтение и на запись по разному - при записи в него пишется команда для контроллера, при чтении - состояние контроллера. Я пишу команду и мне нужно далее прочитать этот порт, чтобы посмотреть состояние. Но прочитать именно тогда, когда мне это нужно. Т.е. нажал кнопку - получил значение этого (и только этого) порта. Далее - чтение данных. У контроллера есть особенность - после чтения данных его регистр данных обнуляется. Т.е. данные можно прочитать только один раз, потом будут считываться нули. В этом случае, как и в предыдущем, нужно иметь возможность прочитать данные из порта 1 и только тогда, когда это нужно, режим постоянного чтения, попросту говоря, всё испортит.
    Те порты, которые не надо читать, их просто не активируем. Когда потребовалось прочесть - активируем, смотрим считанное, затем опять деактивируем. Записывать можно в неактивный порт, это означает, что значение в него запишется, а вычитываться не будет. Думаю, Такая схема позволит реализовать абсолютно любые варианты сценариев.

    Что-то более изощрённое - это уже надо городить целый язык программирования. Тоже можно придумать, но это уже другая история.

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    На мой взгляд - бесполезная функция. Если даже какое-то значение используется для ввода часто (я правильно понял - именно такое значение считается "по-умолчанию"?), то его легко ввести вручную - для этого потребуется на пару нажатий больше, что на оперативности, думаю, никак не скажется.
    Ввести значение - это три нажатия. Ввести заранее предопределённое значение "по-умолчанию" - одно нажатие. Есть разница. А если делать многократно, то очень большая разница!

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Слежение - интересная функция. Могу предложить некоторые варианты.
    1. Ожидание появления на заданном порту заданного значения с последующими возможными действиями:
    а) остановка слежения с выводом сообщения
    б) вывод в заданный порт заданного значения с выводом сообщения
    в) можно ещё что-то придумать
    2. Считывание из заданного порта с наложением маски, далее - как в п.1
    3. можно ещё что-то придумать
    Это уже целый язык-интерпретатор будет. Мне кажется, такие задачи проще накидать на ассме. Реально проще. Особенно на Орионе под DSDOS

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Самописец - ну, не знаю, нужен ли он реально. Я понимаю, творческим людям всегда что-то хочется улучшать, для них больше удовольствие в процессе, а не в результате
    Мне реально нужно было. Постоянно пользовался распечаткой портов в экран для анализа изменений. Таким образом не имея документации на протокол RS-232 полностью изучил живой обмен и сделал эмуляцию UART на ВВ55. Изучал поток данных с магнитных карт. Сигналы с телефонной линии, модемы. Всё "ломал" только через экранный "самописец", очень удобно!

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

    Цитата Сообщение от AlexBel Посмотреть сообщение
    И вопрос: насколько я помню, в DS-DOS версии 3 всё захардкожено, т.е. драйвера в их общем понимании отсутствуют и ядро системы работает напрямую с железом. Есть ли возможность ввести в систему ещё один или два диска на не поддерживаемых системой накопителем? Если можно, то как? Если нет, то, конечно, можно просто написать оболочку, которая будет работать с этим накопителем, но хотелось бы поддержки на уровне системы.
    Можно вводить новые диски с помощью написания и установки драйвера. Буква свободная всего одна - H. Но при желании можно "затереть" драйвер ненужного диска, например FDD, и высвободить ещё две буквы.
    Последний раз редактировалось Denn; 21.03.2024 в 22:16.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #554
    Veteran Аватар для AlexBel
    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,325
    Спасибо Благодарностей отдано 
    156
    Спасибо Благодарностей получено 
    126
    Поблагодарили
    76 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Нет, просто так новый код не "впихнуть" в образ ПЗУ ROM-диска. Он же будет другого размера. Нужно пересобирать сборку по-новой.
    Зная структуру диска, это сделать несложно. Например, я такое делал с дисками ORDOS. Зная, где располагается начало требуемой программы и её длину, можно отделить данные до и после, а затем приклеить их в начало и конец новой программы. Главное - не превысить максимальный размер. В этом случае можно пожертвовать какой-нибудь менее нужной программой. У меня где-то даже валяется небольшая программа для РС, выводящая из дампов ROM-диска ORDOS информацию по содержащимся там файлам

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

    Цитата Сообщение от Denn Посмотреть сообщение
    Можно загрузить один раз и закинуть на винчестер или дисковод, или в SRAM-диск, в зависимости от того, что есть из носителей.
    Можно, конечно, но ROM-диск быстрее и всегда под рукой. А если нет ни винчестера ни дисковода - что делать? У меня, например, под DS-DOS использовался только ROM-диск и линк с РС.

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

    Цитата Сообщение от Denn Посмотреть сообщение
    Вот тут у меня мыль раздваивается
    С одной стороны хочется сделать платформо-зависимо, т.е. на О-128 автоматом будет адресация как ячеек памяти, а на Орион-ПРО - как порты по IN/OUT.
    С другой стороны можно сделать универсально, но это скорее будет вводить в заблуждение пользователя. Например, если ввели только две цифры адреса, то программа интерпретирует адресацию порта по IN/OUT. Если ввели четыре цифры, то адресует как память.
    Надо будет ещё раз подумать, как лучше сделать.
    А зачем все эти усложнения? Пусть себе будет и то и другое, в т.ч. и на О-128. А адреса портов могут быть и больше 0xFF, три-четыре цифры. Ну, а что касается введения в заблуждение пользователя, об этом можно не беспокоиться, если есть нормальное описание программы/справка. В этом случае заблуждение пользователя - чисто его проблема.

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

    Цитата Сообщение от Denn Посмотреть сообщение
    Ввести значение - это три нажатия. Ввести заранее предопределённое значение "по-умолчанию" - одно нажатие. Есть разница. А если делать многократно, то очень большая разница!
    Дело, конечно, хозяйское, можно и так, лишь бы оставалась возможность оперативно вводить данные вручную. Нравится - используешь предустановленные значение, не нравится - пишешь вручную. Лично по мне, так одно нажатие против трёх - очень сомнительное преимущество в оперативности, тем более, когда речь идёт об отладке, а не о скоростном наборе текста.

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

    Цитата Сообщение от Denn Посмотреть сообщение
    Можно вводить новые диски с помощью написания и установки драйвера. Буква свободная всего одна - H. Но при желании можно "затереть" драйвер ненужного диска, например FDD, и высвободить ещё две буквы.
    А информация по написанию драйвера пользовательского диска есть в документации?

  5. #555
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Зная структуру диска, это сделать несложно. Например, я такое делал с дисками ORDOS. Зная, где располагается начало требуемой программы и её длину, можно отделить данные до и после, а затем приклеить их в начало и конец новой программы.
    Есть утилита сборщика ROM-диска – CRTDSK$. С её помощью всё намного проще. Но можно и руками, так наверное даже интереснее


    Цитата Сообщение от AlexBel Посмотреть сообщение
    А зачем все эти усложнения? Пусть себе будет и то и другое, в т.ч. и на О-128.
    Не вижу смысла делать то, что не будет востребовано. На О-128 порты, которые "на память", начинаются с F400 и простираются до F7FF. Далее идут "однобайтовые" порты, которые по традиции принято адресовать с помощью команды OUT xx, но можно и через "память". На "Орион-ПРО" только "однобайтовый" вариант, эмуляция некоторых портов через "память" вроде есть, но никто ей не пользуется.
    Мне кажется, так и надо делать: для О-128 адресация F400..F7FF двухбайтовая (через "память"), а при вводе первых двух цифр адреса порта от F8 и выше, автоматом работать как с честным портом; на Орион-ПРО оставить только "портовую" адресацию одним байтом.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    А адреса портов могут быть и больше 0xFF, три-четыре цифры.
    Это ещё что за чудо такое? Процессоры Орионов физически не умеют такое адресовать..


    Цитата Сообщение от AlexBel Посмотреть сообщение
    Ну, а что касается введения в заблуждение пользователя, об этом можно не беспокоиться, если есть нормальное описание программы/справка. В этом случае заблуждение пользователя - чисто его проблема.
    Сегодня не так. Если ты не умеешь сделать программу, понятную сходу для самой тупой домохозяйки, то результаты твоей деятельности миру не нужны, и тебя как бы "нет". Всё что сложнее пары кликов - никому не интересно. "Пара кликов" и "никому" здесь условные понятия, но суть отражают максимально приближённо к жизни. Куда-то идти и что-то читать, с чем-то разбираться сегодня не будут. Либо сразу всё просто и понятно, либо нафиг. Прошли времена, когда люди пытались что-то изучать, ходили в библиотеку, гордились глубокими знаниями и т.п..


    Цитата Сообщение от AlexBel Посмотреть сообщение
    Нравится - используешь предустановленные значение, не нравится - пишешь вручную.
    Именно так.


    Цитата Сообщение от AlexBel Посмотреть сообщение
    А информация по написанию драйвера пользовательского диска есть в документации?
    Пока нет. В ближайшее время закончу написание руководства пользователя. Руководство по программированию буду делать позже.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #556
    Veteran Аватар для AlexBel
    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,325
    Спасибо Благодарностей отдано 
    156
    Спасибо Благодарностей получено 
    126
    Поблагодарили
    76 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В числе методов написания программы есть "Я делаю программу как для себя, так и для других" и "Я позволяю другим использовать программу, которую делал для себя". Эти методы отличаются подходом и отношением.

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

Страница 56 из 56 ПерваяПервая ... 5253545556

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

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

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

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. продам платы "Орион-128"
    от AHTuXPuCT в разделе Барахолка (архив)
    Ответов: 70
    Последнее: 19.06.2012, 20:39
  3. Платы ром-диска "Орион-128"
    от AL.EX в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 10.06.2012, 12:54
  4. Куплю плату "Орион-ПРО"
    от АлександрПП в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 15.05.2011, 20:48
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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