User Tag List

Показано с 1 по 10 из 23

Тема: Вектор-06Ц новодел (не Altera)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    NEOPLASMA, ivagor, перечитал я "Вектор-User" -- грандиозные улучшения могли бы быть у Вектора, если бы появился турбо-плюс вариант, в части графики особенно. Но вернёмся к памяти. На странице 76 скана (в №18) упоминается, а на странице 85 (в №21) подробно описано, как его память работает. Да, программ для такой организации памяти не появилось, особого смысла делать также и правда нет.

    Опишу пока, как сделано управление памятью сейчас в моём варианте. Я это подписал на схеме, но, думаю, повторить будет не лишним:

    1. Т.к. на плате установлено 128кб, вся эта память распределена так:
    Код:
    Адреса в МС ОЗУ -- номер банка   
    00000h-07FFFh   --   Банк 0
    08000h-0FFFFh   --   Банк 1
    10000h-17FFFh   --   Банк 2
    18000h-1FFFFh   --   Банк 3
    2. При обращении Вектора к адресам 08000h-0FFFFh чтение/запись всегда осуществляется в Банк 3.

    3. Переключение страниц памяти осуществляется через отправку байта в порт 13h. Младшие два бита отправленного байта определяют подключённый номер банка памяти, который будет использоваться при обращении Вектора по адресам 00000h-07FFFh, старшие биты отправляемого байта игнорируются. Соответственно имеем:
    хххххх00 -- подключается Банк 0
    хххххх01 -- подключается Банк 1
    хххххх10 -- подключается Банк 2
    хххххх11 -- подключается Банк 3
    Самая фишка тут получается с банком 3, которая вышла сама собой -- на нижнюю половину памяти отображается верхняя половина, отличие при обращении к ним тут будет в том, что записываемые данные по адресам 00000h-07FFFh не будут попадать в память экрана, хотя будут влиять на область памяти 08000h-0FFFFh. Как это может пригодится -- пока не понятно, но забавно.

    4. При сбросе (БЛК-ВВОД или БЛК-СБРОС) регистр порта 013h сбрасывается на нулевой банк памяти. Все Векторовские программы с такой памятью должны работать без проблем, если, конечно, в них случайно не встретится обращение к порту 013h.

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

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

  3. #2

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    ...
    3. Переключение страниц памяти осуществляется через отправку байта в порт 13h.
    ...
    А практическая реализация этого как выглядит?
    Переход между страницами находится в каком-то конкретном месте памяти, например в области прерываний (RSTx)?
    Поскольку после занесения нового значения в порт 13h следующая команда будет считываться из следующей ячейки памяти, но уже на другой странице.
    Значит место перехода должно быть предсказуемым. Т.е. одним и тем-же на всех страницах.
    Я так понимаю?

  4. #3

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    А практическая реализация этого как выглядит?
    Переход между страницами находится в каком-то конкретном месте памяти, например в области прерываний (RSTx)?
    Поскольку после занесения нового значения в порт 13h следующая команда будет считываться из следующей ячейки памяти, но уже на другой странице.
    Значит место перехода должно быть предсказуемым. Т.е. одним и тем-же на всех страницах.
    Я так понимаю?
    Можно и так. Но, я полагаю, самый простой способ переключения -- из подпрограммы, работающей в верхних 32кб памяти, которые не будут затронуты переключением, из МДОС, например. Там только нужно будет не упустить момент и после переключения занести в ячейки памяти 0000h, 0005h и 0038h нужные для работы команды, и дальше можно делать переход на любой адрес в нижних 32кб.

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Можно и так. Но, я полагаю, самый простой способ переключения -- из подпрограммы, работающей в верхних 32кб памяти, которые не будут затронуты переключением, из МДОС, например. Там только нужно будет не упустить момент и после переключения занести в ячейки памяти 0000h, 0005h и 0038h нужные для работы команды, и дальше можно делать переход на любой адрес в нижних 32кб.
    Для МДОС переключать нижние 32Кб, это как читать газету в которую рыбу заворачивали...
    Там ведь до экранной области ещё вроде 8Кб остаётся, там вроде как утилиты пасутся. Да и программы, работающие из под ДОСа знают где верхушка свободной памяти, и могут использовать этот "не переключаемый" кусок по своему усмотрению, уничтожая в нём инфу, важную для софта из другого окна.

  6. #5

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Там ведь до экранной области ещё вроде 8Кб остаётся
    Это если на КД нет доработки Баркаря, а с ней можно добавить ещё 8кб на адресах 8000h-9FFFh, а при желании и все верхние 32кб можно закинуть на КД... Или немного опустить границу области для программ в МДОСе, до 32кб. Но это всё решаемые технические мелочи, для первого варианта, не проверенного на практике, без ПО, да ещё пока не подкреплённого поддержкой эмуляторов, такой вариант переключения памяти тоже неплох, а потом можно будет улучшать.

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

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

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

Похожие темы

  1. Вектор-06Ц: Altera DE1
    от svofski в разделе Вектор
    Ответов: 800
    Последнее: 23.04.2024, 16:55
  2. Ответов: 4
    Последнее: 23.06.2016, 00:02
  3. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  4. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  5. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23

Метки этой темы

Ваши права

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