User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 23

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

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

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

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Очень даже заметно, лучше нагородить. Некоторые игрушки от этого становятся бодрее и динамичнее.
    Тут есть ньюанс: в текущей реализации графической карты полностью снять тормоза не выйдет, пока что они снимаются только на время чтения и когда не выводится изображение -- КСИ, ССИ и бордюр. Ускорение при этом выйдет, наверно, 10%, или 5%... Тем не менее, в новой схеме я уже нарисовал кнопку "турбо", но она ещё пока не готова к публикации.

    Можно поставить буфер на 16+8 бит, запоминать в нём адрес и данные для записи, когда видеопамять занята. Там, получается, хранить нужно два такта (666 нс). Наиболее частый повтор выполняется при записи в стек, по осциллограммам выше видно, что минимальный разрыв между двумя записями там равен около 1000 нс, т.е. имеем примерно 300 нс на сброс данных из этого буфера -- можно успеть, но вот только на плате графической карты места не осталось под этот буфер... В общем, ещё есть варианты по улучшению схемы.

    Цитата Сообщение от NEOPLASMA Посмотреть сообщение
    В журнале Vector User описывались разные доработки, джойстики на 6 клавиш (порт 0Eh и 0Fh биты D0-D7) которые можно расширить и на 8 и будет как на NES (Денди)
    Наверно, не на NES, а на SEGA? Сейчас уже схема подразумевает подключение джойстиков Денди, имеющих две кнопки, можно добавить ещё две кнопки без серьёзных переделок, если понадобится. Правда, эти джойстики я ещё не протестировал.

    Цитата Сообщение от NEOPLASMA Посмотреть сообщение
    доработки по расширению памяти
    А что за расширение памяти? Я видел там схемы квази-дисков, ERAM, но всё это были внешние модули, дорабатывался не сам Вектор...

    Цитата Сообщение от NEOPLASMA Посмотреть сообщение
    мышь по стандарту того-же джойстика
    ...
    и прочему, такие будут присутствовать в этом новоделе ?
    Всё, что угодно, но не всё сразу. Давайте сначала доведём "базовую конструкцию" до ума.

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

  3. #2

    Регистрация
    20.03.2021
    Адрес
    г. Днепр, Украина
    Сообщений
    31
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чутка попутал, расширение памяти было описано в (предполагаемом) Векторе турбо+, там было сделано переключение по адресам 40h и 41h
    Да согласен джойстик лучше Сеговский брать, он более функциональнее и прост в подключении

  4. #3

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

    По умолчанию

    Цитата Сообщение от NEOPLASMA Посмотреть сообщение
    Чутка попутал, расширение памяти было описано в (предполагаемом) Векторе турбо+, там было сделано переключение по адресам 40h и 41h
    Надо будет перечитать подшивку, хотя, как я помню, конкретики про Вектор-Турбо там не было.

    Цитата Сообщение от NEOPLASMA Посмотреть сообщение
    Да согласен джойстик лучше Сеговский брать, он более функциональнее и прост в подключении
    Я, похоже, ошибся, когда писал про денди, джойстики сейчас подключаются по такой схеме: https://www.msx.org/wiki/General_Purpose_port
    Вроде, сегасовместимые, не денди.

  5. #4

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,388
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,366
    Поблагодарили
    1,316 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про порты турбо+ написано в vector-user 18. По описанию портов 40-42 примерно понятно, что там было, но следовать в данном вопросе за турбо+ смысла нет, т.к. нет программ, поддерживающих тот стандарт.

  6. #5

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,064
    Спасибо Благодарностей отдано 
    581
    Спасибо Благодарностей получено 
    469
    Поблагодарили
    252 сообщений
    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кб памяти. Можно даже организовать некую многозадачность, исполняя три программы поочереди.

  7. #6

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

    По умолчанию

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

  8. #7

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

    По умолчанию

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

  9. #8

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

    По умолчанию

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

  10. #9

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,388
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,366
    Поблагодарили
    1,316 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Теоретически можно было бы сделать обращение к 128 Кб аналогично 6128, там есть пара-тройка программ под это дело (дос, бейсик и тест, кажется еще графический редактор), но плата уже сделана, да и вариант диспетчера 6128 не самый лучший.

  11. #10

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

    По умолчанию

    Продолжу публиковать материалы по этому проекту: прошивка ПЗУ.

    Для этой схемы, по сути, подойдёт любая из существующих прошивок Вектора, но я решил сделать нечто своё. Для начала ещё раз обращу внимание, что ПЗУ как бы делится на две части по 32 кб, переключение между ними осуществляется джампером, поэтому сделал прошивку также из двух частей, разных по функционалу.

    Часть 1, тестовая.
    Эта часть основана на опубликованном ранее тестовом ПЗУ, расширенном и дополненном.

    При старте прошивка, так же, как и в исходной версии, переходит в режим мигания индикатором "РУС/ЛАТ", нажатие на клавиш "СС", "УС" или "РУС/ЛАТ", также выводит через ВИ53 частоты 3, 2 или 1 кГц соответственно.

    Нажатие "СС"+"УС" запускает тестирование памяти, сначала верхние 32кб:
    - Тестирование методом простого записи/чтения, для контроля последовательно используется байты 00h, FFh, AAh, 55h.
    - Тестирование методом записи/чтения через стек, используются слово AA55h и счётчик
    - Запись содержимого ПЗУ с тестированием

    Если тестирование прошло без ошибок, то через автозапуск выполняется сброс системы и выполнение записанных в верхнюю память тестов. Далее из верхней памяти последовательно выполняются тесты банков памяти 0, 1 и 2 методом записи/чтения через стек, используются счётчик, слова 55AAh, AA55h, 0000h (очистка).

    Если тестирование нижней памяти тоже прошло без ошибок, то туда копируется и запускается тест техпрогона, а если удерживать клавишу "УС", то будет запущен Тест Устройств.

    Обнаруженные ошибки также, как и в blink, выводятся в порт ПУ.

    И есть ещё дополнение, если при начальном мигании индикатора "РУС/ЛАТ" нажать одновременно "СС" и "РУС", то будет запущен тест клавиатуры -- нажатие клавиш будет озвучиваться, код нажатой клавиши отправляется в порт В (ПУ). И, как бонус, тестируется сам порт ПУ, если на нём установлена заглушка, как описано в документации к Тесту Устройств (Порт А <--> Порт В, Порт С 7-4 <--> Порт С 3-0). В случае удачного теста ПУ будет гореть индикатор РУС/ЛАТ.

    Тестовая часть прошивки в архиве с исходниками: blink48.7z

    Часть 2, загрузочная.
    Эта часть сделана на основе BOOT45. В связи с тем, что в ней не используются особенности моей схемы Вектора, её можно без проблем загружать в эмуляторах и на обычных Векторах.

    Нажмите на изображение для увеличения. 

