Как работает процессор z80

Обновлено: 06.07.2024

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

При использовании прерываний следует различать и понимать разницу
между программными прерываниями и аппаратными.
В качестве программных прерываний используют так называемые команды
рестартов (с помощью этих команд выполняются переходы на часто используемые подпрограммы)

RST 0h, RST 8h, RST 10h, RST 18h, RST 20h, RST 28h, RST 30h
и RST 38h

Добавлено (21.08.2015, 02:56)
---------------------------------------------
при аппаратном прерывании также происходит переход, но причиной перехода является появление сигнала INT --->(RST XX h)--->( )

Для управления режимами прерываний в процессоре имеются также
4 Флага которые отвечают за работу прерываний. в частности
Флаги IMFa и IMFb определяют режим работы маскируемых прерываний. Комбинации их состояний образуют разные режимы работы:

– 00 – режим совместимости с процессором 8080 (режим 0);
– 01 – не используется в Z80 ;
– 10 – режим одиночного вектора (режим 1);
– 11 – режим векторов, предоставляемых устройствами (режим 2).

Установка режимов осуществляется с помощью команд:

Команда IM0.
Код - ED 46. включение прерываний в режиме 0.

Команда IM1.
Код - ED 56. включение режима прерываний первого типа

Команда IM2.
Код - ED 5E. включение режима прерываний второго рода

IM - аббревиатура от английского Interrupt mode (тип прерывания.)

Команда EI. (Enable interrupts)
Код FB. Назначение - разрешение прерывания. После прохождения этой команды обработка прерываний разрешена.

Команда DI. (Disable interrupts)
Код - F3. Назначение - запрет прерываний. Она запрещает прерывания до тех пор, пока не пройдет команда EI.

Команда RET I.
Код - ED 4D. Эта команда аналогична команде RET (возврат после вызова подпрограммы), но выполняет двойную функцию:
• возврат из подпрограммы, обслуживающей маскируемое прерывание;
• управление приоритетом прерываний (в контроллерах прерываний)
Команда не снимает запрет на прерывания (не является аналогом EI)

Из документации -Z80.Instruction set (Zilog)
Description: This instruction is used at the end of a maskable interrupt service routine to:

• Restore the contents of the Program Counter (PC) (analogous to the
RET instruction)
The RETI instruction also facilitates the nesting of interrupts, allowing higher priority devices to temporarily suspend service of lower priority
service routines. However, this instruction does not enable interrupts
that were disabled when the interrupt routine was entered

Перевод –
Описание: Эта команда используется в конце процедуры обработки маскируемых прерываний.

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

Добавлено (21.08.2015, 02:56)
---------------------------------------------
При программировании следует учитывать неточности в самом процессоре.

В исполнении кристалла (Z80)по технологии NMOS в некоторых случаях триггер IFF2 неправильно отражает текущий статус прерываний.

При выполнении команд (LD A,R и LD A,I) происходит перезапись состояния триггера разрешения прерываний во флаг четности (P/V). Что позволяет определить статус прерываний . Если прерывание производится во время выполнения текущей команды (подразумевается, что прерывания разрешены), то флаг P/V будет очищен, что приведет к неправильному выводу о состоянии прерываний.

Использование прерываний в ZX Spectrum

По своей архитектуре микропроцессор Z-80 имеет возможность обработки двух видов прерываний - маскируемых и немаскируемых. Маскируемые прерывания делятся на три типа - прерывания типа 0, 1 и 2. Тип маскируемого прерывания устанавливается с помощью команд Ассемблера.

Z-80 имеет два входа для сигналов запроса прерываний - входы «INT» и «NMI».
На входе линии запроса прерывания «INT» (16 вывод микросхемы) внешнее устройство формирует сигнал низкого уровня, обращая «внимание» микропроцессора на этот сигнал. В ZX Spectrum сигнал «INT» формируется 50 раз в секунду. Если прерывания разрешены то запрос воспринимается
микропроцессор прерывает обычную обработку и переходит к выполнению необходимой процедуры прерывания. Реакция на запрос прерывания определяется флагом прерывания, поэтому прерывание может быть замаскировано. В программу могут вводиться команды, которые устанавливают или сбрасывают флажок прерывания и, следовательно, разрешают или запрещают его обработку. Что позволяет гибко реагировать на прерывания.

Добавлено (21.08.2015, 02:57)
---------------------------------------------
Описание режимов работы прерываний

