NEC V20

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Оказывается, у меня есть не только V20, но и V30, вот в такой штуке PV-S460:
http://pocket-viewer.ru/user/td.shtml
...
Как там написано, аналог 80186.
Ну аналог сказано сильно... NEC-и - они какие-то NEC-овские гибриды... :wink:
NEC V30 is a 16-bit CMOS microprocessor, object-code compatible and pin-compatible with Intel 8086. The V30 runs at the same speed as the 8086, but it's 10% - 30% faster (depending on application) due to internal improvements - dual internal 16-bit data bus, faster effective address calculation, faster integer multiplication and some others. The V30 includes Intel 8080 emulation mode, in which it can execute all of the 8080 instructions. Native V30 instruction set includes all 8086/8088 instructions, new instructions from the 80186/80188 microprocessor, and instructions unique to V30 - bit processing, packed BCD instructions and special instructions for switching the processor to 8080 emulation mode and back.
Источник

А в твоём гаджете NEC V30, похоже, вот такой:




PS. Кстати говоря, в Рsion-е также NEC V30 применен...

Image
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:Эти NEC-и весьма своеобразные - они и i8088 внутренне не копии, хотя и
"16-bit internal architecture and 8-bit external data bus".

Но "the NEC V25 and NEC V25+ are somewhat similar to Intel 80188 family".

Так что надо смотреть конкретный мануал, поскольку даже в рамках семейства
V20, у них есть некоторые различия - μPD70108,... и т.д. (К примеру...)

Складывается такое ощущение, что на них отработали VLSI-чипы, поскольку
с увеличением индекса Vхх в них запихивали всё большее количество
внешних устройств.

Читал, что из-за этого NEC-и были популярны в портативных устройствах.

Кстати интересно, на моей плате наряду с V20 стоят 2 здоровые микрухи типа
DIP, с очень большим количеством ног, более 40.
Так в них как раз запиханы контроллеры FDD, HDD и другая переферия.
вот тут немного есть
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: NEC V20

Post by Lavr »

Lavr wrote:NEC D70108C-8 V20
MaiklsBlack wrote:NEC V20 (uPD70108) — 16-битный микропроцессор, разработанный компанией NEC, содержащий приблизительно 29000 транзисторов. Является аналогом процессора Intel 8088, совместим с ним по расположению выводов, работает на частоте от 8 до 12 МГц, изготовлен по технологии CMOS.
...
Замечательной особенностью NEC V20 являлось наличие режима эмуляции процессора Intel 8080, что позволяло выполнять программы, написанные для Intel 8080.
Для перехода в данный режим и возврата из него использовались дополнительные инструкции BRKEM, RETEM и CALLN.
Я как-то не совсем осознаю сам принцип...

Вот мы дали команду перехода в режим эмуляции процессора Intel 8080.
И с этого момента до выхода из этого режима мы имеем на плате фактически
камень Intel 8080 во внешней обвеске чипами, предназначенными для Intel 8088?
То есть: нам недоступен BIOS, т.к. он написан для Intel 8086,
нам доступен только сегмент памяти, размером в 64К но непонятно где,
УВВ на плате Intel 8088 по идее должны быть доступны.

Так что ли?

И как нам "выполнять программы, написанные для Intel 8080" без ОСи
и в непонятной аппаратной конфигурации, не "смягченной" вызовами функций BIOS?
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Складывается впечатление, что у меня V20 вот такой...

Image
Нашел и скачал NEC V20/V30 datasheets.

Похоже, что распиновка сабжа вот такая:

Image

Будем почитать... :wink: Попадалась мне неприятная и непроверенная информация,
что названия регистров и мнемоники команд у NEC в корне отличаются от аналогов
у 8088/8086 по лицензионным соображениям. :(
"(NEC used a different notation for the instructions than Intel and BRK in NEC
notation = INT in Intel notation)
"


PS. Кстати говоря, там же есть и другие интересные datasheet-ы.
В частности, NEC V40/V50...


PPS. Datasheet на NEC V20 уделяет внимание особенностям эмуляции i8080...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:А у меня на этом проце XT до сих пор работает! На матери ещё насыпью
микросхемы таймера, ПДП, куча ОЗУ в ДИПах... На ПЗУ надпись - JUKO.
Случаем не такая плата? Её позиционируют как NEC V20 CPU (XT like) with a Juko BIOS.

Image
Увеличить

NEC V20 выделен красным на рисунке.
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Если и не она, то её родная сестра. Очень похожа.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

NEC_V20 Mode Operation Instructions

Post by Lavr »

Lavr wrote:Я как-то не совсем осознаю сам принцип...
Вот мы дали команду перехода в режим эмуляции процессора Intel 8080...
Эти самые мануалы вобщем-то объясняют набор команд для эмуляции i8080,
а также для интерфейса к вызовам BIOS и DOS:

NEC_V20 Mode Operation Instructions

Режимы работы μPD70108 включат в себя режим работы в своей системе команд (нормальное функционирование) и режим эмуляции (эмуляция системы команд микропроцессора μPD8080AF). Флаг переключения режимов, флаг режима (MD) находится в бите 15 регистра флагов PSW. Режим переключается в нормальный режим работы, когда MD = 1, и в режим эмуляции, когда MD = 0. Флаг MD может быть установлен/сброшен непосредственно или косвенно инструкцией установки режима.

Image

Инструкции, изменяющие режим работы из нормального в режим эмуляции:
BRKEM (Break for EmulationПрерывание для Эмуляции)
RETI (Return from interruptВозврат из прерывания)
RETEM (Return from EmulationВозврат из Эмуляции)
CALLN (Call Native routineВызов собственной подпрограммы)

Также, сигнал Сброса (RESET) или вызов внешнего прерывания (NMI, INT) переключают режим эмуляции обратно в режим работы в своей системе команд.

Image

(1) BRKEM imm 8
Это – основная инструкция для активизации режима эмуляции. Эта инструкция сохраняет PSW, PS, и PC, сбрасывает флаг MD в '0', и загружает вектор прерывания определенный операндом в PS и PC.
Эта инструкция не влияет ни на флаг разрешения прерываний (IE), ни флаг прерываний (BRK). Выбирая код инструкции обработки прерываний (для эмуляции), на которую осуществляется переход, ЦПУ интерпретирует его уже как инструкцию микропроцессора μPD8080AF и выполняет её соответственно.
ЦПУ интерпретирует режим эмуляции как обслуживание прерывания.

В режиме эмуляции, операции микропроцессора μPD8080AF с регистрами и флагами осуществляются посредством регистров и флагов микропроцессора μPD70108 в соответствии, показанном ниже.

Image

Что касается операций со стеком, то либо SP в режиме работы в своей системе команд, либо BP в режиме эмуляции, работают как указатели вершины стека. Принятие независимых указателей вершины стека позволяет обоим режимам, как зарезервировать свою независимую область стека, так и предотвращает эти области от уничтожения в другом режиме ошибочными операциями работы со стеком.
Регистры SP, IX, IY, и АХ нормального режима работы и четыре сегментных регистра (PS, SS, DS0, и DS1) не задействованы в режиме эмуляции.
В режиме эмуляции начало сегмента инструкции определяется регистром PS (автоматически определяемое вектором прерывания), и данными в регистре DS0 (определяемыми программистом непосредственно перед входом в режим эмуляции).

(2) RETEM (without operandбез операнда)
Когда инструкция RETEM выполняется в режиме эмуляции (эта инструкция интерпретируется как инструкция микропроцессора μPD8080AF), ЦПУ восстанавливает регистры PS, PC и PSW и возвращается в нормальный режим работы (в своей системе команд), как если бы он возвращался из обслуживания прерывания. В этот момент содержимое этих регистров в нормальном режиме работы, которое сохранялось в стеке инструкцией BRKEM, восстанавливается, что и переводит ЦПУ в режиме работы в своей системе команд.

(3) CALLN imm 8
Когда эта инструкция выполняется в режиме эмуляции (она интерпретируется как инструкция микропроцессора μPD8080AF), ЦПУ сохраняет регистры PS, PC, и PSW в стеке, (MD = 0 сохраняется в регистре флагов), флаг режима (MD) устанавливается в '1', и затем загружается вектор прерывания, определяемый операндом в PS и PC. Эта инструкция не оказывает влияния ни на флаг разрешения прерываний (IE), ни флаг прерывания (BRK).
Таким образом, программа обработки прерываний в системе команд i8088 может вызываться из режима эмуляции микропроцессора i8080.
Для того чтобы возвратиться из программы обработки прерывания в режим эмуляции, должна быть выполнена инструкция RETI.

(4) RETI (without operandбез операнда)

Это - общая инструкция, для возврата из подпрограммы обработки прерывания, активизированной инструкцией BRK (INT) или внешним прерыванием в нормальном режиме работы, если же эта инструкция выполняется в конце подпрограммы обработки прерываний активизированной инструкцией CALLN в режиме эмуляции, регистры PS, PC, и PSW восстанавливаются точно так же как и в нормальном режиме. Поскольку величина флага режима работы (MD = 0) в режиме эмуляции восстанавливается в MD при восстановлении PSW, ЦПУ устанавливается в режим эмуляции микропроцессора i8080, и затем все дальнейшие команды интерпретируются и выполняются как инструкции μPD8080AF.