Название:	Boot.png 
Просмотров:	378 
Размер:	9.6 Кб 
ID:	75177

    Основные изменения:
    - заменил загрузчик с HDD на новый, работающий в LBA, заменил иконку НЖМД на более красивую
    - удалил ненужный тест техпрогона (он есть в первой части)
    - обновил бейсик до версии 2.61
    - увеличил скорость загрузки программ из ПЗУ
    - изменил горячие клавиши и порядок выбора устройств для загрузки. Теперь это работает так:

    КЛАВИША - РЕЖИМ
    нет - квазидиск
    F1 - магнитофон
    F2 - жесткий диск
    F1+F2 - дисковод
    F1+F3 - сетевой адаптер
    F3 - Бейсик v2.61
    F4 - Монитор СуперМонстр v3.5
    F5 - МППЗУ
    F5+AP2 - самотестирование ПЗУ
    AP2 - загрузка из РС через порты ПУ-LPT

    Если для загрузки выбрано неподключенное устройство, загрузка будет производиться со следующего подключенного устройства согласно приоритету:
    - КД
    - НЖМД
    - НГМД
    - МППЗУ
    - сетевой адаптер
    - магнитофон

    Удерживание клавиши УС при перезагрузке отменяет очистку ОЗУ (кроме экранной области c адресами 0C000H-0DFFFH) и позволяет войти в режимы:

    КЛАВИША - РЕЖИМ
    УС+F4 - реанимация 0 блока монитора (режим загрузки детектируется)
    УС+F5 - загрузка из модуля МППЗУ
    УС+AP2 - загрузка данных из РС через порты ПУ-LPT
    УС+СТР - загрузка модуля выгрузки данных через ПУ (в мониторе)
    УС+др.комбинации или ничего - магнитофон

    Загрузочная часть прошивки с исходниками: BOOT21.7z
    Ну и полная прошивка, все 64кб в одном файле: vector20.7z

    Эти 7 пользователя(ей) поблагодарили Improver за это полезное сообщение:

    electroscat(20.05.2021), ivagor(08.04.2021), KACTET(13.04.2021), KTSerg(09.04.2021), megov(27.12.2021), svofski(09.04.2021), yur(19.04.2021)

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

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

Ваши права

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