Режим «IM 0». “Прерывания нулевого типа” - соответствует механизму обработки прерываний микропроцессора i8080. В этом режиме используются инструкции (RST 0…..38 Hex) в качестве вектора прерывания, факт подтверждения прерывания определяется по сигналам M1/ и IORQ/ .

Всего возможных векторов прерываний обычно восемь, в стандартном варианте, при использовании адресных линий А0-А2 эти вектора попадают на адреса рестартов процессора, т.e. на «RST0 - RST38H», которые уже задействованы в ПЗУ «СПЕКТРУМА», причем одна процедура «RST38H» служит для обработки прерываний. При использовании дополнительной логики (контроллера прерываний) Возможно использование других команд
(кроме RST)в качестве векторов прерываний, но на практике такой режим
Работы на базе (ZX Spectrum) никто не проверял.

Добавлено (21.08.2015, 02:58)
---------------------------------------------
Режим «IM 1». Из книги “Программирование в машинных кодах”

После включения питания в ZX Spectrum устанавливается режим прерываний «IM 1» - по приходу сигнала INT производится переход на 0038Н, по этому адресу расположена программа сканирования клавиатуры и встроенного системного таймера, но если подключено ПЗУ контроллера дисководов или интерфейса микродрайва, то все, что делается при обработке прерывания- это немедленный возврат без каких-либо других действий, т.е. по адресу 0038Н в этих ПЗУ записан код возврата из прерывания «RETI» (Return from interrupt) - ED4D Hex.
Далее речь пойдет о видео-системе фирменного «СПЕКТРУМА», в частности о контроллере дисплея на микросхеме «ULA», При инициализации в регистре прерываний I помещается число 63 (03FH) и устанавливается первый тип прерываний. В принципе, задавать регистр «I» необязательно, т.к. режим «IM 1» его не использует, потому что любые прерывания идут через «RST38H». Но регистр I в фирменном «СПЕКТРУМЕ» дополнительно участвует в формировании телевизионного сигнала. «ULA» задействует биты 6 и 7 регистра «I».
При каждом цикле машинных команд Z-80 обращается к ячейке памяти, адресуемой регистром I, выводя его, в старшие восемь битов адресной шины, а линия запроса памяти «MREQ» активизируется. «ULA» генерирует прерывания каждый раз, когда необходимо изменить содержимое экрана. Это заставляет Z-80 запустить программу обработки прерываний, при условии, что прерывания подключены.
Когда программа обработки прерываний выполнена, процессор возвращается в точку, в которой он был при прерывании. Если это команды считывания/записи в память между 16384 (4000H) и 32767 (7FFFH), что «ULA» проверяет, просматривая две старшие линии адресной шины и линию «MREQ», то «ULA» приостанавливает микропроцессор до окончания изменения экрана.
Если старший бит регистра I сброшен, а бит 6 активизирован, то «ULA» может запутаться из-за регенерации динамической памяти. Активизируется линия «MREQ», и регистр I помещается в старшие восемь битов адресной шины. Далее «ULA» думает, что процессор производит запись или считывание в эту область ОЗУ, и при попытке это предотвратить, «ULA» пропускает свое собственное обращение для изменения дисплея, что приводит к развалу картинки. Поэтому в регистре I не должно содержаться любое число от 64 до 127 (040H до 07FH) включительно, т.е. c двумя старшими битами, установленными вышеописанным образом.
Скорее всего, это справедливо и для других версий компьютеров с разделением поля памяти на 16К и 32К (см. «ZX-РЕВЮ» N1, 1991г.). По крайней мере, при записи в регистр I чисел из запрещенного интервала на компьютерах версий «НОВОСИБИРСК», «БАЛТИКА», «ЛЕНИНГРАД» развала картинки не наблюдалось.

Добавлено (21.08.2015, 02:59)
---------------------------------------------
«IM 2».
Путем установки режима «IM 2» возможно менять вектор прерываний как программно, так и аппаратно.
При получении прерывания по линии «INT» процессор запоминает адрес следующей команды программы на машинном стеке, затем просматривает ячейку, указанную шиной данных И теперь если В регистре I содержится число 10 (0AH), а на шине данных выставлено число 255 (0FFH).
То получаем :
10*256=2560
2560+255=2815.
Этот адрес находится в ПЗУ «СПЕКТРУМА», поэтому точка, к которой будет сделан переход, возьмется из содержимого адреса 2815+(256, умноженное на число по адресу 2816). В ячейке 2815 содержится 34, а в 2816 - 128. В этом можно убедиться с помощью оператора PEEK. Таким образом, адрес перехода равен :
34+(256*128)=32802.

Вообще-то, считается дурным тоном иметь бит ноль на шине данных активированным в качестве указателя в режиме «IM 2», т.к. указатель всегда будет стартовать с адреса, пронумерованного четным числом

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

По этому адресу берется точка перехода на программу обработки прерываний, где опять-таки данный адрес содержит младший байт, а следующий за ним - старший байт адреса программы.
Все это можно представить, как косвенную адресацию по содержимому регистровой пары. Это своего рода команда CALL (I+ШД). Но, т.к. такой команды не существует, и она не может разместить собственный адрес возврата, то адрес после последней выполненной команды кладется процессором на машинный стек, и к нему будет осуществлен возврат после выполнения программы обработки прерываний.
Как Вы видите, программное изменение вектора прерываний задается с помощью перезаписи регистра I, а аппаратное - благодаря шине данных.
Обычно в момент прерывания на шине данных содержится - 255 ( 0FFH ), но если Вы подключите внешнее устройство, изменяющее в этот момент состояние шины данных, то Вы можете, не переписывая регистр I, менять в небольших пределах адрес программы обработки «IM 2». Порой такое необходимо при подключении нескольких периферийных устройств, чтобы процессор знал, какое из них ему обслуживать на данный момент. Вдобавок ко всему, Вы можете еще перехватывать управление линией «INT» для аппаратного включения или выключения прерываний в необходимый момент времени. Именно так и делает контроллер дисковода.
С «IM 2» есть одна проблема при использовании прерываний при подключенном контроллере дисковода или микродрайва. Дело в том, что при переключении на теневое ПЗУ контроллера эти ПЗУ меняют указатель регистра I. Поэтому, по всей видимости, до включения «IM 2» необходима проверка на то, какое ПЗУ подключено на данный момент. Хорошо еще, что в распространенной версии контроллера «TR-DOS» предусмотрено, что Вы можете изменить указатель в регистре I.
Дополнительная проблема возникает при использовании указателей из ПЗУ при создании коммерческого ПО, т.к. любые изменения и дополнения в ПЗУ могут сделать вашу программу неработающей.
При размещении в регистре I чисел от 0 до 63 (03FH), все адреса точек переходов по прерыванию «IM 2» лежат в области ПЗУ.

Есть несколько правил написания программ обработки прерываний «IM 2».
1. Перед выполнением программы необходимо запретить прерывания с помощью команды DI. Причина состоит в том, чтобы гарантировать, что программа не зациклит петлю, если процедура обработки прерываний выполняется дольше, чем пауза между двумя прерываниями.
2. После выполнения программы обработки «IM 2» включите прерывания командой EI. Для возврата в основную программу используйте команду RETI.
3. Когда бы ни использовались программы прерываний, очень важно, чтобы все регистры микропроцессора, используемые программой обработки прерывания, сохранялись на входе и восстанавливались перед возвращением.
4. Не должно быть попыток пересылки данных через регистры в программу обработки прерываний или из нее.
5. Помните, что если Вы не используете «RST 38H» в прерывающей программе, то Вам необходимо сбрасывать режим «IM 2» и включать «IM 1» до возвращения в БЕЙСИК.
И еще совет. Если Вам необходимо, чтобы таймер системы обновлялся, а клавиатура сканировалась, если, например, Вы работаете в БЕЙСИКЕ со включенным прерыванием второго типа, то в конце вашей программы обработки «IM 2» восстановите содержимое регистров (см. П.3 правил) и сделайте переход JP 0038H. Программа «RST38H» сама подключит прерывания и сделает возврат в основную программу. Это позволит Вам сократить время обработки прерывания.
Вам в своей работе надо также учитывать то обстоятельство, что есть операторы БЕЙСИКА, которые на время своего выполнения запрещают прерывания. Это операторы : LOAD, SAVE, BEEP.

Путём присвоения приоритетов запросам можно добиться, чтобы ЦП реагировал, прежде всего, на наиболее важное событие, игнорируя запросы либо прерывая ISR менее важных.

В отличие от циклического опроса, при котором программно проверяется выполнение определенного условия, и для которого требуется время выполнения и место в памяти, прерывание обеспечивает практически мгновенную реакцию, т.к. не зависит от периода опроса,
отсутствие программы опроса, как таковой, выражается в экономии памяти. Различные варианты применения прерываний являются эффективным средством повышения производительности микропроцессорной системы.
Необходимость в запрещении (маскировании) прерываний возникает, например, когда условия работы в реальном масштабе времени делают нежелательным прерывание данного участка программы.

Загрузка регистра I возможна только единственным образом:
LD I,A.
Чтение регистра I способно дать ценную информацию: при выполнении команды LD A,I значение триггера разрешения прерывания копируется
в флаг P/V. Таким путем программа пользователя может узнать, разрешены ли прерывания в данный момент:
P/V=1 - разрешены, 0 - запрещены.
В режимах прерываний 0 и 1 регистр I не задействован и может
быть использован программой для хранения данных. При чтении
LD A,I помимо флага P/V срабатывают флаги нуля Z и знака S.
Кроме загрузки и чтения через аккумулятор, других команд для
регистра I нет.
Spectrum жив в нашей душе навсегда


Содержание

Процессор

Компания Zilog была основана в 1974 году одним из бывших сотрудников Intel - Federico Faggin, ранее разработавшим архитектуру процессора Intel 8080. Zilog Z80 создавался на основе этого опыта и был бинарно совместимым с 8080. Таким образом, бо́льшая часть кода, написанного для 8080 (в частности, операционная система CP/M) могла выполняться на новом процессоре.

По сравнению с 8080, Z80 имел множество усовершенствований:

  • Расширенный набор команд, включая побитовые операции, поблочное копирование, поблочный ввод/вывод, инструкции поиска
  • Два отдельных, быстро переключаемых, набора РОН
  • Дополнительные индексные регистры IX и IY и инструкции для их использования
  • Новые режимы прерываний и служебный регистр I
  • Встроенная схема регенерации динамической памяти и служебный регистр R
  • Единственный 5-вольтовый источник питания (для 8080 требовалось три источника)
  • Меньшее количество необходимых дополнительных микросхем
  • Меньшая цена

Изначально использовалась NMOS-технология. Ядро процессора содержало около 8.5 тысяч транзисторов и размещалось на кристалле площадью 18 квадратных миллиметров. Первая версия работала на тактовой частоте 2.5 МГц, впоследствии были выпущены модификации для работы на частотах до 8 МГц. Также были разработаны CMOS-версии, более поздние из них могли работать на частотах до 20 МГц. Последующие процессоры в семействе, такие как Z180 и eZ80, являющиеся прямыми наследниками оригинального Z80, могли работать на частотах 33 и 50 МГц соответственно.

Сетка поддерживаемых частот для основной линейки процессоров Z80:

  • Z80 - 2.5 МГц
  • Z80A - 4.0 МГц
  • Z80B - 6.0 МГц
  • Z80H - 8.0 МГц

Дальнейшее развитие

Процессор Z80 получил развитие в виде ряда последующих процессоров - Z180, Z800, Z280, Z380 и eZ80.

Z800 планировался к выпуску в июле 1985 года. Он являлся 16-разрядным процессором, также обратно совместимым с Z80, а также имел встроенный кэш и устройство управления памятью обьёмом до 16 МБ. Однако, в процессе разработки компания отдала предпочтение развитию другого процессора, Z80000 (32-разрядного), и массовое производство Z800 не было начато.

Z280 был выпущен в июле 1987 года. Он представл собой незначительно улучшенную CMOS версию Z800. Этот процессор не получил коммерческого успеха.

Z380 был выпущен в 1994 году. Он являлся 32-разрядным процессором и также сохранял обратную совместимость с Z80. Процессор получил ограниченное распространение. На рубеже 90-х и 00-х годов существовал проект "суперспектрума" ZX-Monstrum на основе данного процессора, который так и не был воплощен в реальном железе.

Отдельными энтузиастами предпринимался ряд попыток использования процессоров Z180, Z380 и eZ80 в клонах ZX Spectrum, однако они не имели успеха. Одной из проблем являлась неполная обратная совместимость этих процессоров с оригинальным Z80 - в частности отсутствие или иное действие недокументированных команд.

Состав набора

Помимо микропроцессора, в набор Z80 входит некоторое количество микросхем поддержки, реализующих различные функции. Количество микросхем поддержки по сравнению с набором 8080 существенно уменьшено. Микросхемы набора имеют обозначение Z84xx, последние цифры определяют назначение микросхемы.

  • Z8400 - Z80 CPU, микропроцессор
  • Z8410 - Z80 DMA, контроллер прямого доступа к памяти
  • Z8420 - Z80 PIO, контроллер параллельного интерфейса
  • Z8430 - Z80 CTC, счётчик-таймер
  • Z8440, Z8449 - Z80 SIO, контроллер последовательного интерфейса
  • Z8470 - Z80 DART, асинхронный последовательный приёмопередатчик

Клоны

Компания Zilog лицензировала производство Z80 сторонним производителям по схеме без выплаты процентов с продаж. Многие крупные компании, такие как NEC, Toshiba, Sharp и другие, занялись выпуском своих вариантов процессоров. Клоны Z80 выпускались во многих странах. Некоторые из них производились без лицензии, "пиратским" способом - в основном в Восточной Европе и России. И лицензионные, и нелицензионные клоны могли выпускаться как под оригинальным, так и под собственным обозначением. Всего компания Zilog произвела менее половины всех выпущенных процессоров.

В оригинальных компьютерах компании Sinclair Research использовались процессоры производства Zilog и NEC. В отечественных клонах использовались как процессоры Zilog, так и почти все существующие клоны, выпускавшиеся в корпусах PDIP40 и CDIP40.

Некоторые клоны, вероятно только нелицензионные, имеют незначительные отличия от оригинального Z80. В них не устанавливается флаг CY при выполнении команды OUTI (по результату сложения выданного в порт числа и значения регистра L после операции), а скрытый системный регистр шины, содержимое которого доступно через недокументированные флаги F3 и F5, имеет отличающуюся логику работы. Эти отличия присутствуют в отечественных клонах (Т34ВМ1, КР1858ВМ1), а также клонах производства ГДР (U880).

Япония

Компания выпускала версию в DIP40.

Kawasaki

Компания выпускала как минимум вариант KL5C8400C в корпусе QFP40. Неизвестно о существовании аналогов Z80 этой компании в корпусах DIP40.

Серия аналогов Z80 выпускалась по лицензии на заводах компании в Японии и Ирландии. Выпускались NMOS и CMOS версии, имевшие разные системы обозначений. Помимо стандартных корпусов PDIP40, CMOS версии также выпускались в корпусах QFP40, QFP44 и LCC44. Процессоры компании применялись в оригинальных компьютерах ZX80, ZX81 и ZX Spectrum. В документации в обозначениях всех микросхем компании присутствует префикс μP, но на корпусах микросхем он обычно не указывается.

Обозначение Фотография Технология Частота Корпус Даты выпуска
D780C NMOS 2.5 PDIP40 8240
D780C-1 NMOS 4 PDIP40 8240
D780C-2 NMOS 6 PDIP40 8424
D70008C CMOS 4 PDIP40 8432-8442
D70008AC-4 CMOS 4 PDIP40 8702
D70008AC-6 CMOS 6 PDIP40 8925
D70008AC-8 CMOS 4 PDIP40 8649

Sharp

Обозначение Фотография Технология Частота Корпус Даты выпуска
LH0080 NMOS 2.5 PDIP40 ?
LH0080A NMOS 4 PDIP40 ?
LH0080B NMOS 6 PDIP40 ?
LH0080E NMOS ? PDIP40 9034

Toshiba

Серия лицензионных аналогов Z80 имела общее название TLCS-Z80MPU. Помимо версий в обычных корпусах PDIP40 также выпускались версии в корпусах TSOP40 (с индексом AF вместо AP в обозначении) и QFP44 (с индексом AF). Все выпускавшиеся процессоры были выполнены по CMOS технологии.

Обозначение Фотография Технология Частота Корпус Даты выпуска
TMPZ84C00P CMOS 4 PDIP40 8531
TMPZ84C00AP CMOS 2.5 PDIP40 8611-8628
TMPZ84C00AP-6 CMOS 6 PDIP40 8814
TMPZ84C00AP-8 CMOS 8 PDIP40 8919
TMPZ84C00AP-10 CMOS 10 PDIP40 8805

Корея

GoldStar

Обозначение Фотография Технология Частота Корпус Даты выпуска
Z8400A NMOS 4 PDIP40 9228
Z8400B NMOS 6 PDIP40 8728

Mostek

Компания была основана в 1969 году бывшими работниками Texas Instruments. В 1979 году была приобретена UTC. До постройки компанией Zilog собственного завода Mostek занималась производством микросхем серии Z80 на своих заводах на Филлипинах и в Малазии в обмен на последующее получение прав на производство собственных клонов. В отличии от многих производителей Z80, компания выпускала большое количество вариантов микросхем для специальных применений. В 1985 году была продана французской компании Thomson SA, впоследствии ставшей частью европейской компании STMicroelectronics, также производившей клоны Z80.

Обозначение Фотография Технология Частота Корпус Даты выпуска
MK3880N NMOS 2.5 PDIP40 7952
MK3880N-IRL NMOS 2.5 PDIP40 8442
MK3880N-4 NMOS 4 PDIP40 8429
MK3880N-6 NMOS 6 PDIP40 8220
MK3880P NMOS 2.5 CDIP40 7831
MK3880P-4 NMOS 4 СDIP40 7837
MK3880P-10 NMOS 2.5 СDIP40 8020
MKB3880P-84 NMOS 4 СDIP40 8223

ROHM Electronics

Обозначение Фотография Технология Частота Корпус Даты выпуска
BU18400A-PS
NMOS 4 PDIP40 ?
Обозначение Фотография Технология Частота Корпус Даты выпуска
U880D NMOS 1 PDIP40 ?

Обозначение Фотография Технология Частота Корпус Даты выпуска
80-CPU ? 2.5 PDIP40 ?
80A-CPU ? 4 PDIP40 ?
80A-CPU ? 4 CDIP40 9107
UA880D ? 4 PDIP40 ?
UB880D NMOS 2.5 PDIP40 ?
VB880D NMOS 2.5 PDIP40 ?

Румыния

Microelectronica

Клоны Z80, выпускаемые компанией, применялись во многих румынских клонов ZX Spectrum. Вероятно, роль компании и история румынских клонов Z80 аналогична роли завода "Ангстрем" и истории отечественным клонов Z80.

Обозначение Фотография Технология Частота Корпус Даты выпуска
MMN 80CPU NMOS 4 PDIP40 ?

Италия

Società Generale Semiconduttori - Aquila Tubi E Semiconduttori (SGS-ATES)

Итальянский производитель микроэлектроники, впоследствии ставший частью европейской компании STMicroelectronics, также выпускавшей клоны Z80. Компания выпускала большое количество версий Z80, включая версии в корпусах LCC44.

Обозначение Фотография Технология Частота Корпус Даты выпуска
Z80ACPUD1 NMOS 4 CDIP40 ?
Z8400B1 NMOS 2.5 PDIP40 ?
Z8400AB1 NMOS 4 PDIP40 ?
Z8400BB-1 NMOS 6 PDIP40 ?
Z8400BB1 NMOS 6 PDIP40 ?
Z84C00AB6Y CMOS 4 PDIP40 ?
Z84C00BB6Y NMOS 6 PDIP40 ?

Швейцария

STMicroelectronics

Компания создана в июле 1987 года в результате слияния итальянской компании Società Generale Semiconduttori (SGS-ATES) и французской Thomson Semiconducteurs (Thomson SA). Обе компании на момент слияния занимались производством клонов Z80, Thomson также владела компанией Mostek, одним из основных производителей клонов Z80. До 1998 года образованная компания носила название SGS-THOMSON. Главная штаб-квартира компании находится в Швейцарии, компания также имеет штаб-квартиры и производственные мощности во многих странах мира. В настоящее время компания является крупнейшим производителем полупроводниковых компонентов в Европе и пятым по величине в мире.

Обозначение Фотография Технология Частота Корпус Даты выпуска
Z84C00AB6 CMOS 4 PDIP40 ?
Z8400BB1 NMOS 6 PDIP40 ?
Z8400BB1X2 NMOS 6 PDIP40 ?

Россия

Ангстрем (Зеленоград)

Завод «Ангстрем» одним из первых в СССР наладил серийный выпуск клонов Z80 под названием Т34ВМ1. Подобно ГДР-овскому U880 процессор Т34ВМ1 имеет незначительные программные отличия. В дальнейшем этот процессор выпускался под имененем 1858ВМ1, КР1858ВМ1, КМ1858ВМ1.

Обозначение Фотография Технология Частота Корпус Даты выпуска
Т34ВМ1 NMOS 4 CDIP40 9112-9306
Т34ВМ1 NMOS 4 PDIP40 9112-9306
КР1858ВМ1 NMOS 4 PDIP40 9301-9411

Воронежский Завод Полупроводниковых Приборов

Обозначение Фотография Технология Частота Корпуса Даты выпуска
КР1858ВМ1 NMOS 4 PDIP40 9107-9312
КМ1858ВМ1 NMOS 4 CDIP40 ?

НПО Физика

Обозначение Фотография Технология Частота Корпуса Даты выпуска
КМ1582ВМ2-100 ? ? PDIP40 ?
Т34ВМ1 NMOS 4 PDIP40 9312
1858ВМ1 ? ? PDIP40 9405

Процессор в корпусе "Физика" под обозначением 80H-CPU PLATAN: [1]

Неизвестные производители

Украина

Квазар (Киев)

С начала 1980-х (примерно 1980) до начала 1990-х годов завод "Квазар" занимался выпуском микросхем 580 и 1810 серий - клонов i8080 и i8086. В 1993 году также был начат выпуск процессора КР580ВМ1, являвшегося улучшенной версией 8080 (не имел зарубежных аналогов). Производство этого процессора было быстро прекращено, вероятно из за малой востребованности. Вероятно, в связи с этим в середине 1990-х годов (1994) предпринимались попытки производства более востребованных клонов Z80. КР1858ВМ1 производства "Квазар" встречались в АОН (версия Русь), выпускавшихся небольшими кооперативами и частными предпринимателями того времени.

Обозначение Фотография Технология Частота Корпуса Даты выпуска
КР1858ВМ1 NMOS 4 PDIP40 9404

Корпус "Квазар" с обозначением "TSL"[2]:

Обозначение Фотография Технология Частота Корпуса Даты выпуска
80H-CPU ? 11..14 PDIP40 0594-1194

КНИИМП (Киев)

Обозначение Фотография Технология Частота Корпуса Даты выпуска
Z80 NMOS ? PDIP40 9304

Thesys (КНИИМП?[3])

Обозначение Фотография Технология Частота Корпуса Даты выпуска
Z80H ? ? PDIP40 ?

Беларусь

Транзистор (Минск)

Обозначение Фотография Технология Частота Корпуса Даты выпуска
КР1858ВМ3 ? 4 PDIP40 9604

Использование

Помимо других применений, Z80 широко использовался в различных бытовых компьютерах и игровых системах. Среди них:


Содержание

Описание

Прототипом Z80 служил процессор 8080, а разрабатывали его люди, в свое время приложившие руки к 8080 и 8008. Z80 во многом исправлял недостатки своего прототипа:

Одно напряжение питания +5В против трех (-5, +5 и +12) у 8080;

Встроенный тактовый генератор - отсутствие необходимости в 8224 (580ГФ24);

Встроенный регенератор динамической оперативной памяти - отсутствие необходимости в 3242 (580ВТ42);

Совместимость всех выводов с транзисторно-транзисторной логикой - в те годы достоинство КМОП-логики в плане микроскопических входных токов перечеркивалось ее сравнительно низким быстродействием. Именно поэтому в большинстве своем в отечественных ЭВМ тех лет применялась ТТЛШ серии К555 и КР1533, а не КМОП серия К561. Процессор Z80 допускал нагрузку в виде одного ТТЛ-входа, что позволяло не использовать буферные элементы;

Повышение числа регистров общего назначения, что упрощало создание микропроцессорных устройств вообще без отдельного ОЗУ, с использованием только внутренних РОН-ов процессора.

Z80 выпускался в 40-выводном корпусе DIP, позже выпускались версии в корпусах для поверхностного монтажа. Первоначальный вариант изготавливался по N-МОП технологии, однако позже был выполнен переход на КМОП. Тактовая частота базовой версии составляла 2,5 МГц, однако в позднейших КМОП-версиях она доходила до 20 МГц!

Процессор Z80 был дороже чем 8080, однако был более простым в использовании. Наверное, это и предопределило его успех.

Аналоги


Ввиду огромной популярности, аналоги Z80 выпускались множеством фирм по всему миру, все их перечислить вряд ли возможно. В странах СЭВ Z80 производили в ГДР под названиями U880 и 80A-CPU (выпускались варианты как в пластиковых, так и в металлокерамических корпусах) и в СРР под названием MMN80. При этом, по некоторым данным, ГДР-овский процессор не совсем соответствует своему прототипу: не выставляется флаг CY при выполнении команды OUTI (когда L=0), а также выявлено другое поведение скрытого регистра шины, видимого через недокументированные флаги F3 и F5.

К началу 1990-х свою версию Z80 (по распространенному в Сети мнению, советские варианты не были копиями, а именно аналогами) разработали в СССР на предприятии "Ангстрем" (Зеленоград) под названием Т34ВМ1. В серийном производстве отечественный Z80 назывался КР1858ВМ1. В начале 90-х в Минске на заводе "Транзистор" выпускался процессор КР1858ВМ3 - КМОП-вариант Z80.

Процессор 8085 также в какой-то мере можно назвать ответом на Z80.

Периферия

Применение


На отдельной платке собирается замена кр580вм80а и вставляется в штатную панельку на место кр580вм80а.

Замена процессора КР580ВМ80А на Z80 , турбирование частоты процессора ( авторская схема ) публиковалась в журнале радио №4 - 1996г

Дата сборки 10/11/2020-19/11/2020

Для информации:

КР1858ВМ1 Восьмиразрядный микропроцессор n-МОП, аналог Zilog Z80 только отечественного производства. Был популярен из-за повышенной нагрузочной способности выходов, благодаря чему устойчиво работал на "тяжелых" схемах. Эти процессоры активно применялись в компьютерах Sinclair ZX-Spectrum отечественного производства.
Z80 - 2.5 МГц
Z80A - 4.0 МГц
Z80B - 6.0 МГц
Z80H - 8.0 МГц
Z180 и eZ80, являющиеся прямыми наследниками оригинального Z80, могли работать на частотах 33 и 50 МГц соответственно.

Завод «Ангстрем» одним из первых в СССР наладил серийный выпуск клонов Z80 под названием Т34ВМ1. Подобно ГДР-овскому U880 процессор Т34ВМ1 имеет незначительные программные отличия. В дальнейшем этот процессор выпускался под именем 1858ВМ1, КР1858ВМ1, КМ1858ВМ1.

Принципиальная схема Z80 card

Z80 card версия турбирования авторский вариант



Платка к сожалению была разведена с ошибками, поэтому потребовалось резать дорожки и кидать проводки. За доработки и найденные ошибки в платке V0.13 выражаем признательность Алексею.

И так на фото ниже показано какие дорожки нужно резать, какие проводки припаять показано выше показано на фото.



Комментарии к процессу:

В плате имеются 3 неточности. Обратите внимание!

Там еще штука, ну это скорее лайвхак.

Изначально эта схема делалась для 12-вольтовой синхры ВМ80, а у меня переходник с
преобразователем +5,-5,+12 для ВМ80, а хотелось бы плату воткнуть без нее.
На материнской отключаем R10, R11 от 12 вольт (оставляем в воздухе, хотя резистор на Ф1 можно не трогать).
На плате z80 закорачиваем диод. Больше +12 не нужен.

Вот как у меня на картинках, может не изящно, но работает.

Далее последовательность сборки:




Какие дорожки нужно резать, какие кидать провода





Тест ОЗУ и работа с монитором М, опробован монитор М3, результат тотже



Накинул питание отдельными проводами, электролит, не помогло.



С другими микропроцессорами результат тот же, опробован еще Z80 (керамика) и КР1858ВМ1 результат тотже.



Опробованы микросхемы серии 555 и кр1533 (платка собрана на панельках) результат тот же, нужно делать доработки на основной плате Ориона. О чем будет рассказано ниже.

Сигналы на микропроцессоре Z80 , при вставленном микропроцессоре. Орион Алексей Москва:

1 нога A11 - Шум шины адресов
2 нога A12 - Шум шины адресов
3 нога A13 - Шум шины адресов
4 нога A14 - Шум шины адресов
5 нога A15 - Шум шины адресов
6 нога CLC - Импульсы синхронизации
7 нога D4 - Шум шины данных
8 нога D3 - Шум шины данных
9 нога D5 - Шум шины данных
10 нога D6 - Шум шины данных
11 нога +5 - питание +5
12нога D2 - Шум шины данных
13 нога D7 - Шум шины данных
14 нога D0 - Шум шины данных
15 D1 - Шум шины данных
16 нога INT - 1?
17 нога NMI - 1
18 нога HALT - 1
19 нога MREQ - Шум шины
20 нога IORQ - 1
21 нога RD - Шум шины
22 нога WR - 1
23 нога BUSACK - 1
24 нога WAIT - 1
25 нога BUSREQ - 1
26 нога RESET - 1
27 нога M1 - Шум шины
28 нога RFSH - Шум шины
29 нога GND - земля
30 нога A0 - Шум шины адресов
31 нога A1 - Шум шины адресов
32 нога A2 - Шум шины адресов
33 нога A3 - Шум шины адресов
34 нога A4 - Шум шины адресов
35 нога A5 - Шум шины адресов
35 нога A6 - Шум шины адресов
37 нога A7 - Шум шины адресов
38 нога A8 - Шум шины адресов
39 нога A9 - Шум шины адресов
40 нога A10 - Шум шины адресов

8,9 ноги ЛЕ1 подключены ИСКЛЮЧИТЕЛЬНО к 12 ноге ВМ80 и больше никуда не расходятся.
Т.е. сигнал от материнки ПРИХОДИТ на вход инвертора.
А все остальные соединения с ВЫХОДА 10 ЛЕ1 идут на 26 ногу Z80 и триггеры ТМ2.

Читайте также: