samstyle / Xpeccy

Multiplatform emulator of retro computers
MIT License
71 stars 13 forks source link

Счетчик T-State #117

Closed holub closed 3 years ago

holub commented 3 years ago

Можно ли добавить счетчик тактов от поледнего INT в Debug режиме? Идеально чтобы можно было сбросить счетчик по желанию и считать такты с любого места.

samstyle commented 3 years ago

В отладчике над дизасмом есть числа 12/34567 Первое - это счетчик тактов от последнего посещения дебагера. При пошаговой отладке показывает такты каждой команды. Можно использовать как счетчик "от брыкпоинта до брыкпоинта" Второе - счетчик тактов от последнего INT-а.

holub commented 3 years ago

Я сотрел на эти числа, но что-то не нашел закономерности. Вот например: image Почему второе число не 0?

samstyle commented 3 years ago

Потому что пришёл INT -> дождались выхода из HALT -> приняли прерывание -> выполнили процедуру обработки прерывания -> вернулись к точке за HALT. И на всё это кушаются такты CPU

holub commented 3 years ago

Мой косяк с HALT был. Но следующий сценарий считаю не логичным:

Мне кажется, что такты от текущей команды стоило бы добавить.

holub commented 3 years ago

F9 будешь фиксить? Если нет, можно закрывать. Я в принципе F7,F8 могу пользоваться, они предсказуемо работают.

samstyle commented 3 years ago

уже закоммитил фикс. когда соберу - уже другой вопрос.

holub commented 3 years ago

Замечательно! Собрал из исходников. Работает!

holub commented 3 years ago

Если не сложно добавляй номер issue в коммит. Было бы интересно иногда посмотеть где что почем?

holub commented 3 years ago

Кстати с одной стороны удобно что после HALT в дебагере устанавливается 0. Но с другой стороны непонятно когда происходит нахлекст из-за некратных тактов, что приводит к "плаванию" изображения. Может в этом случае добавить метку типа "*" в конце счетчика?

holub commented 3 years ago

К F9 еще претензии есть минорная. Когда нажимаешь F9 на строке подсвеченной, следуящая остановка - следующая комманда. Немного не удобно цыклы дебажить приходиться по два раза кнопку тыкать.