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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: вывод в порт

  1. #1
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,778
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    1,180
    Поблагодарили
    776 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию вывод в порт

    столкнулся с интересной ситуацией.
    при попытке записи в нулевой порт значение отправится туда куда шла запись перед этим.
    например в 48ом бейсике OUT 0,color изменит цвет бордюра.
    в 128ом out 0,page ; переключит страницу.

    интересно кто создаёт такой эффект: проц или обвязка ?

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

  3. #2
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,101
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, а этот порт он на реальной машине, или в эмуляторе? Тут, как бы ещё неплохо было бы указать что за модель спектрума или клона.

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

    Вроде как, при упрощённой дешифрации почти любой чётный порт детектится как #FE
    Когда есть, но не знаешь где - это все равно, что нету.

  4. #3
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,778
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    1,180
    Поблагодарили
    776 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    сначала столкнулся с таким поведением в эмуляторах,
    но сейчас специально проверил на фирме (резинка48к)

  5. #4
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,101
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    в 48ом бейсике OUT 0,color изменит цвет бордюра.
    в 128ом out 0,page ; переключит страницу.
    Если поведение первой команды мне хоть как-то понятно, то переключение СТРАНИЦ, через тот же самый порт в 128к режиме?
    Когда есть, но не знаешь где - это все равно, что нету.

  6. #5
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,778
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    1,180
    Поблагодарили
    776 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    кажется разобрался.
    на фирме #7FFD декодируется при условии A1 и A15 = 0 , #FE при A0=0
    так что при записи в ноль все условия соблюдены.

  7. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    Barmaley_m (09.04.2024)

  8. #6
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,101
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Скорее всего, это аппаратная особенность ula.

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

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

  9. #7
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от null_device Посмотреть сообщение
    на тему упрощённой дешифрации портов фирменных машин. Это, в отечественных клонах, можно было себе позволить чуть ли не полную жёсткую дешифрацию.
    Полная жесткая дешифрация дорого стоит. Это нужен дешифратор на 8 (при дешифрации только младших 8) или всех 16 бит. Я знаю только один клон - "Орель БК-08", где применялась полная жесткая дешифрация по 8 битам - там в качестве дешифратора стояла микросхема ПЗУ К556РТ4.

    Я когда-то восхищался этим решением с РТ4, а теперь считаю - а зачем? ПЗУ стоит денег, его надо программировать, оно иногда ломается (ранние РТ4 были склонны к потере информации со временем). Микросхему надо разместить на плате, развести на нее все линии адреса (8 связей). Энергии немало жрет (0,45 Вт). А какая польза? Расширяемость? Так ведь расширяли по схемам, совместимым с другими клонами с неполной дешифрацией.

    Если делать полную дешифрацию на логике (К555ИД3, К555ИД7, логические элементы) - то микросхем, связей между ними и финансовых затрат на все это получается еще больше. Надежность разве что выигрывает и энергопотребление.

    Более того, я даже в проектах на FPGA не делаю полную дешифрацию адресов. Ресурсы у FPGA на это есть, но зачем их тратить? Логические блоки, связи между ними. Все эти ресурсы ограничены, и выгоднее их потратить на что-нибудь другое.

  10. #8
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Полная жесткая дешифрация дорого стоит.
    В общемто нет. Скажем у нас есть 16 портов. Берём дежифратор 4-16 с входами разрешения низким уровнем. 155ид3 например.
    шину A0, A5-A11 цепляем на элемент 8И-НЕ
    шину A1-A4 цепляем на A0-A3 дешифратора.
    шину A12-A15 цепляем на элемент 4И-НЕ
    Выход 8И-НЕ цепляем на вход ОЕ1 ИД3
    Выход 4И-НЕ цепляем на вход ОЕ2 ИД3

    Все. Получаем полный дешифратор четных адресов 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E

    Три микросхемы. Не так уж много за полную дешифрацию адреса.
    Надо больше адресов? Ставим ещё один дешифратор ИД3 и вторую половинку 4И-НЕ используем... Будет 32 порта.
    Внутри ULA схемотехнику можно очень упростить теоретически.

    Тут скорее желание сэкономить говорит. Оно оправдано, если делать контроллер под задачу, который в принципе не предполагает дополнительных портов. Но для ПК общего пользования, который предполагает подключение произвольной периферии - экономия сомнительная.

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

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Более того, я даже в проектах на FPGA не делаю полную дешифрацию адресов. Ресурсы у FPGA на это есть, но зачем их тратить? Логические блоки, связи между ними. Все эти ресурсы ограничены, и выгоднее их потратить на что-нибудь другое.
    Всё от задачи зависит. В современных ПК, например, совсем полная дешифрация. СОвсем-совсем!

  11. #9
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Особенно 155ИД3 - она же огромная. Ладно еще КР1533ИД3 - у нее корпус хотя бы узкий был.

    Есть такая инженерная пословица: "Самая лучшая деталь машины - это та, которой нет". По соображениям, аналогичным приведенным выше. Чем больше опыт разработки и наблюдения за производством твоих приборов - тем больше я с этой мыслью соглашаюсь. Добавление деталей в схему, которых там могло не быть, добавляет в целом больше проблем, чем решает.

    Цитата Сообщение от SfS Посмотреть сообщение
    Внутри ULA схемотехнику можно очень упростить теоретически.
    Там однозначно. Тогдашние БМК имели очень мало ресурсов. Что-то типа 8х8 (всего 64) базовых логических элементов. Там каждый был на счету.

    Цитата Сообщение от SfS Посмотреть сообщение
    Всё от задачи зависит. В современных ПК, например, совсем полная дешифрация. СОвсем-совсем!
    Ну, сейчас ресурсов стало больше, вот их и не экономят. Кроме случаев, когда экономия себя оправдывает (типа ASIC-майнеров). Благодаря этому мне часто удается найти в какой-нибудь системе большое поле для оптимизации, "обработав" которое, получаешь результат на гораздо меньших вычислительных и схемотехнических ресурсах, чем у конкурентов. На серийной продукции это дает преимущество.

    Взять еще одну простую вещь. В Спектрумах были порты ввода-вывода, доступные только на запись. Тот же порт #FE. Туда можно было записать цвет бордюра, но обратно его считать из программы было невозможно. В нынешних микроконтроллерах, SoC и IP-блоках на FPGA обычно делают "дружественные для программистов" порты, доступные на запись и на чтение. А вдруг кому-нибудь понадобится. Но, если подумать - то считывание из подобных портов нужно крайне редко, а затраты ресурсов нешуточные. Нужен дополнительный мультиплексор на 8 или более разрядов, связи к нему, и логика управления. Затраты ресурсов кристалла на реализацию двунаправленного порта в 2 и более раз выше, чем однонаправленного. Я в своих IP-блоках на FPGA не занимался подобными растратами, в результате они получались по ресурсам в разы компактнее тех, что поставляет производитель FPGA.

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

    Иногда такая оптимизация отделяла победу от поражения - когда в противном случае из-за плотности разводки не удавалось достичь нужной тактовой частоты, на которой работоспособна вся схема.
    Последний раз редактировалось Barmaley_m; 21.04.2024 в 13:36.

  12. #10
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,778
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    1,180
    Поблагодарили
    776 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вспомнилось интро



    тут через out (#FC),a

    одновременно переключается страница/экран/цвет бордюра

  13. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    Barmaley_m (22.04.2024)

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 9
    Последнее: 15.06.2020, 02:02
  2. вывод символа 4*8
    от Dexus в разделе Программирование
    Ответов: 15
    Последнее: 14.04.2011, 14:14
  3. Вывод на HD мониторы
    от jimled в разделе Изображение
    Ответов: 1
    Последнее: 28.01.2008, 15:09
  4. Вывод в порт на С в MicroBlaze
    от black_ninja в разделе Разный софт
    Ответов: 2
    Последнее: 25.01.2008, 09:38
  5. Вывод изображения
    от Shnurkov в разделе Изображение
    Ответов: 5
    Последнее: 10.02.2007, 15:07

Ваши права

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