В разделе Эмуляторов он есть , тред живой :
http://zx.pk.ru/showthread.php?t=13310
А уверенность может прийти только когда проверишь .
Или все пользуются ZX-MAK ? Про оригинал не говорю :)
Вид для печати
В разделе Эмуляторов он есть , тред живой :
http://zx.pk.ru/showthread.php?t=13310
А уверенность может прийти только когда проверишь .
Или все пользуются ZX-MAK ? Про оригинал не говорю :)
Путешественник во времени детектет. Ждем тему "почему эмуляция AY через midi и adlib так хреново звучит."
Поскольку тема скатывается к флейму... спрошу что-нибудь дельное.
Spinoza, у тебя дискеты или кассеты сохранились?
Кассет точно нет :(
Штук 30-40 дискет лежит, живые или нет не знаю . Возможно даже есть что-то интересное, но не уверен что кому то будут интересны какие то дисковые загрущики и тд. и тп. Вообще конечно нужно в trd все перегнать , вроде есть народ рядом нужно только с силами собираться - раз ностальгия накатила :)
http://zxpress.ru/article.php?id=728
Код:3. "Самоуничтожение команды LDIR"
Теория : Грубая эмуляция команд LDIR,LDDR
Эмулятор : Z80, UKV (наверное... точно не помню)
Комментарии: В Z80 неверно обрабатываются команды блочных
операций. Там считается, что, например, LDIR выполняется "за
один проход", то есть процессор извлекает код операции (два
байта), затем выполняет команду, а потом переходит к следующей.
В реальности же (даже в книгах Родионова/Ларченко про это
написано!) выполнение LDIR/LDDR работает циклически - перед
каждой пересылкой процессор читает код операции. Если настроить
параметры в HL, DE и BC так, чтобы LDIR заполнял область памяти,
в которой он сам находится, например, нулями, то на реальном Z80
выполнение LDIR произойдёт досрочно - уничтожится команда,
вернее её "половинка" префикс #ED, и дальше "заработает" другая
половинка (#B0 = OR B). Естественно, после этого никакого LDIRа
не будет.
*Z80 - здесь - эмулятор "Z80" by G.LunterКод:MEMTST EQU #4000
LD HL,CNTLDR
LD DE,MEMTST
LD BC,3+ELDR-CNTLDR
PUSH DE
LDIR;Переносим тестирующий фрагмент в "ненужное"
;место ( для многократного тестирования )
RET ;Переходим на тест
CNTLDR LD HL,MEMTST
LD DE,MEMTST+1
LD BC,ELDR-CNTLDR-1; Длина взята с таким расчётом,
;чтобы в глюкавом эмуляторе "убилась" команда перехода
;JP NO_LDR - выход, если реальный Z80
LD (HL),0
LDIR
JP NO_LDR; в итоге на эмуляторе после LDIR
;выполятся 3 NOP и мы узнаем, что у нас эмуль.
ELDR JP EMUL
NO_LDR ....