Так это же эмулятор спектрума, а не его описания на xHDL, я когда-то писал эмулятор 8080, он на 386dx40 работал быстрей, чем 8080, но ассемблер 8080 на х86 ложится как родной.
И, что, от того, что добавляется лишний уровень абстракции, замедление в тысячу раз? Оно понятно, в общем, но как-то многовато... Что же до ассемблера 8080 и 8086, то существовал транслятор из текстов 8080 в текст 8086, распространявшийся непосредственно Интелом. Там лишь нескольким командам не было прямой замены, приходилось "корячиться". Но Z80 - дело другое, и эмулированный процессор находился в памяти, а не в регистрах х86. И надо было ещё справляться с графикой, которая у PC и ZX оччень горбатая, и у каждого - по-своему.
И, что, от того, что добавляется лишний уровень абстракции
Даже два уровня, хотя бог его знает как эмулятор БК сделан, но вообще, у таких процессоров есть железо и микропрограммы.
Что же до ассемблера 8080 и 8086, то существовал транслятор из текстов 8080 в текст 8086, распространявшийся непосредственно Интелом.
Мне нужно было бинарный код эмулировать, а не текст на ассемблере.
Но Z80 - дело другое, и эмулированный процессор находился в памяти, а не в регистрах х86.
А что мешает регистры z80 в регистры 386 процессора раскидать? Места достаточно. Впрочем, я тоже регистры хранил в памяти, потому что тот эмулятор для отладки писался, а не ради скорости.
И надо было ещё справляться с графикой, которая у PC и ZX оччень горбатая, и у каждого - по-своему.
Не на столько они горбатые, в любом случае, это всего только битики (а может и целые байтики, я уже не помню таких подробностей) перемещать, и не слишком быстро. В любом случае, это тоже совсем другой уровень.
no subject
Date: 2013-04-04 06:38 (UTC)no subject
Date: 2013-04-04 06:43 (UTC)Что же до ассемблера 8080 и 8086, то существовал транслятор из текстов 8080 в текст 8086, распространявшийся непосредственно Интелом. Там лишь нескольким командам не было прямой замены, приходилось "корячиться". Но Z80 - дело другое, и эмулированный процессор находился в памяти, а не в регистрах х86. И надо было ещё справляться с графикой, которая у PC и ZX оччень горбатая, и у каждого - по-своему.
no subject
Date: 2013-04-04 07:10 (UTC)Даже два уровня, хотя бог его знает как эмулятор БК сделан, но вообще, у таких процессоров есть железо и микропрограммы.
Что же до ассемблера 8080 и 8086, то существовал транслятор из текстов 8080 в текст 8086, распространявшийся непосредственно Интелом.
Мне нужно было бинарный код эмулировать, а не текст на ассемблере.
Но Z80 - дело другое, и эмулированный процессор находился в памяти, а не в регистрах х86.
А что мешает регистры z80 в регистры 386 процессора раскидать? Места достаточно. Впрочем, я тоже регистры хранил в памяти, потому что тот эмулятор для отладки писался, а не ради скорости.
И надо было ещё справляться с графикой, которая у PC и ZX оччень горбатая, и у каждого - по-своему.
Не на столько они горбатые, в любом случае, это всего только битики (а может и целые байтики, я уже не помню таких подробностей) перемещать, и не слишком быстро. В любом случае, это тоже совсем другой уровень.
no subject
Date: 2013-04-05 07:12 (UTC)