Важная информация

User Tag List

Страница 85 из 278 ПерваяПервая ... 818283848586878889 ... ПоследняяПоследняя
Показано с 841 по 850 из 2779

Тема: Xpeccy

  1. #841

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хитрожопый код сам себя затирает. Где он должен располагаться?
    Вот это работает правильно:
    Код:
    	di
    	ld sp,0x4002
    	ld hl,0x01ff
    	push hl
    	jr $
    Только что заметил, что при отладке экран перестал перерисовываться...
    Последний раз редактировалось SAM style; 18.02.2014 в 13:01.
    Все любят гипножабу

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

  3. #842

    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    971
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Хитрожопый код сам себя затирает. Где он должен располагаться?
    Код расположен в ROM, именно поэтому такой возврат чудесный из процедур делается. Конкретно - пишу тест памяти под свои скромные нужды на реале.

    Грабля вылезает даже если не входить в отладчик.
    Вот бинарник на котором грабля лизэ. testrom.zip

    Считал, считал, вроде не выходит у меня что это я обсчитался...
    Последний раз редактировалось ram_scan; 19.02.2014 в 05:22.

  4. #843

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    адрес 0x123 (проверка заполнения):
    Код:
    pop iy
    ld sp,ix   ; sp = ix = 0x4000
    push hl   ; попытка push в ПЗУ (3FFF/FE) ни к чему не приводит
    pop ix    ; = 0 (содержимое ПЗУ в 3FFE/FF)
    pop de    ; содержимое 4000/01
    sbc hl,de  ; hl = 0, тут всё правильно
    push ix   ; запись 0 в 4000/01 - вот тут ячейки и портятся
    pop hl
    jr nz,0x13a ; NZ от чего? sbc hl,de не влияет на флаг Z
    ...
    Все любят гипножабу

  5. #844

    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    971
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    адрес 0x123 (проверка заполнения):
    Код:
    pop iy
    ld sp,ix   ; sp = ix = 0x4000
    push hl   ; попытка push в ПЗУ (3FFF/FE) ни к чему не приводит
    pop ix    ; = 0 (содержимое ПЗУ в 3FFE/FF)
    pop de    ; содержимое 4000/01
    sbc hl,de  ; hl = 0, тут всё правильно
    push ix   ; запись 0 в 4000/01 - вот тут ячейки и портятся
    pop hl
    jr nz,0x13a ; NZ от чего? sbc hl,de не влияет на флаг Z
    ...
    Я плохо что-либо понял из вашего поста =(

    Во первых sbc hl,de влияет на флаг Z. Как и на остальные флаги, о чем написано в даташите на процессор, а именно флаги S,Z,H,P/V, N,C. Как любая арифметическая команда.

    Во вторых я не понял попытались ли вы воспроизвести багу с тем кодом (ROM для 48к), который я приаттачил в сообщении ? И скриншот которого я приаттачил чуть раньше ?

    Опять-же, значение будучи пушнуто в стек когда SP==4002 в память попадает. Оно потом оттуда прекрасно читается, и его видно в отладчике. Оно каким-то образом не попадает в дисплейную память эмулятора и потом не рендерится при выводе изображения.

  6. #845

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ram_scan Посмотреть сообщение
    Во первых sbc hl,de влияет на флаг Z. Как и на остальные флаги, о чем написано в даташите на процессор, а именно флаги S,Z,H,P/V, N,C. Как любая арифметическая команда.
    Да, это я что-то поторопился.
    Во вторых я не понял попытались ли вы воспроизвести багу с тем кодом (ROM для 48к), который я приаттачил в сообщении ? И скриншот которого я приаттачил чуть раньше ?
    Опять-же, значение будучи пушнуто в стек когда SP==4002 в память попадает. Оно потом оттуда прекрасно читается, и его видно в отладчике. Оно каким-то образом не попадает в дисплейную память эмулятора и потом не рендерится при выводе изображения.
    При проверке (кусок кода выше) HL, как я понял, должно сохраняться в IX? НО при первом прохождении это происходит, когда SP=0x4000, т.е push hl происходит в ПЗУ и не сохраняется. После pop ix в ix уже не значение HL, а то, что было в последних 2 байтах ПЗУ (т.е 0). Поэтому после восстановления (push ix / pop hl) в hl возвращается не предыдущее значение, а 0. Поэтому вторая итерация уже приводит к ошибке. При этом push ix происходит, когда sp=0x4002, и это затирает первые 2 байта экрана, что прекрасно видно.
    PS: а занесенных до этого байт не видно, потому как они не успевают перерисоваться лучом. Экран не мнгновенно обновляется.
    Последний раз редактировалось SAM style; 19.02.2014 в 13:50.
    Все любят гипножабу

  7. #846

    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    971
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    PS: а занесенных до этого байт не видно, потому как они не успевают перерисоваться лучом. Экран не мнгновенно обновляется.
    Вы экспериментируете на каком-то другом коде, во всяком случае я его в лицо не узнаю.

    Понимаете в чем дело, у меня в коде память трется без привязки к лучу (потому-что нельзя гарантировать что INT исправен), поэтому я бы в любом случае рано или поздно то что творится в адресе #4000 увидел на экране, даже если оно в каком-то фрейме в отрисовку не попало. Но косяк с первыми двумя байтами стабильный, достаточно подключить ROM вместо 48 бейсика и ресетнуться. Первые два байта стабильно пустые. При этом в памяти они хранятся, они просто не отрисовываются.

    Я не исключаю даже ошибки в своем коде, но я ее блин не вижу, все должно работать правильно. Сделайте одолжение, посмотрите свежим взглядом.

    Просто проверьте пожалуйста у себя как этот ROM работает, с глюком или без. Я бы на реале проверил, но у меня запаса чистых микросхем нет, а стерка пока с китая не доехала.
    Последний раз редактировалось ram_scan; 19.02.2014 в 16:40.

  8. #847

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ram_scan Посмотреть сообщение
    Первые два байта стабильно пустые. При этом в памяти они хранятся, они просто не отрисовываются.
    Вот это тот самый код? Отлично. #0117 - это заполнение памяти 4000..FFFF пушами HL. #0123 - проверка этого заполнения. Перед проверкой есть LD IX,#4000. В самой программе проверки - LD SP,IX:PUSH HL:POP IX:POP DE, а потом PUSH IX:POP HL.
    После заполнения на #4000 лежит то, что туда положено, но пока луч не дойдёт до этого места, оно не будет нарисовано. Только пока луч не дошёл, PUSH IX при первом прохождении проверки портит эти байты из-за ошибки в коде. Луч доходит до начала экрана и рисует уже испорченные байты.
    Я уже не знаю, как это человеческим языком рассказать...
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	shot0006.png 
Просмотров:	273 
Размер:	13.7 Кб 
ID:	45871   Нажмите на изображение для увеличения. 

Название:	shot0007.png 
Просмотров:	253 
Размер:	16.1 Кб 
ID:	45872  
    Все любят гипножабу

  9. #848

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    М... обновить Xpeccy? В последней сборке такого не наблюдается, только чуть-чуть съезжает там, где нет музыки (pica.sna на картинке слева).

    Такой сильный сдвиг, как в сообщении выше, наводит на мысль, что там INT поставлен не в начало строки.

    zebest, хватит удалять свои посты!
    Последний раз редактировалось SAM style; 06.03.2014 в 01:40.
    Все любят гипножабу

  10. #849

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    ммм.. я же доверчивый, что на первой странице было - то и взял..
    Где послендяя версия под Win32?
    Давно я его не собирал... Хотя, кроме мелких изменений там всё по-старому - сейчас нет времени плотно заниматься проектом. Вот последняя под Windows:
    [ win32 ]
    Все любят гипножабу

  11. #850

    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    971
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Таки реально пичальбеда. Хоть включай в эмуляторе турбу хоть нет.

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

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

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

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

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

Ваши права

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