PS. Названия регистров и мнемокоды NEC_V20 действительно имеют отличия
от идентичных у i8088, но соостветствие весьма прозрачное...


PPS. Чтобы запустить под NEC_V20 операционную систему СР/М используют
специальные утилиты, в частности v2080.zip...


PPPS. Это я так ненавязчиво агитирую Виталия испробовать эмуляцию
i8080 на его NEC_V20 ХТ-шке... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

NEC_V20 & i8088 pinout

Post by Lavr »

Распиновка NEC_V20 и i8088 практически одинакова:

Image


По сведениям, приведимым в Интернет, NEC_V20 может заменить i8088,
но в ряде случаев требуется корректировка BIOS, т.к. некторые инструкции
NEC_V20 выполняет эффективнее...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Ну и поскольку NEC_V20 и i8088 фактически родные братья, схема
включения у них даже в минимальном режиме имеет мало приятного:

Image

А в максимальном - без системного контроллера i8288 (КР1810ВГ88) не обойтись... :-?
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Re: NEC_V20 Mode Operation Instructions

Post by VituZz »

Lavr wrote: Это я так ненавязчиво агитирую Виталия испробовать эмуляцию
i8080 на его NEC_V20 ХТ-шке... :wink:
Не то чтобы я сильно против, просто этот комп находится у меня на на даче, куда я езжу не в каждые выходные. Если будут какие-то инструкции, как эту самую эмуляцию проверить, то можно и попробовать.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Да я тут глянул на свою собственную плату - сильно я её обкромсал уже...
Снимал я с неё компоненты весьма жестким образом... :(
То есть не-SMD-детали я по контуру из платы выпиливал лобзиком, потом
делал пропилы между ножек и отпаивал кусочки платы с выводов по одному...
Всё что выпаял - было работоспособно, а снял я 2 штуки 8250 с обвеской
и вставил их в свою 286-ю...
Все ISA-разъёмы выпилил и уже в дело пустил.
Памяти аккуратно спилил 3 линейки (сколько же её было...?)
Ну и по мелочи - разъёмы внешние, спикер, держатель батареи и т.д.
Кстати говоря, был там на плате композитный видео-выход.

Так что я даже как-то не очень уверен, жив ли на плате V20. Я его откровенно не
берёг, поскольку даже не знал тогда - кто он такой...

А так бы интересно было аккуратно снять его, сделать переходничок и впеньдюрить
в какую-либо ХТ на i8088.
У меня у друга валялась плата ХТ, если он не выкинул её.
"Искра-1030" тут не подходит, т.к. в ней i8086 стоял.


PS. А по поводу эмуляции СР/М - я так полагаю эта программа перенаправляет
вызовы BIOS и BDOS СР/М в родные функции BIOS компьютера.
Я скачал её себе, но глянуть не успел. Да и надо бы коды знать этих специфичных
операций V20.
Дизасемблером и отладчиком i8086 их явно не увидеть...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: NEC_V20 Mode Operation Instructions

Post by Lavr »

VituZz wrote:Если будут какие-то инструкции, как эту самую эмуляцию проверить, то можно и попробовать.
Ну... пошаговые инструкции примерно следующие:

1) Скачать программу V2080.zip всего < 5КБайт в архиве.

2) Распаковать V2080.zip (< 8КБайт) и запустить под DOS файл V2080.COM
на машине с NEC_V20 CPU, и он выдаст свой HELP:

Image

3) Согласно HELP-у переименовать СР/М-программу в FILENAME.CPM.

4) Запустить СР/М-программу в режиме эмуляции командной строкой:
С:\>V2080 FILENAME.CPM

5) Наверное обрадоваться... если эмуляция i8080 успешно заработает! :D

6) Сфоткать нам на зависть скрыншот - вот он, NEC_V20 в действии!!!
А у вас такого нету!!! :-Ъ


PS. Программа V2080.COM не единственная такого рода, просто первая под руку попалась...

PPS. СР/М-программу, я полагаю, можно взять с "Ориона"... Если будут трудности, могу со
"Специалиста" вынуть...
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Ну, вроде принципиальных трудностей нет... Надо только придумать, как перенести файлы на XT. Ейный винт ни в один комп не подойдёт, как и ейные 5-дюймовые дискеты. Да и не знаю, работают ли дисководы...

Попробую сделать.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Ну, вроде принципиальных трудностей нет... Надо только придумать, как перенести файлы на XT.
А через COM-порт не легче будет с какого-либо ноутбука?
А то 5.25" дисководы столько лет спустя могут и не захотеть крутиться... :wink:
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Возможно. Здесь есть некоторые трудности, поскольку ни DOS, ни Windows у меня давно нет, но я думаю, что дело это не невозможное. Кабели для прямого кабельного соединения с тех давних времён у меня где-то лежат.