User Tag List

Страница 6 из 9 ПерваяПервая ... 23456789 ПоследняяПоследняя
Показано с 51 по 60 из 86

Тема: Эмулятор 'Etalon Korvet Emulator' - разработка

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

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

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    новая опция -f font_name

    добавил новую ПЗУ от квант-8 (от tigriss)
    ./kdbg -r data/kvant8-tigriss.rom -f data/kvant8-tigriss.fnt

    переименовал term.rom -> kvant8-terminal.rom

    и главное, поддержка ExtROM_EMU
    -E foldername
    папака в которое содержимое "SDCARD" в комплекте папка extrom\

    в ней же должены быть stage1.rom (256 байт) и stage2.rom
    сейчас эмулируется в объеме который forth32 реализовал в железе
    если удерживать 0-7 грузит не stage2.rom а extrom из файлов ext0.rom .. ext7.rom
    там есть примеры
    stage2 уже работает с ext.kdi

    это все будет много раз меняться, разработка однако.

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

  3. #2

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    1. В списке ключей getopt ты забыл в конце двоеточие после большой буквы Е. В результате, если запустить программу, как ты написал выше (-E floder), то эмулятор сегфолтится сразу после запуска Пришлось лезть в GDB, чтобы это отловить...

    2. У тебя даже в режиме extrom к эмулятору подключаются физические дисководы. В результате после загрузки система начинает полноценно функционировать. Я чуть со стула не упал... Для отладки эмулируемых биосов такое поведение системы очень вредно, поскольку непонятно, откуда взялся очередной сектор - из интерфейса или с реальной дискеты.
    Самое неприятное, что отказаться от подключения реальных дисков вообще нельзя - если убрать из конфига соответствующие строки, то монтируются файлы disk/disk%.kdi. Помог только грязный хак в виде указания ключа -A с заведомо несуществующим именем файла. Вот тогда после загрузки вполне предсказуемо полезло сообщение "диск не читается".

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

    На первый взгляд вроде все. Второй, третий и остальные взгляды буду сегодня позже, когда я плотно полезу отлаживать биосы.

    Чтобы ты мог полноценно поиграть с эмуляцией интерфейса, прикладываю образ диска с биосом, который работает уже через API. Для полноты ощущений отключи от эмулятора все физические диски, тогда гарантированно будешь знать, что весь обмен данными идет только через интерфейс.

    Биос там еще недоделанный и требует отладки, которую я запланировал на сегодня. Но уже вполне полноценно работает с интерфейсом. Физичесике дискеты A и B в этом биосе отображаются на буквы C и D, но это еще не совсем доделано.
    Вложения Вложения
    • Тип файла: 7z system1.7z (154.5 Кб, Просмотров: 91)

  4. #3

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    О, отлично. Попробовал твой вариант эмуляции - все более-менее работает.
    Несколько замечаний, ты уж извини старого зануду...
    это очень полезно !

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

    Цитата Сообщение от forth32 Посмотреть сообщение
    1. В списке ключей getopt ты забыл в конце двоеточие после большой буквы Е. В результате, если запустить программу, как ты написал выше (-E floder), то эмулятор сегфолтится сразу после запуска Пришлось лезть в GDB, чтобы это отловить...
    мда, написал в доку и не проверил

    ---------- Post added at 11:00 ---------- Previous post was at 10:58 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    2. У тебя даже в режиме extrom к эмулятору подключаются физические дисководы. В результате после загрузки система начинает полноценно функционировать. Я чуть со стула не упал...
    сделал -z - запретить эмуляцию ВГ93
    с ней - сразу виснет, как и положено
    а что из портов VG читается когда ее нет ?

    ---------- Post added at 11:01 ---------- Previous post was at 11:00 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    3. Обязательно сделай лог-файл всех операций чтения-записи секторов через интерфейс. Это совершенно необходимый инструмент для отладки. Себе-то я его, естественно, уже сделал, но и тебе рекомендую. Поверь, вчера при возне с биосами этот лог мне оказал неоценимую помощь.
    эт понятно
    просто пока было безсмысленно.

    ---------- Post added at 11:04 ---------- Previous post was at 11:01 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Чтобы ты мог полноценно поиграть с эмуляцией интерфейса, прикладываю образ диска с биосом, который работает уже через API. Для полноты ощущений отключи от эмулятора все физические диски, тогда гарантированно будешь знать, что весь обмен данными идет только через интерфейс.

    Биос там еще недоделанный и требует отладки, которую я запланировал на сегодня. Но уже вполне полноценно работает с интерфейсом. Физичесике дискеты A и B в этом биосе отображаются на буквы C и D, но это еще не совсем доделано.
    сегодня посмотрю/прикручу !
    ты бы сразу выкладывал и исходники emu, чтоб не гадать с апи

    ---------- Post added at 11:06 ---------- Previous post was at 11:04 ----------

    я вчера со спидтестом игрался, кое что получается

  5. #4

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    сделал -z - запретить эмуляцию ВГ93
    с ней - сразу виснет, как и положено
    а что из портов VG читается когда ее нет ?[COLOR="Silver"]
    При отсутствии вг93 из портов читается FF, поскольку вся шина подтянута к +5v.

    Еще правильнее - при наличии ключа -z надо выдавать ссобщение в лог при попытке обращения к этим портам. Это надо, чтобы отловить в биосе неиcправленные места обращений к диску. Ну, тут ты можешь не заморачиваться, если не хочешь - себе я и сам это сделаю Только потом и ты в это упрешься, как будешь заниматься биосами...


    эт понятно
    просто пока было безсмысленно.
    Ну, для меня это вещь номер 1. Без такого лога отладка биоса превращается в АД. Собственно, у меня и сам железный контроллер опционально формирует такой лог на треминал. Это сильно замедляет работу, когда включено, но очень помогает в отладке.

    ты бы сразу выкладывал и исходники emu, чтоб не гадать с апи
    Так исходники прошивки я еще неделю назад выложил - апи как раз там и описано. Другого ничего не реализовано.

    А исходники CP/M и BIOS я выложу несколько позже - вначале отладить их надо, чтобы перед народом не позориться сырым кодом.

    сегодня посмотрю/прикручу !
    Да там прикручивать особо нечего, просто положи этот KDI в каталог эмулируемой карты, переименуй, как там ты придумал, да загрузись.

    я вчера со спидтестом игрался, кое что получается
    Выкладывай, как доделаешь - надо на реальной железке померить, а не на эмуляторе На эмуле все будет пулей летать, а на железе упрется в скорость меги.
    Последний раз редактировалось forth32; 08.07.2014 в 12:30.

  6. #5

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    реализовал запись
    твой образ - заработал
    репу обновил


    ---------- Post added at 12:30 ---------- Previous post was at 12:28 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Так исходники прошивки я еще неделю назад выложил - апи как раз там и описано. Другого ничего не реализовано.
    я просто решил что там новые функции

  7. #6

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я смотрю, ты для измерения скорости добавил в апи команду F0, после которой можно передать в интерфейс 32К мусора и замерить время. Так?

    А клиентская часть уже имеется?

  8. #7

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Я смотрю, ты для измерения скорости добавил в апи команду F0, после которой можно передать в интерфейс 32К мусора и замерить время. Так?

    А клиентская часть уже имеется?
    ага, после нее корвет тупо читает 0x8000 байт
    по идее будет F1 пишет

    in progress

  9. #8

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отлично. Я добавил в прошивку меги обе команды - и F0, и F1. По-быстрому написал программку для корвета - все отлично пишет и читает. Теперь буду ждать, когда ты измерялку времени напишешь.

  10. #9

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот для пробы, попробуй запустить
    ext5.rom (соответсвенно 5 при запуске)

    но пока что-то не очень понятно
    там 2 теста
    каждый печатает 3 числа, это 3 разных продцедуры чтения, чуть поигрался в оптимизатора.

    1й, меряет сколько байт передалось за один VBL
    2й, считает сколько полных VBL прошло за время передачи 0x8000 байт

    получается что-то странное
    Код:
    Bytes in one int			 
     b1H	177		8850
     c1H	193		9650
    24cH	588		29400
    frames when transfer 0x8000			
    4bH	75	436.9	21845.3
    48H	72	455.1	22755.6
    26H	38	862.3	43115.8
    что-то меня смущает что скорость ТАК отличается
    надо переделывать, таки переносить данные в память и проверять что там приехало
    заодно и ближе к реальности будет.
    Вложения Вложения

  11. #10

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Вполне предсказуемо, он выдает стабильные повторяющиеся результаты. То есть каждый проход ( а у тебя проходы повторяются бесконечно) получается один и тот же результат. К сожалению, скриншот АЦЗУ корвета мы не предусмотрели (а можно было бы - перекидать его в контроллер через тот же интерфейс), поэтому придется набить руками:

    1: 4c 49 28
    2: 00AD 00BC 022F

    Первые 2 результата предсказуемо почти одинаковы - ты только поменял вычисление адреса порта (2 dec L) на прямое обращение к нему. Пожалуй, ты прав - так быстрее.

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

    Ну, вот примерно так. Откуда у тебя взялась колонка 4 во втором тесте? У меня он только 3 числа выдает, по количеству вариантов GETBYTE.

Страница 6 из 9 ПерваяПервая ... 23456789 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Athletic Land 4 Korvet
    от esl в разделе Корвет
    Ответов: 2
    Последнее: 20.04.2013, 12:48
  2. Разработка под эмулятором
    от Hacker VBI в разделе Программирование
    Ответов: 33
    Последнее: 14.03.2013, 15:11
  3. Разработка ZXOOM
    от Andrew771 в разделе Игры
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  4. Разработка ZXOOM
    от Andrew771 в разделе Графика
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  5. Разработка БК-0101-10
    от CodeMaster в разделе БК-0010/0011
    Ответов: 61
    Последнее: 21.04.2011, 21:13

Ваши права

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