User Tag List

Показано с 1 по 10 из 154

Тема: Мнемоники i8080 vs Z80

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Virtually all CP/M computers placed on the market since 1981 use the Z80 microprocessor. The Z80 actually runs all of the 8080 instructions but in addition there are more instructions unknown to the 8080. The extra instructions were designed for increased speed, easier programming, and more compact code. For this reason it is to your best advantage to program in Z80 code for CP/M even if you program for 8080.
    8080 (8080A) разработан в декабре 1973 года, содержит 5000 (5500) транзисторов и прогоняет 244 команды. Группа его разработчиков ушла из фирмы INTEL, основав фирму ZILOG и уже в марте 1976 года был разработан Z80, содержащий 8500 транзисторов и прогоняющий более 1000 команд. Фирма Intel в декабре 1976 ответила выпуском 8085, но это была последняя жалкая попытка противостоять Z80. Так появился Z80, процессор времён и народов.

    Система команд 8080 давно умерла. Процессор был снят с производства в начале 80-х и забыт, также как и его предок 8008. А система команд Z80 получила самое массовое распространие в мире среди 8-ми разрядок. Z80 захватил мир. Если сравнивать число произведенных кристаллов, то 8080 не составит и 0.001% от Z80 и его клонов. Его выпускают тиражами в десятки миллионов в год, в течение 40 лет. Многие ведущие фирмы производители ИМС выпустили более совершенные версии Z80 c адресацией выше 64К, с тактом в 40 МГЦ, а также огромное число однокристаллов с системой команд Z80. Причём все эти микросхемы производятся до сих пор и широко используются.

    ПО для компьютеров на 8080 не составляет и 10% от ПО для компьютеров на Z80. И почти всё имеет дату до 1982 года. Из фирменного ПО для 8080 есть только CP/M и несколько древних компилляторов ЯВУ. Компьютеры на КР580 имеются только в России и только здесь обитают программы для КР580.

    Не менее революционной оказалась и мнемоника ассемблера Z80. Любой программист, поработавший хоть один день в мнемонике Z80, уже никогда не возвращается к неудобной мнемонике INTEL. Поэтому даже те программисты, что делают ПО для КР580 используют мнемонику Z80, для чего в M80 используется ключ .Z80.
    NB: Даты выпуска CPU и числа транзисторов можете не оспаривать - здесь точнее, чем в WIKI сайта, т.к из иностранных источников, не из отечественных.

    Цитата Сообщение от Vladimir_S
    неудобство, а тем более нелогичность?
    Вопрос из серии "риторических" или из серии "хочу обсудить, и неважно что".

    Но нет проблем, давайте обсудим и такую ерунду.

    Насчёт удобный-неудобный, это субъективно. Кто как привык, тому так и удобно. Левшам удобна левая рука, мне нет. А вот насчёт логичный-нелогичный можно и разобраться. Используя логику.

    Может быть лишь два варианта.

    1. Мнемоника КР80 логичнее
    2. Мнемоника Z80 логичнее

    Вы сами прекрасно понимаете, что мнемоника Z80 намного логичнее. Это в Вас говорит "дух отрицания", заставляя защищать заведомо проигрышную позицию. В глубине души Вы и сами знаете, что мнемоника Z80 лучше и удобнее для программиста.

    Если Вы уверены в обратном, разместите в теме, где собираются программисты для Z80 утверждение, что мнемоника КР580 логичнее, чем мнемоника Z80. С интересом буду наблюдать, как Вас там, образно говоря, "заплюют и затопчут".

    Цитата Сообщение от error404
    лишние усилия, которые должен делать программист
    Именно потому. Одно дело, когда ты делаешь крошечную маленькую программку. А другое дело, когда ты полностью сосредоточен на сложном алгоритме и мозги постепенно "закипают". При этом даже небольшой выигрыш, что даёт логичная мнемоника, облегчает жизнь.

    Цитата Сообщение от error404
    для человека интеловские мнемоники после Z80 - абсурд
    Совершенно точно. Абсолютно согласен. Но поражает сколько защитников у КР580 ! В действительности эти люди защищают свои привычки, а не истину. Товарищи просто не понимают... Когда они странслируют первые 20 кб кода с собственного исходника Z80, их мнение изменится.

    Понятно, что в теме, где "роятся" исключительно фанаты КР580 мне трудно найти понимание. Словами тут убедить невозможно. Это как объяснить дальтонику цвета?

    Если мозг человека уже "подсел" на КР580, то подсознательно он отторгает более удобный Z80, т.к это требует доп.усилий, а мозг человека по природе ленив, стремится минимизировать усилия.

    Я привёл фразу о мнемониках ассемблера Z80, как дополнительный довод в пользу Z80. Но кто запрещает и при Z80 использовать КР580-мнемонику c КР580 ассемблерами - ASM.COM, MAC.COM и M80.COM с ключом '.8080'. Или пользуйтесь своим TASM-ом (а он имеет '.phase' и макро-команды?).

    Существуют очень древние ассемблеры для Z80 (1978) в мнемонике INTEL. Как это выглядит можете посмотреть, если при дизассемблировании CP/M дизассемблером DISASM.COM на вопрос "Есть ли Z80 команды?" ответить 'Да'. Вы увидите смешные INTEL команды типа SRAL, STAR, STAI, DSBC, LSPD, LDAR, INP, OUTP, PCIY, DADY, JMPR, JRZ, JRNZ, EXAF. На команды INIR, LDIR, RRD, SET, RES извращений уже не хватило, потому их не стали уродовать. Очевидно такой ассемблер для Z80 создали, чтобы можно было брать старые исходники 8080 и вручную переделывать их для Z80, и использовать старые библиотеки. Именно так бы выглядел ассемблер Z80, если бы не придумали более лучший вариант.

    Как можно догадаться, что делают эти команды? В то время, как у Z80 про любую команду всё ясно по её виду. Ассеблер Z80 не требуется учить. Достаточно простой человеческой логики. Зачем нужны MOV, MVI, LDAX, STAX, LXI, если это всё LD. Откуда понятно, что 'M' это не персонаж из фильма про агента 007, а подразумевает регистры HL. Или куда переход по RST 0...7, тогда как, например, RST 38 сразу указывает адрес перехода, не надо считать на калькуляторе. Почему написано D, а имеется ввиду DE? И таких несуразностей море. Это не ассемблер, а издевательство над людьми.

    Ну вот скажите по какой логике Вы сделаете вывод, что, например, команда 'INP L' работает через регистр С. Тогда как, если написать её по-человечески IN L,(C) вопросов просто не остаётся.

    Цитата Сообщение от Vladimir_S
    Какая разница какой ассемблер? Они, если по честному, оба довольно примитивные. Что совсем не удивительно. Созданы то на заре процессорных технологий.
    Непонятно о чём речь. О системе команд процессора, изображаемой на бумаге мнемоникой. Или о компилляторе, который тоже почему-то, принято называть ассемблером.

    Система КР580 оптимальна и достаточна. И отнюдь не примитивна. До сих пор не придумали лучше, потому-то Z80 производят до сих пор. Вот 6502 - примитивный, а КР580 нет. Именно поэтому разработчикам Z80 не удалось кардинально что-то изменить для программирования. Они, естественно, старались и сделали всё, что смогли - существенно упростили обрамление (регенерация 4116, встроенный преобразователь для напряжения подложки, один клок, встроенный системный контроллер). Но для программирования, самое кардинальное, что им удалось добавить, это прерывания в моде 2. Остальное - удобно, но не обязательно, т.к реализуется и на КР580. Поэтому 98% кода всех программ для Z80 используют только базовые команды КР580 (некоторые в укороченном JR варианте).

    Основной выигрыш от Z80 заключается - в одном питании, JR-командах, загрузках RR-регистров из ОЗУ, INT в моде 2 и возможности поднять такт. И в его ассемблере, - т.е просто в том какими буквами закодировали команды. Если использовать мнемоники Z80 для КР580, это даёт выигрыш и ему. Поэтому я и утверждал, что важен ассемблер.

    А если имеется ввиду компилятор, то я ещё не видел оптимизирующего ассемблера Z80 (который сам переставляет куски кода так, чтобы достичь максимального числа JR-команд, и тем самым сократить объём кода). А если этого нет, то M80 лучше всех современных кросс-ассемблеров. И дата производства не играет роли. М80 писала группа профессионалов высокого класса и доводила "до ума" много лет. Недаром он стоил дороже, чем CP/M. А современные новодельные компилляторы писали одиночки любители.

    Утомило читать?

    Ещё немного. Если в новом РК будет много ОЗУ и значит CP/M, но не будет Z80, то он останется только со старым ПО. Т.к на Западе было гораздо больше копьютеров на Z80, то в сети почти не найти программ CP/M для КР580. Поэтому нужен Z80 и не на внешних довесках, "втыкаемых" в панельку КР580, что некрасиво и потому неприемлемо. Ещё никто не привёл доводов, что лучше ставить КР580, чем Z80. Я вообще не представляю, что здесь можно возразить, кроме невразумительного "Я не люблю Z80".

    Цитата Сообщение от Vital72
    программы, которые используют только вызовы монитора будут работать без какой-либо доработки, а для тех программ, которые любят лезть к железу напрямую легко будет поменять адреса портов на правильные.
    Считаю, что полная совместимость с базовым РК это аксиома. Если этого не придерживаться, то надо назвать это другим именем и уйти в другую тему. А программ "лезущих" в порт клавиатуры во много раз больше, чем корректных. Причём "лезут" в порт клавиатуры не только командами для памяти, но и командами IN/OUT. Например, команда 'OUT (83),A' реально попадает в адрес 8383H, т.е в порт УС доп.ППА D14. Из-за этого мы не можем выделять для ППА менее чем 400H ячеек - 8000...83FF. А команды IN/OUT используемые для доступа в пространство пямяти плохо "переваривает" Z80.

    При установке Z80 придётся очищать программы от IN/OUT. Это несложно (тем более при наличии эмулятора) и намного проще, чем ставить две КП11 для переключения младших адресов на старшие (что сразу же приходит в голову аппаратчикам). При этом без разницы стоит ППА по адресу 8000 или в области F000. Переделывать программы с OUT надо в обоих случаях. И даже для процессора 8085, в применении которого вообще не вижу смысла (уж лучше КР580 с преобразователем напряжений +12,-5). Ещё раз уточняю, избавление от IN/OUT команд - это не проблема и не может быть использовано как довод против Z80. Кстати, жду доводы против Z80. Есть такие?

    Что касается фиксированной смены адресации. Конечно можно сменить во всех наглых программах адрес ППА (и это даже не потребует теперь особо много труда, т.к есть эмуляторы). Но стоит ли это делать, - менять шило на мыло? Менять адрес клавиатуры на другой. Завтра появится идея, что лучше перенести ППА в область В/У и что? Опять всё переделывать?

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

    А если, кто-то навсегда поменял себе адреса портов на другие, отчего не имеет совместимости, то это реально означает, что это он сам добровольно "ушёл с РК86". На какой-то другой неизвестный компьютер. И обсуждать его схемотехнику надо в другой теме.

    Поэтому, как бы ни была проста Ваша схема, в стартовом режиме она должна сохранять полную совместимость с РК. Открытие ОЗУ в адресах A000...BFFF или 8400...BFFF этому требованию удовлетворяют. Т.к к доп.ППА на A000 обращается только директива U (чтение блока из ROM-диска) и единственная программа - программатор УФ-ПЗУ. И переделать её под любой адрес - работа на 10 минут для любого новичка. Потому можно занимать адреса ППА D14, а также использовать другие "дыры" не конфликтующие с В/У. А ROM-диск не нужен, т.к благодаря Z80 в ПЗУ F800 освободится не менее 100H байт, куда без проблем уместится загрузчик ДОС с любого носителя. Z80 даёт большие преимущества при модернизации ROM-BIOS-ов, а вот при КР580 с этим будут проблемы.
    Последний раз редактировалось barsik; 29.11.2016 в 07:37.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. I8080 TO Z80 SOURCE TRANSLATOR
    от Sergey в разделе Программирование
    Ответов: 33
    Последнее: 25.05.2025, 15:08
  2. Ответов: 72
    Последнее: 08.12.2019, 00:36
  3. Совместимость Z80 и i8080 (580ВМ80)
    от Dmitry Dubrovenko в разделе Для начинающих
    Ответов: 50
    Последнее: 08.05.2016, 09:54
  4. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  5. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •