User Tag List

Страница 55 из 85 ПерваяПервая ... 515253545556575859 ... ПоследняяПоследняя
Показано с 541 по 550 из 849

Тема: Пожелания и планы по эмулятору Башкирия-2М

  1. #541

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Через что оно отлаживает? Что шагает по исходнику?
    Собственный отладчик. sdcdb.dll написана с нуля, с ней связывается эмулятор через pipe.

    Цитата Сообщение от Error404 Посмотреть сообщение
    А где это "везде" такие кнопки? У борландов другие.
    У мелкософтовской студии

    Цитата Сообщение от Error404 Посмотреть сообщение
    Дада. Я так и делаю, однако ".ihx not found". Черный эмулятор и никакого и т.д. ЧЯДНТ?
    Забыл сказать: надо обязательно проект открывать. Имя запускаемого файла будет по имени проекта. Сейчас make.cmd так делает, но надо бы нормальный make приделать. Ты каким пользуешься?

    Хотя, запуск без проекта я тоже предусмотрел, только надо make.cmd поправить, чтобы имя скомпилированного файла совпадало с именем сишного (с точностью до расширения, конечно).

    ---------- Post added at 01:42 ---------- Previous post was at 01:34 ----------

    Цитата Сообщение от Error404 Посмотреть сообщение
    оно пытается сохраниться (какого хека, его просили сохраняться?), но не может
    Это я не знаю, это к разработчику Programmer's Notepad

    Цитата Сообщение от Error404 Посмотреть сообщение
    Еще очень нужны вотчи для хотя бы переменных (но если будет с выражениями, то будет шикарно). Без вотчей отладчик теряет смысл. Калстек - это уже опционально, можно и обойтись без него.
    Экий ты шустрый парень!
    Всё будет. Только вот интерфейс к плагинам у Programmer's Notepad весьма скудный. Я даже клавиши (F5,F9...) сейчас "нелегально" перехватываю, через подставную wndproc. А уж док-панель свою с вотчами сделать - это пока нереально. Пока думаю, как можно сделать. Самое простое - в виде текста в Output, но мне не нравится.

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

  3. #542

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Идем дальше.
    Поправил файл тест.с и не могу запустить или скомпилировать - оно пытается сохраниться (какого хека, его просили сохраняться?), но не может: выдает такое или такое с непонятной закономерностью (при любом выборе не сохраняется. И не компилирует потому что не сохранено. замкнутый круг)
    Как оказалось - старая проблема. Не знаю какими функциями файлового IO пользуется PNotepad, но он как и твой эмулятор (об этом я писал в треде с полгода назад) не дружит с виртуальными дисками VirtualBox-а (они из-под хост системы с Линукс по cifs прокидываются в виртуалку в винду, т.е. это как бы сетевые диски). Весь архив лежал на таком диске и глючил. Как только я переместил архив на C: стало работать нормально и все сохраняется.

    Пожелания: немного по точкам останова.
    1. Во вложении картинка на которой видно, что в эмуляторе еще не закончил работать первый print (не все цифры выведены), а эмулятор уже провалился в точку останова второго print.
    2. В точку останова в функции aaa() мне никак не удалось попасть, хотя она явно вызывается - результат ее действия выводится в теле основных print-ов.
    3. А можно в какой-нибудь настроечный файл вынести настройку кнопок управления шагалкой, брикпоинтами, запуском/билдом и т.п.? А то очень непривычно. И еще - есть ли возможность ставить точки останова кликом мыши по серому полю слева от строк программы? Кнопкой ставится только в позиции курсора.

    Можешь для лучшего понимания написать пару слов - каким образом в модель Ориона влетает скомпилированный бинарник? Просто я не заметил характерных этапов загрузка ДОС Ориона, ощущение такое, что она работает с образа памяти или снапшота - что и как при этом там проинициализировано? Бинарник запускается средствами CCP CP/M (ведь CCP при загрузке файла на выполнение делает некую инициализацию стека и областей 05Ch...06Сh...080h..0FFh)? Можно ли передать параметры командной строки и как?

    А вообще, в целом очень приятно выглядит. Если ты допилишь до конца, это будет очень здорово, дело очень нужное. Надеюсь у многих людей появится стимул сдвинуть свои С-шные проекты с мертвой точки, т.к. дебугер это очень большое подспорье.
    Последний раз редактировалось Error404; 04.04.2012 в 09:59.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #543

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пипец. SDCC не понимает ключи путей если путь закнчивается на бэкслеш. И начинает характерно глючить. По-моему любой пионер при передаче параметров через комстроку в своих программах анализирует лишние слеши (мало ли чего там пользователь напишет?).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #544

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Пожелания: немного по точкам останова.
    1. Во вложении картинка на которой видно, что в эмуляторе еще не закончил работать первый print (не все цифры выведены), а эмулятор уже провалился в точку останова второго print.
    2. В точку останова в функции aaa() мне никак не удалось попасть, хотя она явно вызывается - результат ее действия выводится в теле основных print-ов.
    3. А можно в какой-нибудь настроечный файл вынести настройку кнопок управления шагалкой, брикпоинтами, запуском/билдом и т.п.? А то очень непривычно. И еще - есть ли возможность ставить точки останова кликом мыши по серому полю слева от строк программы? Кнопкой ставится только в позиции курсора.
    1. Это особенность эмулятора. На экране видно только то, что к данному моменту времени успел отобразить "луч кинескопа".
    2. Видимо, компилятор соптимизировал до:
    Код:
    int aaa(int as)
    {
      return as+12;
    }
    А то и вовсе сам константу посчитал. Шагай клавишей F11, она покажет реальный код, который остался.
    3. Настройки клавиш пока рановато делать, надо костяк дописать. Про мышь - посмотрю, может и можно. Но не гарантирую.

    Цитата Сообщение от Error404 Посмотреть сообщение
    Можешь для лучшего понимания написать пару слов - каким образом в модель Ориона влетает скомпилированный бинарник? Просто я не заметил характерных этапов загрузка ДОС Ориона, ощущение такое, что она работает с образа памяти или снапшота - что и как при этом там проинициализировано? Бинарник запускается средствами CCP CP/M (ведь CCP при загрузке файла на выполнение делает некую инициализацию стека и областей 05Ch...06Сh...080h..0FFh)? Можно ли передать параметры командной строки и как?
    Если посмотреть на настройки команды Run, то там видно, что эмулятор вызывается с параметрами: orion.emu /d "dbgsvr:%p". То есть грузится сохранённое состояние и указано, что нужно конектиться к внешнему отладчику (параметр %p это имя проекта, фактически, путь к запускаемому файлу, эмулятор передаёт его отладчику). Состояние я сохранил после запуска программы test.com, которая состоит только из перехода jmp 100h, догадываясь, что просто запуск программы с адреса 100h может оказаться неожиданным для ДОСа.

    После того, как эмулятор сконнектился, отладчик грузит в память эмулятора программу из .ihx, а также анализирует .cdb, после чего запускает программу с начального адреса.

    Таким образом, можно сохранить состояние эмулятора для другого компьютера (например ZX Spec), подправить crt0, и можно будет отлаживать программы для Спектрума.

    Параметры командной строки передать пока нельзя, можно лишь сохранить состояние эмулятора после запуска test с параметрами. Над этим потом подумаем.

  6. #545

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    2. Видимо, компилятор соптимизировал до:
    Код:
    int aaa(int as)
    {
      return as+12;
    }
    А то и вовсе сам константу посчитал. Шагай клавишей F11, она покажет реальный код, который остался.
    А можно тогда сделать такое:
    Я расставляю брикпоинты по исходному тексту, после постановки они красные. Я нажимаю make или run, выполняется компиляция, и по ее результату брекпоинты которые становятся указывающими на несуществующие в выходном файле строки (те что съел при оптимизации компилятор), выделяются другим цветом (например, белым - типа "disabled")?

    Просто, шагание - не выход. Я может на тот брекпоинт после миллионного цикла попасть должен (оказывается - не должен: соптимизировано). В рунтайме оно бысто проскочило бы, а шагать я буду до морковкиного заговения.
    А так я заранее буду видеть почему оно на этой точке не остановилось.

    ---------- Post added at 17:11 ---------- Previous post was at 16:58 ----------

    Цитата Сообщение от b2m Посмотреть сообщение
    1. Это особенность эмулятора. На экране видно только то, что к данному моменту времени успел отобразить "луч кинескопа".
    Странный луч какой-то. Не все же 5 цифр показывает "срезанные до половины" (как я представлял бы себе построчную развертку), а три из пяти, но эти три - целые.

    Может, тогда как-то допилить чтобы эмулятор на точке останова возвращал управление в отладчик с задержкой в 20мс (чтобы луч с гарантией дошел)? Не на каждой строке чтобы делало задержку, а только после брекпоинта перед возвращением фокуса в PNotepad. Для отладчика это не принципиально - там же человек сидит, которому для реакции что, +20мс, что -20мс это один фиг не заметно.
    Последний раз редактировалось Error404; 04.04.2012 в 17:06.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #546

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А можно тогда сделать такое:
    Я расставляю брикпоинты по исходному тексту, после постановки они красные. Я нажимаю make или run, выполняется компиляция, и по ее результату брекпоинты которые становятся указывающими на несуществующие в выходном файле строки (те что съел при оптимизации компилятор), выделяются другим цветом (например, белым - типа "disabled")?
    Да, нечто такое предполагается сделать.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Странный луч какой-то. Не все же 5 цифр показывает "срезанные до половины" (как я представлял бы себе построчную развертку), а три из пяти, но эти три - целые.
    Странно ты понимаешь. Луч-то быстрее оказался, чем вывод символа. Т.е. строка (вся) отобразилась лучём на момент между выводом последнего видимого и следующего невидимого.

    Цитата Сообщение от Error404 Посмотреть сообщение
    Может, тогда как-то допилить чтобы эмулятор на точке останова возвращал управление в отладчик с задержкой в 20мс (чтобы луч с гарантией дошел)?
    И что должен делать процессор и остальные устройства (таймер, например) в эти 20мс?
    Рассинхронизация времени различных устройств на данный момент не предусмотрена. Первое, что приходит в голову - видео сгенерирует ещё одно прерывание по кадру. И таких мелочей может оказаться очень много. Тут надо какое-то особое извещение посылать, что надо обновить экран, не трогая время внутри эмулятора.

  8. #547

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Рассинхронизация времени различных устройств на данный момент не предусмотрена. Первое, что приходит в голову - видео сгенерирует ещё одно прерывание по кадру. И таких мелочей может оказаться очень много. Тут надо какое-то особое извещение посылать, что надо обновить экран, не трогая время внутри эмулятора.
    не различных устройств, а отрисовщика экрана и всего прочего эмулятора. Это таймер и ЦПУ сложно по отдельности останавливать, а отрисовку экрана можно приостанавливать (или запускать) когда угодно - за один проход луча оно восстановит отображение на экран текущего состояния экранной памяти.

    Поэтому и предложение было такое: останов на брекпоинте останавливает все треды/устройства сразу, кроме треда (или как оно у тебя организовано) экрана, который делает еще один проход луча и тоже встает. И только после этого идет возврат в дебагер. Можно просто тупо "в лоб" (без всяких дополнительных сообщений от дебагера) вызывать в эмуляторе отрисовку сразу после останова всего на паузу/брикпоинт, не выдерживая интервал между проходами луча. Вот примерно такое я имел в виду.

    Впрочем, тебе как автору виднее. Но корректные принты на экран нужны - отладка при помощи принтов на экран очень часто используется, а тут она вдруг будет разъезжаться.
    Последний раз редактировалось Error404; 04.04.2012 в 18:54.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #548

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Но корректные принты на экран нужны - отладка при помощи принтов на экран очень часто используется, а тут она вдруг будет разъезжаться.
    На этот счёт я думал сделать перехват вывода в какой-нибудь несуществующий порт, и выводить в Output прямо в IDE. Типа OutputDebugString.

  10. #549

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    На этот счёт я думал сделать перехват вывода в какой-нибудь несуществующий порт, и выводить в Output прямо в IDE. Типа OutputDebugString.
    Тогда проще "присесть" на вектор conout BIOS и дублировать в IDE то что туда выводится. Только как быть с conin?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #550

    Регистрация
    04.09.2010
    Адрес
    Москва
    Сообщений
    64
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    b2m,
    Дмитрий, в версии от 22.03.12 в эмуляции "Специалист" не загружаются "кассеты" по сбросу. Раньше всё работало. Пример файла http://www.pk-info.ru/UPLOAD/igrotek...)_original.zip

Страница 55 из 85 ПерваяПервая ... 515253545556575859 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 1034
    Последнее: 29.10.2021, 07:15
  2. Жалобы/пожелания по работе форума
    от Conan в разделе Форум
    Ответов: 6289
    Последнее: 14.03.2021, 00:19
  3. пожелания создателям эмуляторов
    от проф в разделе Эмуляторы
    Ответов: 24
    Последнее: 09.02.2007, 01:31
  4. Пожелания по сервисам форума
    от andrews в разделе Форум
    Ответов: 10
    Последнее: 14.08.2006, 13:47

Ваши права

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