User Tag List

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

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

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

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

    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,390
    Спасибо Благодарностей отдано 
    119
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    +2 ну как бы по определению с магнитофоном, а +3 - там вовсе не тырдос.
    а так да, не работает, хоть и заявлено +3
    я не про встроенную ос веду речь, контроллер tr-dos подключается к +3 ровно как и к другим фирменным машинам
    http://zx-pk.ru/market/viewtopic.php?f=7&t=790
    цитирую:
    /Конструктор BDI 2.0
    Печатная плата и набор деталей для сборки контроллера BDI ( TR-DOS ) с разъемом ZX-BUS
    Контроллер подходит:
    1. Для всех фирменных компов ( Sinclair ZX-Spectrum 48, 48+, 128, +2, +2A/B, +3 )
    /
    на форуме есть люди которые пользуются.

    и ещё есть DivIDE с поддержкой trdos и, о чудо, тоже работает на +2A, +3.

    ---------- Post added at 11:39 ---------- Previous post was at 11:36 ----------

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Помоему TRDOS не совместим с +2A/+3, поэтому он никак не будет там работать
    ну в общем выше ответил уже

    ---------- Post added at 11:41 ---------- Previous post was at 11:39 ----------

    лично использую trdos на +2A хоть и в составе DivIDE (тоже не мешало бы прикрутить). Пользователь ZX NOVOSIB, на сколько я помню использует +2B c аппаратным контроллером TR-DOS.

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

  3. #2

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    176
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    А фирменный BDI с +3 по идее не работает там свой дос.
    А что ему помешает работать? Порты не пересекаются, а при обращении к нужным адресам контроллер BDI подключит свой ром и всё.
    По-моему главная и единственная причина того, что TR-DOS не пашет в эмуляции +2/+3, это то, что ром с TR-DOS вообще не предусмотрен в их маппинге. Тут бы какую-нибудь возможность для устройств добавлять свои ромы сделать. Без этого ни DivIDE, ни даже мультифейс проэмулировать не выйдет.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  4. #3

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    А что ему помешает работать? Порты не пересекаются, а при обращении к нужным адресам контроллер BDI подключит свой ром и всё.
    По-моему главная и единственная причина того, что TR-DOS не пашет в эмуляции +2/+3, это то, что ром с TR-DOS вообще не предусмотрен в их маппинге. Тут бы какую-нибудь возможность для устройств добавлять свои ромы сделать. Без этого ни DivIDE, ни даже мультифейс проэмулировать не выйдет.
    а как должна работать подмена ROM устройствами? Если несколько устройств захотят одновременно подменить ROM как быть?

    Тут возникает ситуация как с портами. Отслеживать конфликты сложно. Я думаю правильнее было-бы завести устройство порт-менеджер, через который другие устройства могут подписываться на порты. Соответственно вся логика портов в одном устройстве.
    С ROM'ами видимо можно аналогично поступить - добавить в интерфейс MMU методы для замены ROM. Только пока не совсем понятно что именно требуется заменять?

    Как вообще работает эта подмена ромов в DivIDE? Ром всегда подменяется или только по какомуто условию?

    ---------- Post added at 19:24 ---------- Previous post was at 19:22 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Подозреваю, что этой ошибкой было отсутствие .NET в системе)
    или DirectX )))
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #4

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    176
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    а как должна работать подмена ROM устройствами? Если несколько устройств захотят одновременно подменить ROM как быть?
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    На оригинальных компьютерах в область 0x0000-0x3fff при помощи специального сигнала на шине можно заблокировать сигнал выбора встроенного на плату ПЗУ, внешние устройства в момент чтения из памяти из этой области при активном сигнале, могу выставлять свои данные на шину, простейший случай - подставляют ПЗУ
    Вот именно это поведение и проэмулировать. Если два устройства хотят выставить этот ROMCS, то срабатывает то, которое выше (ниже) в списке устройств.

    Может даже так
    Код:
    var mem = bus_manager.FindDevice<IMemoryDevice>();
    mem.SetROMCS(false, CustomRead0000); // отключили ПЗУ, вместо него все запросы чтения уходят делегату CustomRead0000
    ....
    mem.SetROMCS(true); // включили ПЗУ обратно
    Ну или тупо массив передавать в IMemoryDevice, если падение скорости будет значительным. Если у эмулируемого устройства больше 16к ПЗУ - пусть само пейджингом рулит.

    Поглядел, кстати, шину - на +3 и +2A этого ROMCS нет. Вот и не работает бетадиск. Но там сходные сигналы есть на других пинах. Новодельный BDI вроде же на плисине, возможно, что проблема решается прошивкой.



    Цитата Сообщение от Velesoft
    Original BETADISK and all Czech BETADISC clones is designed for ZX48 or 128/+2(no +2A) only. BETADISK detect only bit D4 of port #7FFD = enable trdos if 48rom is set (D4=1). ZX48 use only 48 rom = work correct after switching to 48mode. On ZX128 and +2(grey model) work also without problem.

    +2A/+2B and +3 machines use different ZX bus pinout and use two singals ROMOE1 and ROMOE2. This bus also absent next signals as 9V etc.... If you connect original BETADISC to +2A, then ZX will destroyed - romcs signal from betadisc will on +2A ignored and trdos rom will collide with +2A rom of RAM memory of with ULA (if you set allram mode)
    Отсюда

    ---------- Post added at 02:32 ---------- Previous post was at 02:15 ----------

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Как вообще работает эта подмена ромов в DivIDE? Ром всегда подменяется или только по какомуто условию?
    Управляемо, там есть соответствующий порт.
    Дока http://baze.au.com/divide/files/pgm_model.txt
    Последний раз редактировалось Eltaron; 12.01.2015 в 00:17.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  6. #5

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Вот именно это поведение и проэмулировать. Если два устройства хотят выставить этот ROMCS, то срабатывает то, которое выше (ниже) в списке устройств.

    Может даже так
    Код:
    var mem = bus_manager.FindDevice<IMemoryDevice>();
    mem.SetROMCS(false, CustomRead0000); // отключили ПЗУ, вместо него все запросы чтения уходят делегату CustomRead0000
    ....
    mem.SetROMCS(true); // включили ПЗУ обратно
    Ну или тупо массив передавать в IMemoryDevice, если падение скорости будет значительным. Если у эмулируемого устройства больше 16к ПЗУ - пусть само пейджингом рулит.
    для производительности лучше чтобы одно устройство памятью рулило. Для обычного спектрума понятно, но как быть в случае, если это какой-нибудь PENTEVO, АТМ или Scorpion PROF-ROM? У них уйма страниц пзу, в том числе и разные TRDOS. Когда подмена в таком случае должна работать?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  7. #6

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    176
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    для производительности лучше чтобы одно устройство памятью рулило. Для обычного спектрума понятно, но как быть в случае, если это какой-нибудь PENTEVO, АТМ или Scorpion PROF-ROM? У них уйма страниц пзу, в том числе и разные TRDOS. Когда подмена в таком случае должна работать?
    Никак, оставить как есть. У них и устройства бетадиска свои, так что ничего не поломается А новый функционал реализовать только для классических спектрумов и их наследников.

    Хотя вообще можно, наверное, по схеме логику проследить. Но непонятно, какие устройства к пентеве имеет смысл подключать. Бетадиск незачем, дивиде, мультифейс тоже. Разве что спектранет, у него тоже свое ПЗУ вроде есть. Не факт, впрочем, что он и на реальной пентеве заведется.

    ---------- Post added at 10:58 ---------- Previous post was at 10:54 ----------

    Ну или да, реализовать менеджер ром-страниц с возможностью добавлять и переключать страницы извне. Все проблемы это решит, хоть решение и будет дальше от того, как работает железо.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  8. #7

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наконецто порезал эмулятор на части, теперь движок независим от реализации хоста, нет референсов на winforms или xna

    В самом ZXMAK.exe остались только реализации устройств без каких-либо ссылок на winforms или xna Можно их тоже порезать на части

    Реализации для разных платформ задаются в unity.config в отдельных контейнерах с именами соответствующими платформе. Сейчас это winforms или xna.
    Какую платформу запускать по дефолту можно задать в том-же unity.config (переменная viewType). А можно задать через командную строку:
    ZXMAK2.exe /host:xna [<snapshot>]
    На самом деле эта опция просто перегружает значение viewType в unity.config

    Для добавления новой платформы нужно реализовать сборку с реализацией IMainView и IHost и добавить новый контейнер в unity.config, в котором прописать мапинг на реализацию. Остальные вью можно не добавлять, тогда их вызов будет просто игнорироваться (команды возвращают CanExecute()==false).
    Вообще mainview нужно переписать, чтобы реюзать winforms для opengl, да и код mainpresenter/mainview получился кривоватый

    Пока новый релиз не делал, но все изменения доступны в тфс

    Заодно пофиксилась синхронизация звука в xna, теперь 50 Гц, правда стабильность синхронизации под XNA4 оставляет желать лучшего, но уже более-менее юзабельно, даже звук нормальный
    Последний раз редактировалось ZXMAK; 12.01.2015 в 10:52.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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