Хочу уточнить у спецов: насколько помню, они были полностью совместимы вниз?
И их (Z80) много различных модификаций.
Сейчас реальнее достать z84c0020pec.
У него как дела?
Вид для печати
Хочу уточнить у спецов: насколько помню, они были полностью совместимы вниз?
И их (Z80) много различных модификаций.
Сейчас реальнее достать z84c0020pec.
У него как дела?
Насколько помню, у i8080 нет префиксов (CB, ED, DD, FD), один набор регистров и один тип прерываний. Где-то читал, что Z80 нормально обрабатывает код, написанный для i8080
http://imed.narod.ru/mp_8080/i8080.htm
Если для i8080 писать софт строго по даташиту, не лазая в недокументированные дебри, и программа не завязана на времянки и особенности конкретной периферии, то код для i8080 без изменений выполняется на z80 (с поправкой на скорость).
На многих советских тогда еще компах в более позднее время самодельщики меняли i8080 на z80 в порядке апгрейда не особо теряя в совместимости (и на РК86 ставили, и на ориона и на вектора точно).
Можно еще больше "сузить разность". У 8080 всего 256 адресов для портов, поскольку байт адреса дублируется на А0...А7 и А8...А15. У Z80 этих адресов - 65536.
И есть разница в работе команды DAA, у 8080 там есть "не глюк, а фишка". У Z80 оно было исправлено, но некоторые бейсики для 8080 потом не могли нормально работать на Z80, пока не пропатчишь эту команду.
Если писать и рожать железо по даташиту для i8080 - то для Z80 разницы никакой, и i8080 меняется на Z80 практически не глядя с поправкой на распиновку (это кстати была одна из целей его создания как такового, сохранить существующий софт плюс дать новые фичи). Как в отношении портов так и в отношении DAA. По даташиту на i8080 DAA работала правильно только после сложения (флаг полупереноса появился только на Z80 который позволил ей работать и после вычитания) и никак иначе. Если кто-то на i8080 закладывался на какое-то недокументированное ее поведение после вычитания, то кто ему доктор ?
Кроме того у i8080 не было ноги /iorq и формирование этого сигнала обеспечивала внешняя схема. По этой причине на большинстве машин построенных на базе i8080 ввод-вывод был memory-mapped (для этого в комплекте даже была специальная микросхема которая анализировала код операции на шине, уж не помню как именно энтот "арбитр" назывался). По простой причине, один жешифратор проще чем два.