PDA

Просмотр полной версии : Мнемоники i8080 vs Z80



Vladimir_S
28.11.2016, 04:07
Неудобная и нелогичная мнемоника INTEL всем давно надоела.
Не первый раз это читаю, и все равно не понимаю, в чем неудобство, а тем более нелогичность?

HardWareMan
28.11.2016, 05:39
Неудобная и нелогичная мнемоника INTEL всем давно надоела. Любой кто хоть чуть-чуть поработал в мнемонике Z80, уже никогда не возвращается к ней, даже работая для КР580.
Мой стаж работы с ВМ80 и Z80 примерно одинаков (ну может ВМ80 на пару-тройку лет больше). И я ненавижу мнемонику Z80, я даже под TASM свою написал, совместимую с оригинальной. У ВМ80 (точнее i8080) самая логичная система мнемоник. Получается, я не любой, да и как можно говорить за всех то?

Vladimir_S
28.11.2016, 06:21
HardWareMan, Ну насчет ненависти к мнемонике это уже через край, но я считаю - для Z80 нужна своя мнемоника, для ВМ80 своя. И вообще кому как удобнее. И ни кому не надо руки отрывать.

HardWareMan
28.11.2016, 08:07
HardWareMan, Ну насчет ненависти к мнемонике это уже через край, но я считаю - для Z80 нужна своя мнемоника, для ВМ80 своя. И вообще кому как удобнее. И ни кому не надо руки отрывать.
Ну может я был резок, однако согласен с тобой и хочу услышать объективные причины "удобства" исторической мнемоники для Z80.

Вот например, у ВМ80 команда подсказывает какого типа операнды должны быть, и это реально удобно, особенно начинающим.

Error404
28.11.2016, 11:05
Ну может я был резок, однако согласен с тобой и хочу услышать объективные причины "удобства" исторической мнемоники для Z80.

Вот например, у ВМ80 команда подсказывает какого типа операнды должны быть, и это реально удобно, особенно начинающим.

Команда подсказывает? Шикарно. А кто подскажет саму команду? Запомнить полтора десятка состоящих из непроизносимых буквосочетаний команд для одного общего по логике действия ( "загрузка <приемник>, <источник>), это дико неудобно. Человеческий мозг биологически стремится к экономии, интеловские мнемоники для него после Z80 - абсурд.

zebest
28.11.2016, 11:17
]5 копеек.
Начинал с ВМ80, продолжил на Z80. Поначалу было непривычно, и команд чуточку побольше. Привык, теперь мнемонику ВМ80 не очень понимаю:) Все свои подделки для РК , типа "Хелло, World!" рисую в Ужасме соотвеЦтВенно в Z80 мнемонике, и все отсальные (чужие:), проекты, напосмотреть:), перевожу же в нее, конвертирую или конвертерами, или в ИД-е сразу в Z80. Основные дизасмы мониторов РК86, Микроши, Апогея и etc. - в мнемонике Z80. Мне так удобнее, но точно никому не навязываю свойю т.з. по поводу логичности\нелогичности. Вооот елси бы в SJAsm-e была бы мнемоника ВМ80 - может было бы и по-другомуу?))
ооо!!! и нас паЩитали!! тогда надо отредактировать пост, и откусить нижнюю половину.

Vladimir_S
28.11.2016, 11:27
Error404, Вообще не аргумент. И для человеческого мозга это совсем не задача.

Error404
28.11.2016, 12:18
Error404, Вообще не аргумент. И для человеческого мозга это совсем не задача.

Ну канешн не аргумент.
Пишите столько сколько я, и тогда очень будете ценить те лишние усилия, которые должен делать компилятор, а не программист в уме.

Vladimir_S
28.11.2016, 12:32
Да какая разница какой ассемблер? Они, если по честному, оба довольно примитивные. Что совсем не удивительно. Созданы то на заре процессорных технологий.

Ewgeny7
28.11.2016, 18:20
Неужели так и в чем не разобрался сам а тупо зубрил?
Я ничего не зубрил :)
Мнемоники всех систем, что я ковырял, примерно схожи. И все они нормально раскладываются в голове на описания команд, на лету. JMP, BRA, BSR, JNC, MVI, MOVE.B, ADDI.W - все они содержат в себе подсказку. На то они и мнемоники. После получаса ковыряния в исходниках - читаешь далее как книгу, пускай и на иностранном языке, но - понятную.
Исключение - Z80 (Z180). Его ассемблер выделяется из общего ряда, той самой "упрощенностью", когда базовая команда тянет за собой большой набор возможных вариаций применения.
Я не могу сказать, что что-то хуже или лучше, начинал я именно с мнемоник Z80. Мне в общем-то фиолетово, какой там ассемблер, дело привычки.
Да, ассемблер AVR мне тоже знаком, я и на нем писал. Быстро привыкаешь и начинаешь "думать, как процессор". И проблема языка тебя более не колышет.
Проблема мнемоник - надуманная.
Не нравится набор ВМ80 - ну, пиши на SJAsm'е, на мнемониказ Z80. Я так и делал поначалу, вполне себе работает.

Error404
28.11.2016, 19:42
Что легче для мозга, выучить одно LoaD и тысячу практически бессистемных правил или: MOVe, MoVe Immediate, STore Accumulator indeXed, STore Accumulator, LoaD Accumulator indeXed, LoaD Accumulator и у каждой свое конкретное правило, указанное в названии? У меня именно такие слова и всплывают, когда я смотрю на мнемоники ВМ80. Я понимаю, что это придумывалось англоязычными людьми для англоязычных программистов, но это дает возможность читать программу, я уже это говорил тут на форуме. А сухое LD от Z80 не прочтешь особо. И да, ходило мнение, что разрабы Z80, которые как раз и прикладывали руку к i8080 в свое время, не смогли использовать мнемонику i8080 из-за патентов, так бы вы все сейчас по другому пели.


И чего тут странного то? Наоборот все логично: MOVe Word, LoaD Immediate и так далее. Да та же SBIC - Skip Bit If Clear (логически Bit и If должны быть переставлены, но это не мешает, видимо ставка делалась на удобство произношения мнемоники). Программу можно читать!

Я вижу тенденция у современных программистов просто зубрежка. Это понятно, каждый делает как ему удобно. Но кто из вас хоть раз пытался не просто выучить а вникнуть в ассемблер целевой системы? Я очень рад, что у ARMa тенденция сохранилась и их программу можно читать. Я даже очень быстро въехал в нее, с нулевым входом. Ewgeny7, ты же столько миникомпиков собрал и, самое главное, программки к ним понаписал. Неужели так и в чем не разобрался сам а тупо зубрил?

Вот мы с тобой не первый раз это обсуждаем, и ты как не слышишь. Ну не хочу я вникать в то что там думали авторы мнемоник (что они думали на самом деле напишу ниже), если в результате мне вместо одной мнемоники надо помнить десяток с одинаковой логикой. Я не хочу помнить, что присвоение константы, переменной и адреса (если это натянуть на ассемблер) это у некоторых изобретателей три разных(!) операции (на самом деле их там не три у них, а больше). И это не из за глубоких смыслов, которых ты тут нарисовал, а тупо из-за того чтобы им не анализировать операнды команд, а переложить это на меня, программиста: чтобы я транслятору на вход готовенькое подавал и ему самому не вникать. А вот трансляторы Z80 это делать вынуждены, за что авторам тех мнемоник большое человеческое спасибо: у меня есть вещи поинтереснее для запоминания, чтем сто однотипных, но разных по написанию команд, и самое главное, я не буду это делать из-за чье-то лени (или непредусмотрительности, ибо как говорили предки "это хуже чем преступление - это ошибка").

HardWareMan
28.11.2016, 21:41
Error404, а ты не думал о том, что инженеры не только хотели "нагрузить" программиста, но и разгрузить (причем существенно) сам сборщик (не называю ассемблером, чтобы не было путаницы, но это и не компилятор)? Ведь когда процессоры вышли, программу для них можно было собрать либо вручную, либо на машине-предшественнике (который явно слабее), либо на самом же процессоре, что еще надо сделать сначала. И тут действительно, MOV/MVI парсятся гораздо проще (полноценный ассемблер Микрон в 2КБ умещается). Это тебе сейчас, спустя 30+ лет, имея под боком мощный PC и кроссплатформенный сборщик кажется, что рудимент. Ты сейчас вообще ничего можешь не помнить, юзай кроссплатформенный С, например. Сможет ли AVR собирать сам свои программы? Так что ты не прав, по поводу лени или непредусмотрительности. И я повторюсь: если бы не копирайты (https://en.wikipedia.org/wiki/Zilog_Z80#New_syntax), то Z80 говорил бы на языке i8080, ведь не даром он совместим с ним.

Ладно, это уже холивор, так что я завязываю дальше об этом трындеть. Давайте уже препарируем Апогей. :)

barsik
28.11.2016, 22:13
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 сайта, т.к из иностранных источников, не из отечественных.


неудобство, а тем более нелогичность?

Вопрос из серии "риторических" или из серии "хочу обсудить, и неважно что".

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

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

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

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

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

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


лишние усилия, которые должен делать программист

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


для человека интеловские мнемоники после 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) вопросов просто не остаётся.


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

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

Система КР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".


программы, которые используют только вызовы монитора будут работать без какой-либо доработки, а для тех программ, которые любят лезть к железу напрямую легко будет поменять адреса портов на правильные.


Считаю, что полная совместимость с базовым РК это аксиома. Если этого не придерживаться, то надо назвать это другим именем и уйти в другую тему. А программ "лезущих" в порт клавиатуры во много раз больше, чем корректных. Причём "лезут" в порт клавиатуры не только командами для памяти, но и командами 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 с этим будут проблемы.

HardWareMan
28.11.2016, 23:09
Если Вы уверены в обратном, разместите в теме, где собираются программисты для Z80 утверждение, что мнемоника КР580 логичнее, чем мнемоника Z80. С интересом буду наблюдать, как Вас там, образно говоря, "заплюют и затопчут".
Если Вы уверены в обратном, пойдите в мечеть и скажите что Аллаха нет, а Бог есть. С интересом буду наблюдать, как Вас там образно говоря "заклюют".

Именно потому. Одно дело, когда ты делаешь крошечную маленькую программку. А другое дело, когда ты полностью сосредоточен на сложном алгоритме и мозги постепенно "закипают". При этом даже небольшой выигрыш, что даёт логичная мнемоника, облегчает жизнь.
И почему у меня нет такого при переключении на MC48, MCS51 или даже все тот же AVR или, не дай Б-г ARM? А на М68К так и вообще вы должны молиться, вот там точно самый универсальный MOV[.BWL] <EAX>,<EAX>.

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

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

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

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

И таких несуразностей море. Это не ассемблер, а издевательство над людьми.
А я, например, считаю, что С - издевательство над людьми, хотя сам на нем пишу и уже прилично. Что от этого поменяется?

Основной выигрыш от Z80 заключается - в одном питании, JR-командах, загрузках RR-регистров из ОЗУ, возможности поднять такт. И в его ассемблере, т.е просто в том какими буквами закодировали команды.
Питание - да. Расширенный набор команд - двойное да. Буквы - нет. Основной выигрыш в том, что он мог команды i8080, и можно было старый софт крутить, пока не было родного. Потом люди раскачали родной и тут уже стал решать расширенный набор команд. Пришла популярность - пришла необходимость учить его мнемоники. Вот и все. Это закон рынка и признак успешности потомка (пусть и незаконно рожденного). Посмотрите на историю x86, там было то же самое. Правда, на определенном поколении система команд стала настолько запутанной и сложной, что выручать уже стали абстрактные ЯСУ и ЯВУ.

Утомило читать?
Меня - нет. И в итоге я был прав - чистый холивор.

Касаемо сабжа решать должен только наличествующий софт. Ибо новое писать никто не будет. ВМ80 я так же считаю рудиментом опять же только из-за питания (хотя старый ВМ80-only софт придется кому-то допиливать до работоспособности на Z80).

b2m
28.11.2016, 23:26
В то время, как у Z80 про любую команду всё ясно по её виду. Ассеблер Z80 не требуется учить.
Когда я вижу листинг с подряд идущим десятком команд LD, мне становится грустно. Потому что, чтобы понять, что делает этот кусок, нужно напрягать мозг. Разнообразие мнемоник i8080 позволяет расставить "якоря", и уже не теряешься, в какой строчке какие значения регистров были и что они означали.

barsik
29.11.2016, 02:32
Ещё один фрагмент из RCPM (Remote CP/M) Public Domain. BBS from USA 1989. К 1989 архив RCPM содержал уже 150 дискет с бесплатными программами для CP/M (интересно где это ПО теперь).


Z80 mnemonics are a great improvement over those used for the 8080. Some thought was given to logical, universal mnemonics that are much easier to remember and use. I learned assembly language on the 8080 and resisted the change to Z80 at first. After using Z80 mnemonics for a short time, I became very unwilling to do anything with 8080 code. Now I run almost every 8080 program that comes in through a 8080 to Z80 translating program (XIZ.COM by Irv Hoff, another free, public domain program). Even if you are writing programs for the 8080 it is still far easier to write in Z80 mnemonics.

Кто нибудь знает, что означает "far easier"? Попробуйте перевести PROMPT-ом и посмотрим, намного ли это отличается от того, что написал я? И заметьте, что тут речь именно о мнемониках, а не о редко используемых индексных командах и двойном наборе регистров, что по мнению HardWareMan-а, как-раз и способствовало успеху Z80.

А я считаю, что кроме JR и LD (LOC),RR в Z80 добавилось мало-что особо полезного. Точнее польза от индексных и альтернативных регистров - невелика. IX,IY упрощают (меньше думать), но тот же самый код, причём с тем же самым объёмом и быстродействием, получается и без них (это из-за того, что на префиксы тратится много байтов). Больше пользы от половинок индексных регистров, но это недокументированные команды. Которые стали известны только, когда их открыли синклеристы в конце 80-х. JR и LD RR,(LOC) ничего не меняют, а лишь сокращают объём кода. Из половинок индексных регистров и регистра I (если нет прерываний) - польза только, в качестве быстрого места для хранения, причём и ускорение это даёт лишь на чуть-чуть, относительно использования для хранения ячеек ОЗУ. Альтернативные регистры лишь сокращают число PUSH-POP-ов (и заметная польза от них - только при написании эмулятора КР580 на Z80, т.к именно тут хранятся эмулируемые регистры КР580).

Я считаю, что расширения системы команд Z80 отнюдь не так полезны, как это принято думать. Что и доказывает их реальное использование. Если бы это было не так, то было бы очень сложно адаптировать игры ZX для КР580. Но это делали на убогих КР580 машинах. Без отладчика Z80, без дизассемблера Z80 (с убогим DIS МИКРОН), без дисковода - и всё за за неделю. Это было возможно именно потому, что расширения железа Z80 (IX,IY,I,R) программистами в реальности используются очень мало. Отчего конверсия заключается, главным образом, в замене JR на JP и адаптации команд типа LD (LOC),RR и переделке п/п-мм работающих с клавиатурой и экраном.

Поэтому немаловажную роль в успехе Z80 сыграла именно грамотная мнемоника, а отнюдь не добавка индексных и альтернативных регистров, как думает HardWareMan.


В ассемблере КР580 куча мнемоник для разных операндов из-за того, чтобы ассемблеру не анализировать операнды команд, а переложить это на программиста

Вот это всё объясняет. Отличная мысль. Вот отчего мнемоники команд придумали такими неудобными. Их делали не для программиста, а для упрощения ассемблера.

Когда 8080 только появился, для него ещё не было никаких трансляторов, даже PL/M. Поэтому авторам 8080 пришлось написать хоть какой-то ассемблер для начала. Не думаю, что он был сложнее МИКРОНА. Конечно его писали не в машинных кодах, а на кросс-ассемблере. Инструментов и опытных программистов КР580 ещё не было. Потому задача раработчиков КР580 была придумать мнемоники такими, чтобы это максимально упростило компиллятор. Что они и сделали.

А разработчики мнемоник Z80 изобретали мнемоники на 2 года позже, и потому позаботились о программистах (они могли себе это позволить - уже имели и опыт, и МАКРО-ассемблер для КР580).


ходило мнение, что разработчики Z80, прикладывали руку к мнемоникам i8080 в свое время, но не смогли их использовать из-за патентов

Это явно пустые домыслы.

Думаю, что все знают, что графический интерфейс впервые был применён APPLE (LISA 1983, MAC 1984). А изобрёл графический интерфейс Алан Кей. Эта идея была украдена 'Мелко-SOFT'-ом для своей 'WINDOWS'. Иск по правам на графический интерфейс длился более 5 лет и APPLE проиграла. С мотивацией, что можно запатентовать вид интерфейса, но не его идею. Так получается, что и колесо нельзя запатентовать, а лишь его диаметр... В любом случае все знают, кто был первым и кто лишь заимствовал.

Так вот, точно также нельзя запатентовать мнемоники. Процессоров в 70-е годы уже было более 3-х десятков (с однокристаллами), а слово MOVE или LOAD всего одно и много логичных производных от них - не придумать.

И я знаю, что мнемоника ZILOG была сразу такой. Она не была вначале интелловской, и лишь потом её запретили патенто веды. Отчего "несчастным" инженерам из ZILOG пришлось изобретать что-то своё.

Когда ещё воообще не было ассемблеров Z80, в описании Z80 (с датой 1976) приведены именно мнемоники Z80 (хотя и с небольшими отличиями). Более того, в комплект документации включена макро библиотека, которая позволяла транслировать программы для Z80 на МАКРО ассемблерах для КР580. Не все имена МАКРО команд соответствовали мнемоникам ZILOG приведённым в документации (и это специально, чтобы упростить МАКРО). Но это однозначно не были мнемоники INTEL.

Что и доказывает, что ZILOG изначально имел хорошую мнемонику, а не вынужден был её изобрести, якобы из-за того, что патентное бюро запретило использовать "дерьмо" от INTEL.

Vladimir_S
29.11.2016, 08:53
Что и доказывает, что ZILOG изначально имел хорошую мнемонику, а не вынужден был её изобрести, якобы из-за того, что патентное бюро запретило использовать "дерьмо" от INTEL.

barsik, Да не кипятись так, по себе знаю, что требуется совсем не много времени,что бы любая мнемоника (что для процессора, что для контроллера) стала как родная.

HardWareMan
29.11.2016, 10:23
ходило мнение, что разработчики Z80, прикладывали руку к мнемоникам i8080 в свое время, но не смогли их использовать из-за патентовЭто явно пустые домыслы.
Скажите это английской вике. Я ссылку давал. (https://en.wikipedia.org/wiki/Zilog_Z80#New_syntax) А эта ваша логичность вообще бред. JR - понятно, Jump Relative. Тогда почему JP а не JA (Jump Absolute)? Ведь все равно condition вынесли в операнды, верно? Да даже местные находили (http://zx-pk.ru/threads/15675-somnitelnaya-mnemonika.html) косяки в этой самой логичности. Объясните другой факт: "удобные" мнемоники родились за 20 лет до тех же AVR и тем более ARM, так почему последние придерживаются правила формирования мнемоник как у i8080, а не упрощают работу программиста как в случае с Z80? Ведь сейчас никто не пишет программы для AVR на самом AVR, для этого подойдет даже PC 10ти летней давности, верно?

И на последок. Для Altair 8800 (https://en.wikipedia.org/wiki/Altair_8800) был написан Барсик самим Биллом на бумажке (опять же исторический факт - гуглите). Вполне реально, я тоже так делал для Специалиста в школе, а потом проверял в кружке.

- - - Добавлено - - -


barsik, Да не кипятись так, по себе знаю, что требуется совсем не много времени,что бы любая мнемоника (что для процессора, что для контроллера) стала как родная.
Это больше относится к RISC, потому как некоторые из оставшихся CISC стали слишком Complex (буква из аббревиатуры).

Ewgeny7
29.11.2016, 15:44
Маленько покромсал тему.

SaNchez
29.11.2016, 16:34
Imho, после интеловских мнемоник, зилоговские как-будто язык более высокого уровня, и это даже без учета расширенного набора команд.

Vslav
29.11.2016, 16:34
OK, расскажу как я изучаю процессоры, для которых потом приходится писать на ассемблере.
- берется полный мануал ISA (Instruction Set Architecture)
- в Word-е составляется полная табличка всех инструкций, упорядоченная по бинарному коду, с разборкой всех полей и их возможных значений, а также зарезервированные опкоды
- потом эта табличка копируется и автоматически упорядочивается по мнемоникам, получается вторая табличка

Процесс занимает несколько дней, но в итоге составления такого табличного конспекта в памяти откладывается все - и какие инструкции, и с какими аргументами они могут работать, набор ресурсов архитектуры, флажки и прочее. И потом как-то не возникает вообще вопросов почему нельзя написать типа "mvi D, 258" (применительно к 8080). С этой точки зрения я считаю вариант мнемоник i8080 более полезным, он позволяет легче помнить обо всех этих особенностях архитектуры. Но, не всем такие тонкости нужны, многие просто не обращают на это вниманию, кодят себе, да и усе, без подробностей. Таким людям, наверное, удобнее мнемоники Z80. В-общем, некоторые любят механику, а некоторым коробку-автомат подавай. И те, и те - ездиют :)

HardWareMan
29.11.2016, 16:42
Vslav, коллега! Вот как я сделал для М68К (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=890088&viewfull=1#post890088).

Vslav
29.11.2016, 16:57
Vslav, коллега!
Анекдот в тему:

Представь, что у тебя есть ценная мысль, и ты ее думаешь.
Дальше представь, что у меня есть ценная мысль и я ее думаю.
Допустим, мы с тобой поделились друг с другом своими ценными мыслями.
Внимание, вопрос - сколько у нас с тобой стало ценных мыслей?
Две? А вот и нет - одна. А почему? Да просто дураки думают всегда одинаково :)

PS. Талмуд по 68К хороший, да :)

Eats
29.11.2016, 17:04
Господа, по-моему многие из вас (включая высокопоставленных лиц) откровенно путают котлеты с мухами! Наиболее существенное отличие мнемоник Z80 от 8080 заключается в том, что мнемоники Z80 упорядочены, а 8080 - нет. Упорядочивание заключается в том, что в мнемониках Z80 операция жёстко отделена от операнда, а в мнемониках 8080 всё смешано в одну кучу - и операция, и операнд(ы). В общем случае подмножество команд не однозначно соответствует подмножеству адресаций, а разработчики 8080 попытались "объять необъятное", смешав в одну кучу и команду, и метод(ы) адресации (кстати, сделано это было, как уже справедливо заметили, не в последнюю очередь для упрощения кода самого Ассемблера!). Как это у них получилось (хорошо или плохо) - своего мнения высказывать не буду, но очевидно, что полностью вместить операнд в мнемонику они не сумели или не решились, оставив некоторые операнды в поле операндов. Поэтому вся ваша дискуссия сводится не к религиозной борьбе, а лишь к спору о том, что логичнее: отделять мух от котлет или валить всё в одну кучу, хотя всё равно куч будет две, и во второй будут только мухи. Что в переводе на русский означает отделять ли команду от метода адресации или валить в одну мнемонику и команду, и адресацию, хотя всё равно у половины мнемоник остаётся дополнительное поле для адресации.

P.S.: Я не знаю, сколько кода я написал в молодости, но третьей по счёту программой, которую я написал не за деньги, а для души, был кросс-ассемблер для Z80 под RT-11 на ДВК, однако написал я его в мнемониках 8080 именно потому, что в таком виде он пишется задней левой ногой без применения мозга. :)

Ewgeny7
29.11.2016, 17:15
Дело не в мухах и котлетах, а просто появилсся лишний повод поболтать о близком и родном, что весьма ценится после информационного спама из телевизора, ИМХО :)

- - - Добавлено - - -

Пошевелив очучениями, наверное соглашусь с SaNchez. Мнемоники и набор команд Z80 действительно заставляет призадуматься о "чуть высшей ступеньке в языке". Подобное же чувство было так же при ковырянии МС68к. Оба процессора очень хороши.

Vslav
29.11.2016, 17:27
Простой вопрос на засыпку. Берем старый не очень качественно сохранившийся печатный исходник.
И встречаем там такое:

ld A, B (или 8, видно на старой журнальной печати плохо)
ld A, D (или 0)
И ломаем голову.
В варианте 8080:

mvi A, 8 (читаем однозначно как константу 8)
mov A, D (читаем однозначно как имя регистра D)
Вывод - мнемоники 8080 несут БОЛЬШЕ информации об инструкции. Обычно это не имеет особого значения, кому что нравится. Но вот для старых листингов - 8080 годится лучше.

- - - Добавлено - - -


действительно заставляет призадуматься о "чуть высшей ступеньке в языке"
Тогда Си - самый лучший ассемблер :)

cy6
29.11.2016, 17:39
Тогда Си - самый лучший ассемблер
Так и есть, Си это высокоуровневый ассемблер с неограниченными возможностями. Пользоваться ассемблером приходится только из-за тупой оптимизации кода компилятором. Если бы придумать идеальный оптимизатор для Си, это был бы единственный ассемблер. :)
А вот Си плюс, это уже полноценный язык. :p

КР580 самый лучший процессор, свой, отечественный, пусть и немного стыренный. :v2_dizzy_army: :v2_tong2:

HardWareMan
29.11.2016, 18:19
Вывод - мнемоники 8080 несут БОЛЬШЕ информации об инструкции. Обычно это не имеет особого значения, кому что нравится. Но вот для старых листингов - 8080 годится лучше.
Информация для восстановления же! Такой встроенный ECC. И да, в журналах и всяких распечатках i8080 более устойчив к чтению.

Ewgeny7
29.11.2016, 19:09
Давайте согласимся, что обычно проблема выглядит несколько иначе...
В дампе кода, приведенного в журнале, непонятны сами хексы.
0 или D? B или 8? А вот разночтения текста на ассемблере - таки пореже бывают.
А вообще, зачем зацикливаться на таких "аварийных" случаях?
Давайте уж быть оптимистами.


КР580 самый лучший процессор, свой, отечественный, пусть и немного стыренный.
Вот эти слова - безусловная личная правда. Я, каюсь, сам иногда держу в руке ВМ80А и ухожу куда-то в сказку про то, что могло бы быть, но не случилось...
Мне этот процессор тоже очень дорог и лампово тёпл.

- - - Добавлено - - -


Тогда Си - самый лучший ассемблер
Си настолько же далек от железа, как партия от народа. Это не ассемблер.
Но Си я пользуюсь для микроконтроллеров. Там уже пофиг на розовые сопли, главное - чтобы работало.

NEO SPECTRUMAN
29.11.2016, 22:41
немоники 8080 несут БОЛЬШЕ информации об инструкции
с таким же успехом они больше замыливают глаза
больше трудностей в их запоминании
они совершенно не поддаются последующему расширения набора команд процессора (без появления сотни других без полезных мнемоних)

и вообще арм наше фсе:v2_dizzy_punk:
четко видно что сделать с чем именно и куда все это потом деть:v2_dizzy_roll:
а не то что пишешь по привычке xor a,c а оно те компилит xor a : xor c :v2_dizzy_facepalm:

Vslav
29.11.2016, 23:03
с таким же успехом они больше замыливают глаза
больше трудностей в их запоминании

Это все субъективщина. Кому-то "замыливает" и "сложно запоминать", а кому-то (и мне тоже) - удобнее больше информации иметь в мнемонике, а не свалить кучу разных классов инструкций в безликую "ld".



и вообще арм наше
четко видно что сделать с чем именно и куда все это потом деть

Да ладно? У ARM-а в режиме без декомпрессии есть (в разных комбинациях):

- собственно имя команды (mov/add/stm)
- суффикс условного выполнения (eq/ne и прочие)
- суффикс модификации флагов (s)
- специфический суффикс команды (типа ia/fd у stm)
- регистр приемник результата
- регистр источник первого операнда
- регистр источника второго операнда
- регистр счетчика сдвига второго операнда
- константа задающая тип сдвига (ror/shl/rrx)

Ну, например: addeqs R0, R1, R2, shl R3

Угу, все просто, понятно и легко запоминается, не то что мнемоники 8080, в которых "больше трудностей в их запоминании" :)

NEO SPECTRUMAN
29.11.2016, 23:57
безликую "ld"
а понадобиться
ввести кучу новых регистров
новые регистровые пары через которые можно будет читать сохранять
новые 16 битные 32 битные регистры

мнемоники z80
ld (xx),xx
ld (xxxx),(xxxx)
xor xxxx,xxxx
легко расширяются
и смысл будет понятным даже если ты не читал ничего кроме мануала 79 года


дайте угадаю что будет с мнемониками и8080
mvsdjfgsdlj xx
mvnfdvsdjk xxxx,xxxx
xrjsdk xxxx


единственная команда z80
которая придумана каким то придурком это jp (hl)
которая читается как взять слово из памяти с адресом указанным в регистровой паре hl и поместить его в pc
а выполняется зачем то как поместить в pc содержимое hl o_O

- - - Добавлено - - -


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

а что же будет с интеловским подходом?
этот набор команд арма которых кот наплакал (и благодаря которым можно достаточно полно использовать такие не малые его возможности)
наверное превратится в 20 страниц одного только списка всех возможных мнемоник

(этож надо будет для каждого варианта выполнения команды свою левую мнемонику
а не просто какая то комбинация префиксов
иначе это будет не мнемоника и8080
а еще ж у интеловцев совершенно не модно писать после мнемоники название больше чем одного регистра
так что количесто мнемони будет
кол.команд*16*16*все_возможные_варинты_и_условные_ выполнения
иначе это будет не мнемоника и8080)


смотрим какая порнография творится в системе команд 6502
это вообще
как её дальше расширять непонятно
как выучить то что есть(чтоб постоянно не лезть в таблицу) тоже непонятно
(команды какогото там chip8 мну выучел за один день к примеру(так что это не склероз
(и именно не тот вариант который похож на Z80 а тот который больше похож на и8080)))

Vslav
30.11.2016, 00:47
а понадобиться
ввести кучу новых регистров
новые регистровые пары через которые можно будет читать сохранять
новые 16 битные 32 битные регистры

....

дайте угадаю что будет с мнемониками и8080
mvsdjfgsdlj xx
mvnfdvsdjk xxxx,xxxx
xrjsdk xxxx

....

а что же будет с интеловским подходом?

А прекрасно все будет с интеловским подходом. Они как-то спокойно перешли с 8080 на 8086, а потом и на 80386. Не читали, наверное, цитируемый выше полет фантазии :).



этот набор команд арма которых кот наплакал

В моем далеко неполном конспекте довольно старенького ARMv4 в наличии 54 инструкции. Ну ОК, пусть это будет "кот наплакал" :)
Кстати, я достаточно много переносил ассемблерного текста с 32-битного ARMv4 на режим Cortex-ов , там пришлось над одинаковыми мнемониками пострадать. Потому что у инструкций вылезли совершенно другие ограничения адресации, другие правила использования флагов, другие условные блоки. А еще нужна была компактность (инструкции в компактной форме еще и выполняются быстрее), приходилось постоянно смотреть в листинги и править текст чтобы получить компактную форму. Я не думаю, что переход был бы легче, если бы они поменяли мнемоники, но само по себе такой перенос достаточно болезнен.



для любой команды своя мнемоника для каждого варианта регистра приемника.

Такой прием в полемике называется "доведение до абсурда", я сам его люблю применять, но надо же и меру знать :)

Если отбросить всякую субъективщину и вопросы вкуса, то мнемоники 8080 обеспечивают больше информации о кодируемой инструкции. Просто банально потому что мнемоник больше. По количеству. А цифры - штука объективная. Дальше же начинаются личные предпочтения, поэтому обсуждать тут конструктивно особо нечего. Вопросы "тяжелее выучить, сложнее запомнить, легко запутаться" - они все субъективные. Мне нравится при кодировании осознавать особенности инструкции, считаю удобным, что эти особенности отражены в мнемонике. Это просто мое личное мнение и предпочтение. А кого-то это напрягает, для него это лишнее. Это его мнение, тоже нормально. А еще есть люди которые для 8080 в кодах писали, вообще без мнемоники, это их мнение, делов-то.

В-общем, объективно доказать превосходство одних мнемоник над другими - нельзя. Мнемоники - они же предназначены для представления бинарных инструкций в "человеческом виде", то есть - читаются исключительно человеком. А тут уже кому что нравится.

barsik
30.11.2016, 00:53
Вопрос был риторический, не нуждающийся в ответе. И в переводе я не нуждаюсь. Не надо мне присылать в ЛС ужасные машинные переводы. И я знаю, что в браузер можно встроить блок перевода. Но мне это не надо.

Я свободно читаю по английски (в том числе, классику 19 века, что не могут сами англичане). И знаю ещё 2.5 иностранных языка. Подрабатывал техническими переводами (правда с немецкого, с английского переводчиков избыток). Чтобы закрыть вопрос привожу свой немашинный перевод.


Мнемоники Z80 значительно улучшены по сравнению с мнемониками 8080. Особое внимание было уделено созданию логичных и универсальных мнемоник, которые существенно облегчают запоминание и использование. Я изучал язык ассемблера на 8080 и поначалу сопротивлялся переходу на Z80. Но после использования Z80-мнемоник всего-лишь короткое время, мне стало очень неприятно делать что-либо в коде 8080. Теперь я прогоняю почти каждый исходник, что получаю, через транслятор исходников (XIZ.COM написанную Ирвом Хофом, это бесплатная Public Domain программа). Даже, если Вы пишите программы для антикварного 8080, всё-равно значительно легче их писать в мнемониках Z80.

Так как дискуссия по поводу мнемоник заглохла, подвожу итог обсуждению.


Несмотря на большое численное превосходство фанатов КР580, со значительным перевесом победила мнемоника Z80, признанная всеми значительно более удобной для программирования. Что делает дальнейший выпуск печатных плат компьютеров на КР580 и 8085 - нецелесообразным.

Чтобы отвлечь от дальнейшей перепалки фанатов КР580 недовольных таким, вполне справедливым, выводом, предлагаю сменить тему. Например так.


Для 'Altair 8800' был написан бейсик самим Биллом на бумажке (исторический факт). Это вполне реально, я тоже так делал для Специалиста в школе, а потом проверил в кружке в реале.

Очень сомневаюсь. Если это верно, то Вы не уступаете в мастерстве Биллу Гейтсу.

Без дисковода невозможно написать программу объёмом более 2К. Исходник для большего объёма кода просто не влезает в ОЗУ СПЕЦИАЛИСТА, а писать двумя-тремя фрагментами по 2К - это крайне муторно и реально так удавалось делать только при наличии электронного диска.

Как ни странно, я тоже занимался этим. И мой бейсик даже в Z80-кодах имел объём 5 Кб. А в кодах КР580 было бы больше. Не могли бы Вы продемонстрировать код или исходник Вашего бейсика для СПЕЦИАЛИСТА?

А сама тема интересная.


Для ЭВМ 'Altair 8800' в 1975 Билл Гейтс на бумажке написал Altair-Basic, чем заработал большие деньги на которые была основана фирма Microsoft

Это рекламные сказки для полных идиотов. На бумаге вообще невозможно ничего написать. Тем более бэйсик для 6502. И писал он не один, а с дружком Полом Аленом, с которым позднее основал 'Microsoft' (а после его "задвинул").

Билл сам в интервью проговорился, что писал этот бейсик вовсе на на бумаге, а на 'майн-фрейме". Не знаю, что это значит, но это точно не записная книжка, и даже не калькулятор (кто бы купил 14 летнему ребёнку калькулятор, который стоил 250 USD). Предполагаю, что это был какой-то большой компьютер (предположительно IBM-370), для которого они написали эмулятор 8080.

Написать бейсик сложно. Я это из спортивного интереса проверил в 1995. Хотел проверить сказку о том, что можно с нуля написать бейсик за месяц. А заодно и понять, глупее я, чем Билл или нет.
:)

Я использовал мощный ассемблер Microsoft M80 на ОРИОНЕ с HD-флопом (обмен вдвое быстрее DD). Писал в мнемонике Z80. Тем самым на порядок превосходил Билла, как по железу и ПО, так по мощности ассемблера. Не говоря уже о том, что я имел больше опыта в программировании, чем подросток Билл 20 лет назад (только-что узнавший о существовании микропроцессоров). Причём я писал целочисленный и сильно усечённый бейсик. Бейсик по стандарту TINY BASIC (имея описание операторов), а не полноценный бейсик, что сделал Билл.

Также мне не надо было встраивать в бейсик п/п-ммы для работы с массовой памятью, как сделано в AppleSoft BASIC для ROM (который сам работает с дисководом, отчего не нуждается в ДОС, т.е содержит в себе кусок ДОС). Я просто использовал CP/M (и взял готовый кусок кода SAVE/LOAD). Т.е у меня были все преимущества.

В итоге, я написал недели за 3 свой TINY BASIC, истратив, предположительно, (по 4 часа в день) ~80 часов реального времени, а скорее всего, даже больше.

Учитывая все мои преимущества, я сделал вывод, что малокомпетентный подросток просто не мог написать работающий бейсик в приводимых условиях. ЭТО НЕРЕАЛЬНО. А тем более на бумаге, не проверив на реальном железе, что ВДВОЙНЕ НЕРЕАЛЬНО.

Или речь шла о многих месяцах, или условия были совсем иные. И кто бы дал молодому Биллу столько часов крайне дорогого в 1975 машинного времени? Скорее всего имелся бейсик написанный для другой машины и задача состояла лишь в конверсии исходника.

И как из исходника удалось получить коды, чтобы показать их в работе в фирме MITS, куда Билл и Пол приехали, чтобы продать бейсик. Они что конвертировали в маш.коды вручную, и ни разу не ошиблись? Билл в интервью сказал: "По счастью бейсик заработал". Это значит, что перед покупкой в фирме MITS бейсик для Altair-8800 проверили в реале. И что было носителем? Допустим перфокарты, т.к Altair их поддерживал. Но что это было? Коды 8080 или ещё не странслированный и не проверенный текстовый исходник? На мой взгляд, на ассемблере вообше невозможно написать большую программу так, чтобы она сразу же заработала. Это просто ФАНТАСТИКА.

Описание Альтаир-8800 было в январском номере 1975 журнала 'Popular Electronics'. Когда Билл продал фирме MITS свой бейсик неизвестно. Но считать надо по реальным датам, а не верить рекламным сказкам. Если же эта басня реальна, то Билл Гейтс самый гениальный программист XX-века.

Привожу фрагмент, где видно какие операторы в моём TINY BASIC, чтобы сравнить с Altair-Basic. Если в Altair-Basic-е больше операторов, то легенда о Билле - точно фуфло.


; TINY BASIC (Привет Биллу Гейтсу!)

JP START
ERROR1: RST 18H
defb 13,10,'WHAT?',0
JR CCP

@EOL EQU 0 ; ТИПЫ ТОКЕНОВ
@DELIMIT EQU 1
@VARIABL EQU 2
@NUMBER EQU 3
@COMMAND EQU 4
@STRING EQU 5
@QUOTE EQU 6

TOKNLST:defb 80H,'STOP'
defb 81H,'PRINT TAB('
defb 82H,'INPUT'
defb 83H,'IF'
defb 84H,'THEN'
defb 85H,'ELSE'
defb 86H,'NEXT'
defb 87H,'GOTO'
defb 88H,'GOSUB'
defb 89H,'RETURN'
defb 8AH,'REM'
defb 8BH,'CALL'
defb 8CH,'POKE'
defb 8DH,'LET'
defb 8EH,'CURSOR'
defb 8FH,'PRINT'
defb 90H,'DATA'
defb 91H,'READ'
defb 92H,'CLS'
defb 93H,'ASK('
defb 94H,'COUT'
defb 95H,'SHOW'
defb 96H,'LIST'
defb 97H,'RUN'
defb 98H,'BYE'
defb 99H,'NEW'
defb 9AH,'END'
defb 9BH,'ARRAY'
defb 9CH,'PEEK('
defb 9DH,'BYTE'
defb 9EH,'WORD'
defb 9FH,'RESTORE'
defb 0A0H,'LOAD'
defb 0A1H,'SAVE'
defb 0A2H,'BLOAD'
defb 0A3H,'BSAVE'
defb 0A4H,'BEEP'
defb 0A5H,'DUMP'
defb 0A6H,'VARPTR('
defb 0FFH

; *****************************************
; * *
; * ПРЕОБРАЗУЕТ В СТРОКЕ КОМАНДЫ *
; * В ASCII-СИМВОЛАХ В ТОКЕНЫ *
; * *
; *****************************************

CNVTOKEN:
LD HL,STRBUF
LD DE,TMPBUF
PUSH DE
CNVTK0: LD (UKAZAT),HL
CNVVVV: CALL POISK
JR C,CNVTK0
PUSH DE
CALL GTTOKEN
POP DE
CP @NUMBER
JR Z,CNVTK2 ; ЧИСЛО
CP @QUOTE
JR Z,CNVTK3 ; КАВЫЧКА
CP @EOL
JR Z,CNVTK5 ; NULL
CP @VARIABLE
JR Z,CNVTK6 ; БУКВА
CP @DELIMIT
JR Z,CNVTK6 ; РАЗДЕЛИТЕЛЬ
JP ERROR

. . . . . . . . . .

весь исходник 45 Кб сюда не влезает
.

Vslav
30.11.2016, 01:16
На бумаге вообще невозможно ничего написать
Можно. Я в студенческие годы на бумажке, с ручным ассемблированием (ну не было у меня кросс-системы на СМ-4) написал контроллер клавиатуры на 8080, объемом примерно полтора килобайта (не более двух, там оно точно все в одну РФ2 влезло). Причем хекс отдавался товарищу, у которого был программатор, он его ручками набирал и прошивал :) Примерно за три итерации все заработало :) Этот контроллер у меня даже сохранился, могу пофотать, и даже где-то дока к нему есть самописная, с теми самыми ручками транслированными исходниками. А бейсик - он ненамного больше, как-то завели на бумажке первую версию, показали что живое, получили финансирование и уже на железке долизали до вменяемого состояния.

HardWareMan
30.11.2016, 07:10
дайте угадаю что будет с мнемониками и8080
mvsdjfgsdlj xx
mvnfdvsdjk xxxx,xxxx
xrjsdk xxxx
MVI R,#D8, где R имя регистра, от A до z. Гадание не ваш конек, займитесь чем-нибудь другим.


Очень сомневаюсь. Если это верно, то Вы не уступаете в мастерстве Биллу Гейтсу.

Без дисковода невозможно написать программу объёмом более 2К. Исходник для большего объёма кода просто не влезает в ОЗУ СПЕЦИАЛИСТА, а писать двумя-тремя фрагментами по 2К - это крайне муторно и реально так удавалось делать только при наличии электронного диска.

Как ни странно, я тоже занимался этим. И мой бейсик даже в Z80-кодах имел объём 5 Кб. А в кодах КР580 было бы больше. Не могли бы Вы продемонстрировать код или исходник Вашего бейсика для СПЕЦИАЛИСТА?
"Занимался этим" означает всего-лишь писать на бумажке, где вы там про бейсик увидели? Бейсик я не писал. Я писал драйвера ROM дисков с выводом меню. Я писал редактор уровней для разных игрушек и трейнер к ним же (например КОРТ или Lode Runner). Если вы не можете написать программу более 2к на Спеце это ваши проблемы. У меня был магнитофон и я некоторые вещи делал (тот же разбор и доработка ED^7000, а он на минутку 4к). Рад за Ваш бейсик в 5к на Z80, он гораздо меньше синклеровского. :) Но самый мощный (из мною виденных) для Спеца был Бейсик Практик (графические надстройки над микроном или Servis'ом - не помню), увеличивающий его объем и занимающий... 10кб!

Посмотрел список имеющихся у меня бейсиков под Спец. От 7,5к до 10к. Все имеют графику. У ваших 5к на Z80 графики я не вижу в токенах. Нет, я не хочу принизить ваш труд - это несомненно вызывает уважение. Но не настолько чтобы приписывать какие-то сверхдостижения. И на последок о Билле и его достижений. Почитайте, пожалуйста, на досуге вот этот тред (http://www.nedopc.org/forum/viewtopic.php?f=39&t=9630). Есть мнение, что вы для себя многое откроете.

barsik
30.11.2016, 10:51
Практической пользы от такого бейсика я и не хотел. Смысл такой работы в другом, - проверить легенду. И, думаю, сделал это для того, чтобы поднять себе самооценку.

Сами, подумайте, какая практическая польза от убогого бейсика, если уже 10 лет (Радио 01.1985) был доступен более приличный. Кроме того, я имел и мог набрать дампы нескольких хороших западных бейсиков (и адаптировать их, хотя они по 20 Кб и более).

Но сами бейсики меня никогда не интересовали. Я их попробовал в 1987 на РК и понял, что это - полная туфта для идиотов, всемирный обман. Считаю, что Кемени и Курцу в 1966 надо было сразу же оторвать руки (фигурально, я не кровожадный). Придумали чушь и убедили весь мир, что это полезно. Лучше бы придумали ПАСКАЛЬ, на 5 лет раньше Н.Вирта.

Бейсик-интерпретатор нанёс колоссальный вред, отвратив тысячи потенциальных виртуозов программирования. Я ещё понимаю бейсик-компилятор, сам им пользовался многократно и в CP/M, и QUICK-,TURBO-,POWER- бейсиками MSDOS. Впрочем тоже изврат, пригодный лишь для изготовления мелких инструментальных программок - типа разворот на 90' фонта для принтера, конвертировать фонт 8*8 в фонт 8*10, универсадьный редактор фонта и т.п.

В то время как программы на С и ПАСКАЛЕ больше ассемблерных в 4 раза, то программы от компиллятора бейсика - больше их ассемблерных эквивалентов раз в 10.

TINY на вражеском языке означает крошечный. Типовой размер TINY BASIC-а для 8-ми разрядки 4 Кб. Но есть совсем экономные (убогие) версии на 3 Кб [Klein R.D.: BASIC Interpreter, Francis Verlag, Muenchen 1980].

Вопреки общему правилу, размер имеет значение, если у тебя ОЗУ на 2114, 2102 или даже на динамических 2107 (4 Кбит !). Т.е если ОЗУ - считанные килобайты, как в ZX-80 и аналогичных.

Графика (даже псевдо) в стандарте TINY BASIC не предусмотрена (в те времена графических машин не было). Хотя вызов ассемблерных подпрограмм позволяет что-то сделать с экраном на ассемблере. Главный сюжет в TINY BASIC - что он очень крошечный и в то же время, какой-никакой, а всё-же ЯВУ, т.е средство для развлечения чайников.

С таких бейсиков начинались все самодельные и промышленные западные рэтро-ЭВМ "эконом-класса" (т.е с маленьким ОЗУ). Но посмотрите, есть реализация TINY BASIC даже для 68000. TINY BASIC "пихают" даже в контроллеры. На этапе отладки, "ковырять" железо гораздо быстрее, делая оперативно программки на крошечном бейсике, чем транслировать коды тестов и каждый раз заново прошивать их в ПЗУ.

Так вот, я не справился с задачей написания TINY BASIC-а, - не уложился в 4 Кб. Это потому-что я сделал CP/M версию, с записью файлов на диск, а TINY BASIC-и использовались, когда дисководы ещё считались матерным словом даже на Западе. Для загрузки программ в них обычно, использовались средства монитора (операторов LOAD, SAVE, RUN не было). Кроме того, я расширил диапазон INTEGER чисел - (в оригинале только -32767...32768) и добавил ещё пару операторов. Так что меня надо ругать не за то, что я что-то не сделал, а за то, что я сделал лишнее, не предусмотренное стандартом.

Практически в каждой западой стране были свои варианты РК86 (только это было на 8-10 лет раньше, чем в СССР и без ВГ75). Т.е число примитивных рэтро 8-ми разрядок в мире было довольно велико. И на большинстве из них стояли такие крошечные бейсики или бейсики уровня РК86. И все они были предназначены, главным образом, для того, чтобы отвращать людей от программирования. Если бы сразу во всех книгах для начинающих написали - "БЕЙСИК - туфта, изучай ассемблер", то программ для 8-ми разрядок было бы на порядок больше.

Насчёт СПЕЦИАЛИСТА и трансляции объектного кода в 4 Кб. Думаю это небольшое преувеличение в запале. Понимаю, и ничуть не осуждаю.

Я пользовался СПЕЦИАЛИСТОМ с раширением ОЗУ D000...EFFF и эл.диском 256К. Редактор SCREEN и ассемблер МИКРОН работали из верхнего ОЗУ. Т.е для исходника и буфера трансляции оставались все 36К, что на 4К больше, чем в пакете МИКРОН для СПЕЦИАЛИСТА. Даже, если удалить почти все комментарии (что очень плохо для сложной программы) и всё форматирование свести к пробелу перед мнемоникой, то удаётся транслировать только чуть больше 3 Кб. Как же Вам, имея только базовое ОЗУ, удавалось транслировать 4 кб?

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

А если это правда, то конечно некрасиво. Авторам надо было указать первоисточник. Славы и уважения это им бы не убавило. А теперь, что о них думать? - Схему и п/п-му инициализации ВГ75 стырили, бейсик стырили... Это грустно и за державу обидно.

Хотя есть ещё такая мысль, что указом ЦК КПСС авторам просто запретили указывать, что бейсик - "цельнотянутый" с Запада.

Vital72
30.11.2016, 11:15
О, да! Есть такое выражение "Программирование на Бейсике калечит мозг", хорошо, что я его уже почти забыл ))
Еще я видел, что пишут программы для микроконтроллеров на Бейсике, этот маразм мне не понять никогда.

Vslav
30.11.2016, 11:35
Т.е число примитивных ретро 8-ми разрядок в мире было очень велико. И на большинстве из них стояли такие же крошечные бейсики или бейсики уровня РК86. И все они были предназначены главным образом для того, чтобы отвращать людей от программирования. Если бы сразу во всех книгах для начинающих написали - БЕЙСИК - туфта, изучай ассемблер, то программ для 8-ми разрядок было бы на порядок больше.
Вы забываете один простой момент - простых пользователей на порядки больше чем программистов. И все эти "примитивные 8-разрядки" - они покупались и осваивались далеко не для программирования как такового. Прежде всего это был инструмент.

Могу привести пример из своей семьи. У меня отец был хирургом, писал диссертацию, по ваготомии (такой хирургический щадящий метод лечения язвы, в те времена ее преимущественно бактериальная природа была неизвестна). Тут мало разработать оригинальную хирургическую технику, надо еще научно показать эффективность метода. А для этого набирается статистика. С исходным материалом проблем не было - СА потоком поставляла 18-летних язвенников, а дальше начинались многолетние рассылки писем с опросными листами прооперированным пациентам - лет 10-20 после операции проводилось наблюдение. Физически это выливалось в два гросс-чемодана в нашей кладовке с 10 тысячами кодированных карточек пациентов, в каждой примерно 200 пунктов, и там цифрой закодировано значение (типа рецидив, самочувствие, анализы) и прочее. Собрать данные мало, их еще надо статистически обработать. И не один раз. Сначала это была Электроника Б30, потом МК61, потом была попытка напрячь новый госпитальный ВЦ с 1420, там процесс шел медленно, там же "программисты", они на ассемблере пишут, а это же ну гораздо сложнее чем абдоминальная и торакальная хирургия, да. Но, батя приехал в отпуск и увидел мой Орион, и сразу понял что весь его процесс статобработки можно очень сильно упростить. А главное - он увидел Бейсик. Да-да, в ассемблер хирургу и нафиг вникать не надо. А вот Бейсик у него "пошел" сразу, за пару часов он уже написал первую рабочую программку, и - главное, все это можно делать самому дома, в спокойной обстановке и никаких машинных залов, машинного времени и программистов :). Есть еще один пример - жена тоже диссертацию писала, и у нее тоже была куча экспериментальных данных, но это уже были тысячи файлов на XT-шке. Чем она их обрабатывала? Да майкрософтовским бейсиком же - она собиралась стать кфмн, а не программистом, поэтому бейсик ее вполне устроил :)

Ewgeny7
30.11.2016, 12:25
Программирование на Бейсике калечит мозг

Бейсик-интерпретатор нанёс колоссальный вред, отвратив тысячи потенциальных виртуозов программирования
вау... потише, посоны(С)
Не трогайте Бейсик, этот пушной зверь далеко не одного человека вывел в мир компьютеров, и микроконтроллеров - тоже.
Хоть я тоже ржу с бейсиков на AVR и PIC (Си там ИМХО не только полезнее, но и удобнее), но ретрокомпьютеры без Бейсика - это даже не грустно, это катастрофа. Игрушка должна иметь возможность дать новому юзеру чувство понимания и власти над железом. Бейсики с этим справляются как никакой другой язык.
Даже тот же ТиниБейсик (а я их перелопатил несколько штук, под разные процессоры, изучил изнутри) даст первоначальный пинок изучать свою "лошадку" глубже.


Как ни странно, я тоже занимался этим. И мой бейсик даже в Z80-кодах имел объём 5 Кб

Я хотел бы попросить Вас поделиться своим Тинибейсиком, можно даже на условиях "только тебе и больше никому". Просто я использую Бейсики в своих самодельных железках, было бы весьма интересно запустить и еще один вариант.

HardWareMan
30.11.2016, 13:15
Как же Вам, имея только базовое ОЗУ, удавалось транслировать 4 кб?
Странно, что не догадался про такой простой и естественный способ, как блочная компиляция. ЕМНИП она даже у Спектрума была (причем как с магнитофоном, так и с дисковертом). Правда, у нас сначала все было в ручную, а потом уже появился свой простенький линковщик.

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

А если это правда, то конечно некрасиво. Им надо было указать первоисточник. Славы и уважения это авторам бы не убавило. А теперь, что о них думать? - Схему и п/п-му инициализации ВГ75 стырили, бейсик стырили... Это грустно и за державу обидно.
А ничего сверхестественного в том, что у буржуев повторяются огромные куски кода. Этому есть объяснение: была такая методичка у них, в ней расписывали популярные алгоритмы для математики и прочего. Посему, большая часть ядра у всех так или иначе одинакова. Про эту методичку слышал от буржуев на каком-то буржуйском форуме, и вроде даже ее Интел распространяла.


Касаемо Барсиков да, согласен с предыдущими ораторами. Не стоит недооценивать. Ведь в первую очередь это настоящий ЯВУ. Во вторую - превращающий легким движением руки ЛК в суперкалькулятор. Между прочим, руководитель моего кружка на нем рисовал всякие графики для своих диссертаций. Это сейчас у всех PC есть с принтером и сканером. А тогда иметь программируемый калькулятор с приличными тригонометрическими функциями относительная роскошь. Тем более с графическим экраном 384х256, пусть и монохромным. К тому же, я сам начинал с Барсика (Микрон->Сервис->Практик), и только потом ассемблер. Он научил меня некоторым основам алгоритмов и организации программы вообще.

Ewgeny7
30.11.2016, 13:45
Касаемо Барсиков да, согласен с предыдущими ораторами
Я вот переправил все свои названия "Барсик" в "Бейсик", а то получается комичная ситуация, что мы разговариваем с Барсиком (barsik) о Барсиках (BASIC) :)

HardWareMan
30.11.2016, 13:52
Ewgeny7, больше не буду, но такова моя ассоциация на протяжении вот уже 30 лет... :)

Добавлю к своему предыдущему посту после упоминания про методичку: а как эти алгоритмы попали в наши Бейсики я не знаю. Либо так же была изначальная копия методички, либо разбирали по косточкам что-то из уже написанного. В любом случае, если оно работает и оптимально для архитектуры, то оно может быть похоже или даже скопировано.

Vital72
30.11.2016, 14:01
первый раз слышу, чтобы BASIC называли "барсик". где там "Р"? "Васиком" всегда называли

Ewgeny7
30.11.2016, 14:04
первый раз слышу, чтобы BASIC называли "барсик". где рам "Р"? "Васиком" всегда называли
Да ну, часто называют.
И я тоже обычно его Барсиком называю. Название созвучное и тёплое :)

barsik
30.11.2016, 14:56
поделитесь своим TINY BASIC-ом

Хорошо, но только через несколько дней. Мне требуется время, чтобы самому посмотреть, что это такое. Надо убрать несуразности и составить хотя-бы список операторов с параметрами (документации никакой нет и не было, и потому разбираться надо по исходнику). И главное в таком виде он абсолютно неприменим, т.к был сделан для экзотической ДОС ОРИОНА в банке 2 (а также использует RST, что нет в стандартной CP/M). А ДОС банки 2 для эмулятора нет. Их исходники для реального НГМД есть, но долго переделывать для эмулятора (не особо долго, но глупо тратить несколько часов, только ради того, чтобы посмотреть бейсик).

Поэтому хочу переделать этот бейсик так, чтобы его можно было использовать на любой CP/M. Кроме того, я могу сделать бездисковую версию: для чего CONIN/CONOUT надо переадресовать на стандартные входы F800 отчественных 8-ми разрядок и удалить дисковые операторы LOAD, BLOAD, SAVE, BSAVE (предполагаю, что LOAD грузит программу в токенах в буфер, а BLOAD вообще любой код на любой адрес), т.е убрать интерфейс с CP/M.

И встроить вместо этого ввод с МГ-ленты той-же командой LOAD в формате РК (что потребует 10 минут труда, т.к нужные фрагменты "под рукой") и СПЕЦИАЛИСТА или ОРИОНА, что потребует намного большего труда, т.к потребуется их предварительно "вырезать" из их ROM-BIOS. Всё это несложно (не более часа труда). Но проверить работу с МГ-лентой в реале я не смогу. Нет магнитофона, да и некогда возиться с реальным железом.

Могу ещё сделать "дисковую" версию для квазидиска ОРИОНА. Т.е для ОРИОНА в банке 0 или для РК86 у которого есть подпрограммы F836/39 в ПЗУ F800. По работе с файлами это будет аналог ORDOS BASIC ОРИОНА (не по работе операторов, это как раз отличается, а по месту где хранятся файлы и их формау). Это тоже не сложно, т.к для всего этого особо программировать, и даже думать, не надо. Надо просто добавить куски из других программ и странслировать. На IBM PC это делать намного удобнее, чем на ОРИОНЕ, где трансляция и линковка средней программы отнимала 5 минут и более, при непрерывном лязге дисковода. В то время как на PC трансляция это всего пол секунды.

Кроме того, я обнаружил, что TINY BASIC не закончен. В частности, не реализованы некоторые операторы. Может быть я смогу что-то добавить, но скорее всего нет. Т.к пока я готов сделать только косметические работы, что не требует никакого ума и отнимет мало времени. Не релизованы лишь дополнительные операторы, не входящие в стандарт TINY. А операторы TINY BASIC из прототипа все реализованы, там вообще всё было примитивно (например, IF не имеет ни THEN, ни ELSE)



XDEFUSR:
XARRAY:
XBSAVE:
RST 18H
defb 13,10,'NOT IMPLEMENTED',0
XEND:
JP OK

HardWareMan
30.11.2016, 18:08
Да ну, часто называют.
И я тоже обычно его Барсиком называю. Название созвучное и тёплое :)
А у современной молодежи только одна ассоциация:

https://youtu.be/4xD0SRXtXDI?t=36
:)

Ewgeny7
30.11.2016, 19:26
Поэтому хочу переделать этот бейсик так, чтобы его можно было использовать на любой CP/M.
Да можно сделать как на "публичных" бейсиках - обозначить векторы переходов по вызову функций, и порасти оно ромашками. Кому надо - переправит вектора на свои функции, заточенные под свое конкретное железо.
Ввод кнопАчек/вывод символа на экран - как и обычно, ориентировать на последовательный порт, терминал.

- - - Добавлено - - -


А у современной молодежи только одна ассоциация:
Не, ще не вмерли Барсики в селеньях! Котов-же полно :)

NEO SPECTRUMAN
01.12.2016, 01:24
MVI R,#D8, где R имя регистра, от A до z.

займитесь чем-нибудь другим

мне не нравится подход в реализации команд ld (hl),xx ld (bc),xx итд
а не какой то там ld a,a

для ld a,(*)
нам предлагают юзать всякие
MOV A,M
LDAX B
LDAX D
LDA xxxx
хотя по смыслу это одна операция

для загрузки пары регистров нам предлагают какието LXI LHLD LDFJKSD

и именно их я коверкал
и регистры бывают не только 8 битными они и могут группироваться

а больше всего меня добивает PUSH PSW



от A до z
хоть в каком то процессоре именуют регистры от А до З?????



Они как-то спокойно перешли с 8080 на 8086, а потом и на 80386. Не читали, наверное, цитируемый выше полет фантазии
может они его не читали
но результат таков что асм х86 - то еще г**фно

barsik
01.12.2016, 09:49
Мнемоника JP (HL) придумана каким то придурком

Я много лет программировал в мнемониках Z80 и мне даже в готову не приходило, что это команда чем-то нелогична и не вписывается в идеологию ZILOG. Пока Вы не стали "втискивать" мнемоники в таблицы и анализировать. Я вообще не понимаю о чём речь.

(HL) это всегда адрес на который указывает HL. Всё логично. Никаких нарушений логики нет. И ошибиться в пониманни работы команды невозможно. Так, что в любом случае следовало было придумать именно так, т.е руководствуясь интересами программиста, а не интересами "высшей логики". Согласитесь, что PCHL и соотвественно PCIY с PCIX были бы намного хуже и только без пользы увеличили бы число мнемоник. Затруднив жизнь программисту и облегчив работу компилятору.


Словами доказать превосходство одних мнемоник над другими нельзя

Словами это сделать трудно, и это показала выше лежащая дискуссия. Каждый остался при своём мнении. Зато легко выяснить правду опытным путём (практика - критерий истины).

Некоторые в дискуссии сбиваются на систему команд. Точнее стараются утверждать, что Z80 выигрывает за счёт самих команд, а не за счёт мнемоник. Т.е за счёт лучшего железа, а не счёт более удобного набора букв. Но буквально на соседней PAGE в одной реплике я специально указал, что набор команд используемый программистом на КР580 и его коллегой на Z80 - почти идентичны (считая JR и JP одинаковыми). И никто на это ничего не смог возразить (т.к трудно возражать на правду). Т.е выигрыш в скорости разработки ПО при Z80 - в грамотной мнемонике, а не в железе.

Таким образом речь идёт о том, что фанаты КР580 не хотят переходить на другую мнемонику, в силу устоявшихся привычек, а не потому что любят "родной отечественный процессор". Что, конечно, патриотично, но это не довод. Когда пользуемся ЭВМ, мы не задумываемся какой там процессор. Если не сказать человеку, что внутри Z80, а дать ассемблер КР580, то он будет программировать в мнемонике INTEL и никогда не узнает, что внутри Z80, пока не снимет крышку системного блока и не увидит как его подло обманули.

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

И раз в этой теме обсуждаются CPU, то есть патриотичный вопрос.

В 1990 в киевском НПО "Кристалл", где ранее "разработали" КР580 и периферию, сделали наконец наш ответ проклятому Западу. Выпустили первый отечественный 8-ми разрядный CPU, который уже не был "цельно-тянутым", а был дальнейшим развитием КР580. В нём был второй набор регистров HL, что облегчило бы программирование (т.к для загрузки из ОЗУ словом не надо было бы изворачиваться с EX DE,HL). Очевидно на введение полноценного IY сил не хватило. Было одно питание, полная совместимость с КР580 (в т.ч по ногам) и ещё масса всего полезного (о чём не помню). Такой процессор, конечно, уступал Z80 по железу, но по удобству программирования лишь немного. У меня был полный "дата-шит" на него. И я видел эти процессоры живьём в 1992. Их привозили с Украины и продавали "на точке". Но никто не брал. Я тоже не купил, о чём жалею. Хотел бы из интереса найти описание и параметры этого процессора в Интернете. Но увы, забыл как он назывался. Может быть 1821 или иначе. Не помню даже, - была в имени цифра 80 или нет. Будет патриотично разместить эти данные в WIKI (если это ещё не сделано).

HardWareMan
01.12.2016, 10:23
мне не нравится подход в реализации команд ld (hl),xx ld (bc),xx итд
а не какой то там ld a,a
Вы уже сами запутались, что именно вам нравится. Последствия безликих мнемоник Z80?

для ld a,(*)
нам предлагают юзать всякие
MOV A,M
LDAX B
LDAX D
LDA xxxx
хотя по смыслу это одна операция
Потому что они разные. LDA это непосредственная загрузка статичными данными из памяти. LDAX это индексная загрузка из памяти по значению регистровой пары, а достоинства регистра М (значение памяти по адресу в HL) вообще нельзя недооценивать. Если бы это были полностью одинаковые команды, они бы были в одной группе опкодов в HEX карте опкодов. Одинаковые это MOV. A0,<EAX> у М68К.


для загрузки пары регистров нам предлагают какието LXI LHLD LDFJKSD

и именно их я коверкал
и регистры бывают не только 8 битными они и могут группироваться
Почему это какие-то? LHLD относится только к HL, ибо он является основой для регистра М. LDFJKSD это все ваши вольные думки. И еще, если команда использует RP то нет необходимости ставить 2 буквы в названии этой самой RP. Данная необходимость родилась именно из-за обезличенности этой вашей LD (я бы ее записал в разряд макроса вообще, а не команды как таковой).

а больше всего меня добивает PUSH PSW
Чем вас напрягает [b]Processor State Word? Слово это 2 байта. А 2 байта это аккумулятор и флаги (и это действительно слово состояния процессора в программной модели). Или вы не изучаете программную модель а тупо зубрите команды и айда писать?

хоть в каком то процессоре именуют регистры от А до З?????
Т.е. вот это я писал?


а понадобиться
ввести кучу новых регистров
новые регистровые пары через которые можно будет читать сохранять
новые 16 битные 32 битные регистры
Вы если иногда теряете нить разговора хоть отматывайте назад, что-ли. Освежайте в памяти. Да и что за бред с 32х битными регистрами на 8ми битной системе? Или вы уже примеряете 8ми битные мнемоники от i8080/Z80 на 32 и не дай Б-г 64 битные системы? А посмотреть как дела у 32 и 64 битных систем можете по ARMу. Там все так же просто и логично, без унылых LD (т.е. LD там есть в чистом виде, но не для всех команд пересылки).

может они его не читали
но результат таков что асм х86 - то еще г**фно
Опять же не читали но осуждаем? Сложным он стал не от добавления регистров и/или наличия тысячи команд на одно действие. У х86 уже есть понятия EA (погуглите, если вы и этого не знаете), поэтому вместо этой вашей LD там нормальный MOV. А в остальном там сложность накатила из-за добавления множества реальных команд по мере выхода новых поколений процессоров. А делалось это сознательно, чтобы старый софт работал (совместимость вверх).

- - - Добавлено - - -


Некоторые в дискуссии сбиваются на систему команд. Точнее стараются утверждать, что Z80 выигрывает за счёт самих команд, а не за счёт мнемоник. Т.е за счёт лучшего железа, а не счёт более удобного набора букв. Но буквально на соседней PAGE в одной реплике я специально указал, что набор команд используемый программистом на КР580 и его коллегой на Z80 - почти идентичны (считая JR и JP одинаковыми). И никто на это ничего не смог возразить (т.к трудно возражать на правду). Т.е выигрыш в скорости разработки ПО при Z80 - в грамотной мнемонике, а не в железе.
Именно так и есть. Все остальное ваши выдумки. Когда предложили Z80, то к нему предложили и мнемоники (что логично). И задействовать все возможности процессора можно только на его родном "языке" (готов поспорить что уже даже тогда почти никто не писал в кодах напрямую, а кто писал тот явно использовал родные для процессора мнемоники). И развитие этой вашей CP/M как раз и получила из-за нового "мотора" с приличными макросами переброски данных без установки DMA чипа (хотя такой тоже выпускался). Это историческая правда. Это как в разных типах транспорта один и тот же рычаг с одним и тем же логическим действием назван по-разному. Но вы принимаете правила игры и начинаете его называть согласно типу транспорта а не так как вам удобно, верно?

Таким образом речь идёт о том, что фанаты КР580 не хотят переходить на другую мнемонику, в силу устоявшихся привычек, а не потому что любят "родной отечественный процессор". Что, конечно, патриотично, но это не довод. Когда пользуемся ЭВМ, мы не задумываемся какой там процессор. Если не сказать человеку, что внутри Z80, а дать ассемблер КР580, то он будет программировать в мнемонике INTEL и никогда не узнает, что внутри Z80, пока не снимет крышку системного блока и не увидит как его подло обманули.
Что за бред я только что прочитал? В то время процессор денег стоил. Не кислых - большую часть самого компьютера. И вы действительно думаете, что юзер, купивший процессор и отдавший свои кровные, не будет знать что ему продали? Да даже сейчас, многие люди далекие от программирования тем не менее знают, что за процессор установлен в их PC.

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

Vslav
01.12.2016, 10:55
Словами это сделать трудно, и это показала выше лежащая дискуссия. Каждый остался при своём мнении. Зато легко выяснить правду опытным путём (практика - критерий истины).

А разве в holy war может быть по-другому? Тут нет истины, вместо него набор "правд" - у каждого своя.



Может быть 1821 или иначе.

Это был 580ВМ1, у меня появился экземпляр, как-нибудь открою и сделаю фото кристалла, посмотрим что там внутри.

Vladimir_S
01.12.2016, 11:01
посмотрим что там внутри.
Неужели мнемоники?

Vslav
01.12.2016, 12:11
Неужели мнемоники?
Ну я фотографии выложу в открытый доступ, поищете желаемое :)

Ewgeny7
01.12.2016, 12:26
КР580ВМ1 он назывался?
Я тоже дернулся было за ним поизучать, но их полторы штуки в мире осталось, и те - у кащеев/коллекционеров.

- - - Добавлено - - -


Неужели мнемоники?
Там - правда. Одна на всех.

barsik
01.12.2016, 14:56
HardWareMan. В последнем посте Вы превзошли самого себя. Возможно, это пик Вашего творчества. Но, кто знает, может быть Вы напишете ещё смешнее. Я готов к обсуждениям и даже к полемике, но когда ответы берутся c потолка, что можно возразить? Я так понял, что Вы очень хотели возразить, но не знали что.

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


И развитие эта Ваша CP/M как раз и получила из-за нового "мотора" с приличными макросами переброски данных без установки DMA чипа (хотя такой тоже выпускался). Это историческая правда.

Это шедевр.

Какое развитие получила CP/M? Новый мотор? Это надо думать, Z80. Прочитав про приличные макросы для Z80, служашие для переброски баз данных без установки DMA чипа, я понял как мало я знаю. Что это что-то ДАЛЕКО ВНЕ сферы моих скромных познаний на тему Z80.

Под "DMA чипа" Вы имеете ввиду Z80DMA? Макросы, надо думать, - это макрокоманды?

В итоге перевод такой: "Макрокоманды для Z80, не использующие Z80DMA, существенно способствовали развитию CP/M."

Как эта фраза связана с темой выбора процессора для новодела РК86? И какой-же версии CP/M так здорово помогли развиться Z80-макросы переброски данных без Z80DMA.

Я не понял зачем нам макросы, чтобы перебрасывать данные, если есть команда LDIR. Не ясно о переброске каких данных, куда, и с какой целью, идёт речь. И как вообще это относится к теме мнемоник Z80?

И главное, в чём историческая правда?


эта Ваша CP/M

Вобще-то CP/M не моя, хотя я её дизассемблировал, разобрал и документировал. Но написал её Гарри Килделл. И что странно в 1973 году, что меня всегда удивляло. Т.к 8080 был представлен только в декабре 1973 (первые поставки 8080 весной 74). Таким образом Гарри Килделл сумел раздобыть 8080 и написать версию CP/M 1.0 в сжатые сроки. И ещё до 31 декабря сумел заявить об этом. Очевидно ему в этом очень помогли вышеупомянутые макросы без DMA.


Что за бред я только что прочитал?

Во-первых, так грубо не надо. Можно мягче, например так "не совсем вразумительные тексты, смысл которых я не понял. Не могли бы это разъяснить подробнее".

И пожалуйста, конкретно, какое моё предложение показалось Вам бредом?


В то время CPU стоил дорого

При чём здесь конкретика? О времени у меня нет ни слова. Это абстрактная фраза, с целью проиллюстрировать фанатам КР580, что они ничего не теряют и могут просто забыть о том, какой процессор. И программировать, как и ранее для КР580. Тем более, что когда ты программируешь, то не помнишь и не думаешь о том, для какого процессора программа.

Для КР580 я программирую в мнемонике Z80 и префиксные команды Z80 (кромe SHLD RR) не использую (они ничего не дают, ни в плане скорости, ни в объёме кода). То же самое я делаю, когда программирую для Z80, причём за счёт макрокоманд программа для Z80 транслируется и для КР580 (Z80 команды автоматически заменяются на эмулируюший код КР580).



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

Наверное, потеря памяти это заразно. Покажите мне пост где сказано, что выбор процессора в новоделе обусловлен чисто мнемониками. Сможете?

Вот это действительно бред. Бессвязные предложения.


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

В чем смысл этого бессмысленного предложения? Моя приведённая Вами цитата никак с Вашим предложением не связана. С чем Вы спорите? На какой вопрос отвечаете? Почему я должен искать в посте и показывать Вам придуманное Вами же утверждение? И чьё оно? Если не моё, то при чём здесь я?

Так спрашивают только, когда кто-то приписывает другому человеку фразу, что он реально не писал. Тогда и спрашивают, покажите, где я это писал? Чтобы это спрашивать, необходимо привести мою цитату, где бы я утверждал обратное и только после неё давать такой коммент.


Наверное, потеря памяти - это заразно

Перед тем, как такое писать, надо привести цитату в которой я что-то забыл. В противном случае, это просто неспровоцированное хамство.


Всё остальное - ваши выдумки Что всё остальное? И что выдумки?

HardWareMan
01.12.2016, 16:01
Под "DMA чипа" Вы имеете ввиду Z80DMA? Макросы, надо думать, - это макрокоманды?
А Вы не знали, что у Z80 есть макрокоманды? Как же вы им пользуетесь то? Подскажу: префикс 0xED. У Интела такое появилось только у х86, и то в виде префикса REP.

В итоге перевод такой: "Макрокоманды для Z80, не использующие Z80DMA, существенно способствовали развитию CP/M."
А как еще я должен понимать INIR/OTIR как не суррогат DMA? Ой, это же подсказка к предыдущему вопросу, ну да ладно.

Я не понял зачем нам макросы, чтобы перебрасывать данные, если есть команда LDIR. Не ясно о переброске каких данных, куда, и с какой целью, идёт речь. И как вообще это относится к теме мнемоник Z80?
Эта команда - макрос. Не ассемблерный, к которым привыкли программисты, а выполненный в железе. Пояснил, чтобы не цеплялись за слова. Это натуральный железный макрос. И, как я уже говорил, у х86 он тоже есть, в виде префикса REP.

И главное, в чём историческая правда?
В том, что наличие некоторых расширенных команд Z80 в своем время развило CP/M как операционную систему, задача которой чаще всего это рутинное копирование больших блоков данных. Есть мнение (сугубо личное), что они и появились специально для этого, как в свое время появились у 80386 команды переключения контекста задачи, эдакая оптимизация под многозадачность.

Вобще-то CP/M не моя, хотя я её дизассемблировал, разобрал и документировал. Но написал её Гарри Килделл. И что странно в 1973 году, что меня всегда удивляло. Т.к 8080 был представлен только в декабре 1973 (первые поставки 8080 весной 74). Таким образом Гарри Килделл сумел раздобыть 8080 и написать версию CP/M 1.0 в сжатые сроки. И ещё до 31 декабря сумел заявить об этом. Очевидно ему в этом очень помогли вышеупомянутые макросы без DMA.
Я говорил не "написали под" а "развили из-за". Это разные вещи, верно?

Во-первых, так грубо не надо. Можно мягче, например так "не совсем вразумительные тексты, смысл которых я не понял. Не могли бы это разъяснить подробнее".
Можно, я не против.

И пожалуйста, конкретно, какое моё предложение показалось Вам бредом?
Весь абзац. Перечитайте еще раз и попробуйте сами его понять.

При чём здесь конкретика? О времени у меня нет ни слова. Это абстрактная фраза, с целью проиллюстрировать фанатам КР580, что они ничего не теряют и могут просто забыть о том, какой процессор. И программировать, как и ранее для КР580. Тем более, что когда ты программируешь, то не помнишь и не думаешь о том, для какого процессора программа.
Подразумевалось время актуальности обсуждаемых процессоров, упустил, думал это очевидно. А вот вторая часть абзаца опять бред. Я всегда знаю для какого процессора пишу программу, вне зависимости от уровня выбранного языка. Да и не только я, это знают все толковые программисты, многие из которых однозначно лучше меня.

Вот это действительно бред. Бессвязные предложения.
Т.е. ваше утверждение, что "И вся дискуссия здесь из-за того, что некоторые люди по надуманным причинам не хотят ставить в новодел РК86 с улучшенной архитектурой процессор Z80, аргументируя тем, что мнемоника КР580 им нравится больше и тем, что КР580 роднее." (важное выделил) и мой ответ на это утверждение "Покажите мне пост где сказано, что выбор процессора в новоделе обусловлен чисто мнемониками. Сможете?" для вас является бредом и бессвязными предложениями?

В чем смысл этого бессмысленного предложения? Моя приведённая Вами цитата никак с Вашим предложением не связана. С чем Вы спорите? На какой вопрос отвечаете? Почему я должен искать в посте и показывать Вам придуманное Вами же утверждение? И чьё оно? Если не моё, то при чём здесь я?
Так спрашивают только, когда кто-то приписывает другому человеку фразу, что он реально не писал. Тогда и спрашивают, покажите, где я это писал? Чтобы это спрашивать, необходимо привести мою цитату, где бы я утверждал обратное и только после неё давать такой коммент.
О, скажите, Вы признаете, что это Вы написали (http://zx-pk.ru/threads/27125-modulnyj-radio-86rk.html?p=892158&viewfull=1#post892158)? Скриншот для исключения правки:
http://savepic.ru/12400341m.png (http://savepic.ru/12400341.png)
Это же тоже Вы писали (http://zx-pk.ru/threads/27139-mnemoniki-i8080-vs-z80.html?p=892597&viewfull=1#post892597), а не админы вам пририсовали?
http://savepic.ru/12405460m.png (http://savepic.ru/12405460.png)
Таком образом, говоря, что "некоторые люди по надуманным причинам не хотят ставить в новодел РК86 с улучшенной архитектурой процессор Z80, аргументируя тем, что мнемоника КР580 им нравится больше и тем, что КР580 роднее" Вы имеете в виду себя и только себя, при этом позабыв о том факте, что именно Вы это и сказали. Потому как только Вы предлагали сменить процессор на Z80 аргументируя, что мнемоники ВМ80 устарели и заброшены. Я все правильно понял? И вообще, аргумент выбора процессора по мнемоникам был только у Вас, я специально перелистал обе ветки. Я же предлагал выбрать процессор только исходя из наличествующего софта, и не называл конкретный. При этом, многий софт ВМ80 требует допилки под Z80 гораздо больше, упомянутых вами IN/OUT. Полистайте форум, тут было. Подсказка: коррекция Бейсиков.

Перед тем, как такое писать, надо привести цитату в которой я что-то забыл. В противном случае, это просто неспровоцированное хамство.
Нотариально заверенный скриншот и пояснение привел.

Далее считаю непродуктивным продолжать беседу с Вами, т.к. вижу в вас фанатика Z80, а стало быть к разумным объяснениям Вы все равно не прислушаетесь. Не считайте это оскорблением, все так или иначе от чего-то фанатеют.

perestoronin
03.12.2016, 11:05
Случаем никто не набивал в wiki разметке таблички с мнемониками и описаниями всех команд известных ретро-процессоров?
Или может уже кто-то где-то выложил подобное?
Так же красиво раскрашенное как в журнале Радио к примеру?

HardWareMan
03.12.2016, 11:53
Отдельно страничку для ВМ80 я видел (как в журнале, но только HEX коды, не описание). А вики не видел, но было бы здорово, на самом деле то.

Denn
08.12.2016, 19:08
КР580 самый лучший процессор, свой, отечественный, пусть и немного стыренный. :v2_dizzy_army: :v2_tong2:

К сожалению, чуть менее, чем полностью стыренный...

Ewgeny7
08.12.2016, 19:19
К сожалению, чуть менее, чем полностью стыренный...
Можно было и не уточнять :)

NEO SPECTRUMAN
08.12.2016, 20:27
А в остальном там сложность накатила из-за добавления множества реальных команд по мере выхода новых поколений процессоров
ну это и есть проблема
набор команд местами выглядит не как расширение
а как костыли
(ну да зачем же нужен асм.
писать же нужно на жабе и чтоб потом все это выполнялось на эмуляторе пылесоса
(а потом 4ГГцный проц а курсор в какой нить игре обновляется со скоростью 3фпс да еще и с задержкой(такая "фреймовость" аж прет)))

хотя наверное если бы до сих пор развивались 6502 8080
они бы выглядели как...

HardWareMan
08.12.2016, 21:08
К сожалению, чуть менее, чем полностью стыренный...
Но осознанный, переработанный и с убранными закладками. Я про защиту от тупого фотографирования: т.н. depleted транзисторы. А само осознание это многого стоит.

Pyk
09.12.2016, 23:37
Делал в свое время просто для себя табличку опкодов 8080.
Но раз уж зашла речь об этом, представляю 2 варианта - pdf и tif (300 dpi) - вдруг кому-то понравится.
Я себе заламинировал, лежит под рукой, иногда подглядываю.
Где-то был и исходник в excel, если нужен - найду.

Ссылки:
PDF (http://emu80.org/files/op8080.pdf)
TIF (http://emu80.org/files/op8080.tif)

Vital72
10.12.2016, 03:12
Та, что в журнале "Радио" публиковалась мне больше нравится

HardWareMan
10.12.2016, 11:47
Та, что в журнале "Радио" публиковалась мне больше нравится
Я ее даже перерисовывал в векторе.

fifan
10.12.2016, 11:50
Я ее даже перерисовывал в векторе.
Но потерял?

HardWareMan
10.12.2016, 13:35
Но потерял?
Почему это? Я уж давал их тут, но мне не влом повториться. Пользуйтесь на здоровье. (https://yadi.sk/d/sIr0OsM832r23Z)
5899858999

barsik
10.12.2016, 22:09
К сожалению, КР580 - менее, чем полностью стыренный...

Так вот почему у меня не получается адресоваться ко всем 512 портам (а только к 256). Оказывается разработчики КР580 из киевского НПО "Кристалл" порты просто недотырили.

http://matthieu.benoit.free.fr/cross/data_sheets/D8080A.pdf

Ewgeny7
10.12.2016, 23:30
Так вот почему у меня не получается адресоваться ко всем 512 портам (а только к 256)
А? Чо? Адрес в девятибитном байте указывается?

perestoronin
10.12.2016, 23:40
Пользуйтесь на здоровье.
Нажмите на изображение для увеличения. Название: M1.jpg Просмотров: 29 Размер: 94.0 Кб ID: 58998Нажмите на изображение для увеличения. Название: M2.jpg Просмотров: 32 Размер: 102.3 Кб ID: 58999
Такую красоту табличную, да в формате wiki разметки, да на местную вики в том числе.

barsik
11.12.2016, 00:13
Адрес порта в девятибитном байте?
Я верю вражескому 'DATA sheet'-у. Там чётко написано 512. Если бы это было ошибкой, то за 40 лет уж кто-нибудь бы исправил.

Возможно они используют в качестве 9-го бита выход INTE (16 нога). То есть они должны были написать "А если прерывания не используются, то можно адресоваться к 128 Кб памяти и 512 портам". Но для обращения к 128 Кб памяти надо "строить архитектуру", чтобы был некоммутируемый участок памяти, а с портами проще.

Если бы я проектировал 8080, то выводил бы на выход INTE в маш.такте команд IN/OUT содержтимое флага CY, т.к он легко ставится программно командой 'SCF', а сбрасывается командой 'OR A', отчего эти команды можно было объявить префиксами для команд IN/OUT в схемах использующих 512 портов.

А может ещё как-то. Надо читать документацию на 8080, где описаны сами команды IN/OUT.

Vslav
11.12.2016, 00:29
Я верю вражескому 'DATA sheet'-у. Там чётко написано 512.
Даташиту верить надо, но и читать надо не только первую страницу. Потому что на третьей написано сразу в начале таблички - "up to 256 input and 256 output devices". 512 = 256 портов чтения + 256 портов записи, а всего 512, угу :)

svofski
11.12.2016, 00:33
А? Чо? Адрес в девятибитном байте указывается?

Не, это такой странный способ выражаться у документаторов фирмы Интел. 256 устройств ввода и 256 вывода, итого 512. Странно, что памяти они не написали 128К, ведь записывать тоже можно одну память, а считывать другую =)
Из бессменного MCS-80 User's Manual (http://bitsavers.trailing-edge.com/pdf/intel/MCS80/98-153D__MCS-80_Users_Manual_Oct77.pdf):
Стр. 6.2


A15..A0 (output three-state)
ADDRESS BUS; the address bus provides the address to memory (up to 64K 8-bit words) or denotes the I/O device number for up to 256 input and 256 output devices. A0 is the least significant address bit.

И, на всякий случай, сноска 18 из детальной таблицы на стр 2-20:


I/O sub-cycle: the I/O port's 8-bit select code is duplicated on address lines 0-7 (A0-7) and 8-15 (A8-15).

barsik
11.12.2016, 01:06
Тогда надо было писать так.

512 Directly addressed I-ports and O-ports

А не дурачить людей "игрой слов". Таким образом это рекламный трюк основаный на неконкретности английского языка и вольно трактуемой терминологии. Хитро написали. Не столько-то адресов, а именно портов. В отечественной литературе такой вольной трактовки не было. Честно писали, что 256 портов ввода/вывода и не дурачили людей.

Тогда остаётся вопрос. Что же в КР580 недотырили? Чем прототип отличается?

HardWareMan
11.12.2016, 08:23
Не, это такой странный способ выражаться у документаторов фирмы Интел. 256 устройств ввода и 256 вывода, итого 512. Странно, что памяти они не написали 128К, ведь записывать тоже можно одну память, а считывать другую =)
Не 128к а 256к. обращение к стэку четко отделяется через слово состояния. А значит еще +64кR и +64кW. :)

- - - Добавлено - - -


Тогда надо было писать так.

512 Directly addressed I-ports and O-ports

А не дурачить людей "игрой слов". Таким образом это рекламный трюк основаный на неконкретности английского языка и вольно трактуемой терминологии. Хитро написали. Не столько-то адресов, а именно портов. В отечественной литературе такой вольной трактовки не было. Честно писали, что 256 портов ввода/вывода и не дурачили людей.
А не вам решать что им писать в документе на их продукт. Порты ввода это порты ввода. А порты вывода, соответственно, вывода. Это разные понятия и американцы с их юридическими заморочками правы писать 512. А то, что некоторые могут быть объединены в двунаправленный порт ввода/вывода это фича, а не баг.

Тогда остаётся вопрос. Что же в КР580 недотырили? Чем прототип отличается?
Depleted transistors. Но они и нафиг не нужны - только кремний тратить на них.

- - - Добавлено - - -


А может ещё как-то. Надо читать документацию на 8080, где описаны сами команды IN/OUT.
Доставлено:
59002
Я думаю, больше вопросов, откуда берется цифра 512 нет? Ибо заявлено, что:

Я верю вражескому 'DATA sheet'-у.

Vital72
11.12.2016, 18:45
HardWareMan, для Z80 ничего такого не рисовал?

HardWareMan
11.12.2016, 19:29
HardWareMan, для Z80 ничего такого не рисовал?
А разве для него было что-то кроме скучных и унылых обоев табличек?

Titus
11.12.2016, 22:47
Внесу свои 5 копеек в тему.
Изначально я начинал программировать на 580ВМ80 на РК-шке и Специалисте. Но потом у меня появился спек, и быстро переучившись на новые мнемоники (кстати, оказавшиеся весьма удобными и логичными), я категорически разучился понимать катавасию из мнемоник 8080) Теперь, когда надо повозиться с кодом для 8080, понимаю его только через призму ассемблера Z80.

HardWareMan
11.12.2016, 23:10
Просто следует тренировать свою память и делать зарядку для ума. Иначе мозги реально жиром заплывут. :)

Titus
11.12.2016, 23:24
Просто следует тренировать свою память и делать зарядку для ума. Иначе мозги реально жиром заплывут. :)
А кто сказал, что я этого не делаю)

HardWareMan
12.12.2016, 09:08
А кто сказал, что я этого не делаю)
Я так понял, что ты это забыл (или забыл сказать). :) Вместе с мнемониками.

Denn
13.12.2016, 17:30
По теме мнемоник. Разумеется, это вопрос из разряда "фломастеров".
Я, например, начинал с интеловских, они для меня родные и понятные. Если брать аналогию из языков разговорных, я ими "думаю".

Два раза заставлял себя осилить "вражеские" мнемоники Z80, не смог, мозг отторгает. Опять же, вижу аналогию с разговорным языком: если бы у нас слова были "почти одинаковыми", и отличались "парой символов" в конце, то учить такой язык лично мне было бы крайне трудно, а точнее - невозможно.

Ловлю себя на том, что разнообразие интеловских мнемоник зачастую работает как комментарии к коду: смотрю на листинг и сразу понимаю о чём речь, где инициализация параметров цикла (LXI..), а где тело (LDAX/STAX/MOV), причём по последовательности последних сразу понятно из "базового" [HL] идёт взятие данных (MOV - первый) или из какого-то другого регистра (первый LDAX..). Вплоть до того, что по отличию вводной "LXI.." или "LHLD.." мгновенно понимаю какая у меня подпрограмма! Если бы было сухое "LD..", то пришлось бы каждый раз вникать.

Портянка из визуально совершенно одинаковых LD х,х лично для меня сродни дампу машинных кодов. Впрочем, в последних я когда-то программировал, и там как раз визуально таки были отличия (все эти конструкции "21 хх хх", "С3 хх хх", "CD хх хх", "E5 D5 C5" и т.п. читаются на раз.

Как-то так :v2_dizzy_snowball:

Ewgeny7
13.12.2016, 18:31
все эти конструкции "21 хх хх", "С3 хх хх", "CD хх хх", "E5 D5 C5" и т.п. читаются на раз
Верно, есть такое.
Прекрасно читается 3E, C2, C9, 11, FE и прочие коды. Помня их, можно даже несложные программы прямо в машкоде писать.

HardWareMan
13.12.2016, 18:33
Ловлю себя на том, что разнообразие интеловских мнемоник зачастую работает как комментарии к коду: смотрю на листинг и сразу понимаю о чём речь, где инициализация параметров цикла (LXI..), а где тело (LDAX/STAX/MOV), причём по последовательности последних сразу понятно из "базового" [HL] идёт взятие данных (MOV - первый) или из какого-то другого регистра (первый LDAX..). Вплоть до того, что по отличию вводной "LXI.." или "LHLD.." мгновенно понимаю какая у меня подпрограмма! Если бы было сухое "LD..", то пришлось бы каждый раз вникать.
Ну вот я уже говорил ранее: в интельных мнемониках программу можно читать. В зилоговских ее надо дополнительно распарсивать. Так что разрабы были умные, вопреки стенаниям barsik'а, они заботились о программистах тоже, ибо чтение листинга это тоже в какой-то степени ассемблирование. И если программа бездушная возьмет скоростью, то живые мозги уже начнут спотыкаться (и требовать обязательного тщательного комментирования).

Портянка из визуально совершенно одинаковых LD х,х лично для меня сродни дампу машинных кодов. Впрочем, в последних я когда-то программировал, и там как раз визуально таки были отличия (все эти конструкции "21 хх хх", "С3 хх хх", "CD хх хх", "E5 D5 C5" и т.п. читаются на раз.
Я кстати тоже, когда на любой хекс смотрю сразу глаза цепляются и синхронизируются к командам ВМ80, даже там, где это не надо. :)
http://www.justkino.org/uploads/posts/2012-04/1333915075_skrin3.jpg

Denn
13.12.2016, 18:56
даже там, где это не надо.

Где не надо, там обычно нет привычных конструкций, так что глазу особо не за что цепляться... /-)
Даже если вижу "FE 0D", то глаз уже автоматом "просканировал" окружение и не нашёл там подходящего контекста (как правило это С2 хх хх опосля и CD 03 F8 до..) ;)

- - - Добавлено - - -


заботились о программистах тоже, ибо чтение листинга это тоже в какой-то степени ассемблирование.

Имхо, скорее всего действительно уши первых мнемоник растут из "упрощения жизни" ассемблеру, а не для удобства программиста. Но "так случилось", что человекам (некоторым) это ещё и удобнее :)

Error404
13.12.2016, 19:01
Собственно, все четко поделились на тех кому ближе языки низкого уровня (и им ближе Интеловские мнемоники), и кому ближе языки высокого уровня (и соответственно, Z80). Форумные проекты участников это четко иллюстрируют, кстати. Пишущим на ЯВУ довольно странно страдать оттого что присвоение всегда делается одни и тем же знаком "=" независимо от типов присваиваемых операндов, их подобная лаконичность в коде Z80 (LD) не смущает, а наоборот воспринимается как удобство, а десять разных операторов присвоения воспринимают как нонсенс, а не удобство. Как то так?

Denn
13.12.2016, 19:07
Собственно, все четко поделились на тех кому ближе языки низкого уровня (и им ближе Интеловские мнемоники), и кому ближе языки высокого уровня (и соответственно, Z80).

Не соглашусь. Одна половинка меня любит кодить на "Микроне", а вторая распрекрасно "хоббится" на С++Билдере. Одно другому никак не мешает, и никаких сопоставлений между ASSM'ом и ЯВУ мозг не проводит. Иногда на Си приходится вставлять код на ASSM'е, правда сейчас значительно реже (отпала проблема нехватки быстродействия писюков :)).

HardWareMan
13.12.2016, 19:52
Где не надо, там обычно нет привычных конструкций, так что глазу особо не за что цепляться... /-)
Даже если вижу "FE 0D", то глаз уже автоматом "просканировал" окружение и не нашёл там подходящего контекста (как правило это С2 хх хх опосля и CD 03 F8 до..) ;)
Это потому, что ты либо не писал что-то вне экологии Ориона/РК/специалиста для i8080/Z80, либо даже просто не ковырял "тяжелые" программы для упомянутых ЛК. Вот например вполне осмысленный код:
http://savepic.net/8712488.png
Совпадение? Не думаю! Именно. Как ты думаешь, чей это код (подсказка на скрине)?

Denn
13.12.2016, 23:46
HardWareMan, как я вижу выделенное на скрине. С9 - это RET, 47 не помню, хотя наверное выделено неверно: там 01 С9 47, т.е. в ВС или в DE грузим 47С9h. Далее из 4000h читаем в аккум, последний сдвигаем вероятно вправо (делим пополам, если по-русски), потом по какой-то кондиции флага <C> делаем RET, далее МУВ А,Б, затем CALL 1DAh и JMP 0B35h. Ещё что-то помню даже :)

А писал я только для Орионов и для Синклера-48. "Читал" ещё РК86, Партнёр, АОН на ВМ80, ну и синклеровское всякое.

Ewgeny7
14.12.2016, 01:06
Злостно воспользовался служебным положением и вытащил тему из "Радио 86РК", где ей в общем-то и не место. Пускай место будет тут.

- - - Добавлено - - -

Поведаю о нескольких командах столь ожидаемого мною процессора i8008.

Есть у него группа команд прямой пересылки данных из регистра в регистр. Ну, как и у всех вменяемых процессоров. Моторолла МС6800 завистливо выглядывает изза угла со своими ДВУМЯ командами TAB и TBA :)
В качестве первой буквы мнемоники там взяли L(oad), что уже само по себе как-то странно... Где же MOVе? Ну да фиг с ним.
Думаете, построение мнемоник так идет типа Lxx A,B?
А вот фигу. Было сделано интересней.
Грузим в регистр А значение другого регистра или число:

LAA
LAB
LAC
LAD
LAE
LAH
LAL
LAI

Красиво, правда? :)
Могу привести подобное и для прочих регистров (B,C,D,E,H,L), но не буду, поскольку смысл понятен.

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

- - - Добавлено - - -

Бонусом - догадайтесь, что делает команда LLL :)

Error404
14.12.2016, 01:11
ёптель, так об этом я и писал Х страниц треда ранее: тупое упрощение ассемблирующей программы - вот причина особенностей мнемоник Интел - все переложить на программиста, он таковский, "жить захочет и не так раскорячится". Десяток мнемоник загрузки у 8080 это еще оказывается у них был прогресс: научились обрабатывать операнды из второго столбика :) , у 8008 их вон было пару сотен. Рукалицо.

Ewgeny7
14.12.2016, 01:27
Error404, просто самый первый ассемблер писался ручками на бумажжжке. Поэтому он обязан был быть простой, краткий, легкий, резкий как понос. А вот далее уже можно было усложнять его, поскольку писать новый в старом - уже легче, чем на бумажке :)

- - - Добавлено - - -

Вообще, изучать старинные процессоры - очень интересно.
Например, у этого же 8008 есть по ВОСЕМЬ кодов команд JMP и CAL. Но нет команды NOP. Зато HLT - аж три кода, включая и... 00h.
Работа с портами организована тоже - полное рукалицо. То, к какому порту ты обращаешься, прописано в самом коде команды, а не в отдельном байте. При этом, портов на ввод может быть восемь (0100ххх1), а на вывод - двадцать четыре (01ххххх1, ххххх >= 01000)...
Что поделаешь, заря процессоростроения...

Viktor2312
14.12.2016, 02:10
INTEL 8008 Instructions


CPU control group

binary old new Description

0 0 0 0 0 0 0 x HLT HLT
1 1 1 1 1 1 1 1 HLT HLT

Input and output group
binary old new Description

0 1 0 0 M M M 1 INP IN port MMM
0 1 R R M M M 1 OUT OUT port RRMMM (RR <> 0)

Jump group
binary old new Description

0 1 x x x 1 0 0 JMP JMP unconditionally jump
0 1 0 0 0 0 0 0 JFC JNC JMP if carry = 0
0 1 0 0 1 0 0 0 JFZ JNZ JMP if result <> 0
0 1 0 1 0 0 0 0 JFS JP JMP if sign = 0 (positive)
0 1 0 1 1 0 0 0 JFP JPO JMP if parity = odd
0 1 1 0 0 0 0 0 JC JC JMP if carry = 1
0 1 1 0 1 0 0 0 JZ JZ JMP if result = 0
0 1 1 1 0 0 0 0 JS JM JMP if sign = 1 (negative)
0 1 1 1 1 0 0 0 JP JPE JMP if parity = even

Call and return group
binary old new Description

0 1 x x x 1 1 0 CAL CALL unconditionally call subroutine
0 1 0 0 0 0 1 0 CFC CNC CALL if carry = 0
0 1 0 0 1 0 1 0 CFZ CNZ CALL if result <> 0
0 1 0 1 0 0 1 0 CFS CP CALL if sign = 0 (positive)
0 1 0 1 1 0 1 0 CFP CPO CALL if parity = odd
0 1 1 0 0 0 1 0 CC CC CALL if carry = 1
0 1 1 0 1 0 1 0 CZ CZ CALL if result = 0
0 1 1 1 0 0 1 0 CS CM CALL if sign = 1 (negative)
0 1 1 1 1 0 1 0 CP CPE CALL if parity = even
0 0 x x x 1 1 1 RET RET unconditionally return
0 0 0 0 0 0 1 1 RFC RNC RET if carry = 0
0 0 0 0 1 0 1 1 RFZ RNZ RET if result <> 0
0 0 0 1 0 0 1 1 RFS RP RET if sign = 0 (positive)
0 0 0 1 1 0 1 1 RFP RPO RET if parity = odd
0 0 1 0 0 0 1 1 RC RC RET if carry = 1
0 0 1 0 1 0 1 1 RZ RZ RET if result = 0
0 0 1 1 0 0 1 1 RS RM RET if sign = 1 (negative)
0 0 1 1 1 0 1 1 RP RPE RET if parity = even
0 0 A A A 1 0 1 RST RST call subroutine at adrs AAA000

Load group
binary old new Description

1 1 D D D S S S Lds MOV d,s load d with content of s
1 1 D D D 1 1 1 LdM MOV d,M load d with content of Mem
1 1 1 1 1 s s s LMs MOV M,s load M with content of s
0 0 d d d 1 1 0 LdI MVI d Load register d with data
0 0 1 1 1 1 1 0 LMI MVI M Load Memory M with data b

Arithmetic group
binary old new Description

1 0 0 0 0 s s s ADs ADD s add contents of s to A
1 0 0 0 0 1 1 1 ADM ADD M add contents of M to A
0 0 0 0 0 1 0 0 ADI ADI b add constant b to A
1 0 0 0 1 s s s ACs ADC s add contents of s + CY to A
1 0 0 0 1 1 1 1 ACM ADC M add contents of M + CY to A
0 0 0 0 1 1 0 0 ACI ACI b add constant b + CY to A
1 0 0 1 0 s s s SUs SUB s sub contents of s from A
1 0 0 1 0 1 1 1 SUM SUB M sub contents of M from A
0 0 0 1 0 1 0 0 SUI SUI b sub constant b from A
1 0 0 1 1 s s s SBs SBB s sub contents of s + CY from A
1 0 0 1 1 1 1 1 SBM SBB M sub contents of M + CY from A
0 0 0 1 1 1 0 0 SBI SBI b sub constant b + CY from A
1 0 1 0 0 s s s NDs ANA s logical AND of s and A to A
1 0 1 0 0 1 1 1 NDM ANA M logical AND of M and A to A
0 0 1 0 0 1 0 0 NDI ANI b logical AND of const b and A to A
1 0 1 0 1 s s s XRs XRA s logical XOR of s and A to A
1 0 1 0 1 1 1 1 XRM XRA M logical XOR of M and A to A
0 0 1 0 1 1 0 0 XRI XRI b logical XOR of const b and A to A
1 0 1 1 0 s s s ORs ORA s logical OR of s and A to A
1 0 1 1 0 1 1 1 ORM ORA M logical OR of M and A to A
0 0 1 1 0 1 0 0 ORI ORI b logical OR of const b and A to A
1 0 1 1 1 s s s CPs CMP s compare s with A, set flags
1 0 1 1 1 1 1 1 CPM CMP M compare M with A, set flags
0 0 1 1 1 1 0 0 CPI CPI b compare const b with A, set flags
0 0 d d d 0 0 0 INd INR d increment register d (d<>A)
0 0 d d d 0 0 1 DCd DCR r decrement register d (d<>A)

Rotate group
binary old new Description

0 0 0 0 0 0 1 0 RLC RLC rotate content of A left
0 0 0 0 1 0 1 0 RRC RRC rotate content of A right
0 0 0 1 0 0 1 0 RAL RAL rotate content of A left through CY
0 0 0 1 1 0 1 0 RAR RAR rotate content of A right through CY

- - - Добавлено - - -


а на вывод - двадцать четыре (01ххххх1, ххххх >= 01000)...

Как вроде 27. В инструкции указан диапазон 10...37

HardWareMan
14.12.2016, 04:20
HardWareMan, как я вижу выделенное на скрине. С9 - это RET, 47 не помню, хотя наверное выделено неверно: там 01 С9 47, т.е. в ВС или в DE грузим 47С9h. Далее из 4000h читаем в аккум, последний сдвигаем вероятно вправо (делим пополам, если по-русски), потом по какой-то кондиции флага <C> делаем RET, далее МУВ А,Б, затем CALL 1DAh и JMP 0B35h. Ещё что-то помню даже :)
Почти. Да, я 01 не выделил.
LXI B,47C9H
LDA 4000H
RRC
RST 1
MOV A,B
CALL 01DAH
JMP 0B35H
Вполне осмысленный код, верно? А ведь это М68000, кусок в кишках Titan - Overdrive Megademo. :)

- - - Добавлено - - -


ёптель, так об этом я и писал Х страниц треда ранее: тупое упрощение ассемблирующей программы - вот причина особенностей мнемоник Интел - все переложить на программиста, он таковский, "жить захочет и не так раскорячится". Десяток мнемоник загрузки у 8080 это еще оказывается у них был прогресс: научились обрабатывать операнды из второго столбика :) , у 8008 их вон было пару сотен. Рукалицо.
Конечно. Чего его жалеть то? Сидит, нихрена не делает, только штаны протирает. ИЧСХ, за полвека почти ничего не изменилось.

Error404
14.12.2016, 10:04
Error404, просто самый первый ассемблер писался ручками на бумажжжке. Поэтому он обязан был быть простой, краткий, легкий, резкий как понос. А вот далее уже можно было усложнять его, поскольку писать новый в старом - уже легче, чем на бумажке :)


Сказочки это все, про бумажки (ну может кроме начала 50х). Как и сказочки про БилГейтца что он бейсик на бумажке написал. Мифы. Городские легенды. Не надо примерять на себя. Все разработки крупных заводов или припроизводственных институтов (и блатных "золотых мальчиков" типа Билла) делались на мейнфреймах, зачастую на языках более высокого уровня чем ассемблер. Мейнфреймы (и машины среднего класса типа IBM360) даже в нищем СССР для этого были более чем доступны, чего уж говорить о странах золотого миллиарда. Потому что это производство, а не гараж с любителями (которых были единицы штук и ничего фундаментального или ресурсоемкого они не сделали). И перед глазами у них были примеры ассемблеров с тех самых платформ - весьма развитые (на ассемблере мейнфреймов до сих пор пишут бизнес-приложения). Другое дело, что любую разработку можно сделать удобной, а можно по принципу "сейчас бысто сделаем просто чтоб было, все равно на нем писать всерьез не станут - только чтобы ЯВУ осилить, да контроллеры с кодом в десяток строк"

- - - Добавлено - - -

Кстати, вполне возможно что бешеный успех мелким восьмибиткам и не планировался, соответственно и не напрягались особо на счет удобств пользователя. А дальше уже работал капиталистический принцип "ну пипл же хавает" (чему этот тред - подтверждение).
Оффтоп. Как там в 8008 - тоже 3 питания?

Denn
14.12.2016, 12:11
Почти. Да, я 01 не выделил.
LXI B,47C9H
LDA 4000H
RRC
RST 1
MOV A,B
CALL 01DAH
JMP 0B35H
Вполне осмысленный код, верно?

Явки 47C9H и 4000H не орионовские, так что для меня смысла мало :)



А ведь это М68000

Класс! Я оказывается понимаю проц, который не знаю :)

Ewgeny7
14.12.2016, 13:13
Как вроде 27. В инструкции указан диапазон 10...37
24. Не все коды задействованы.
Да, удалить пост не забудь!
Здесь (https://yadi.sk/i/n24j4PPg33TjT3) набор команд представлен удобнее.

- - - Добавлено - - -


Как и сказочки про БилГейтца что он бейсик на бумажке написал.
Я вообще такого не читал.
Было такое, что Гей-ц, летя в самолете со своим Барсиком, умудрился что-то там ДОПИСАТЬ и закончить сей продукт. Как потом оказалось - без ошибок. Но это может быть и десяток-другой команд. Такое я где-то читал в историях барсиков.


Все разработки крупных заводов или припроизводственных институтов (и блатных "золотых мальчиков" типа Билла) делались на мейнфреймах, зачастую на языках более высокого уровня чем ассемблер.
Может быть и такое, я свечку не держал. А в моем посте больше сарказма, чем утверждения :)


Как там в 8008 - тоже 3 питания?
Дык.

Viktor2312
14.12.2016, 13:18
24. Не все коды задействованы.

Ну, может. У меня в инструкциях указан диапазон такой 10...37, а особо читать не хочется их и много, они и на английском, а это соответственно долго, да и объёмные они, по 45 МБ. Поэтому особо не стал вникать в текст, но там есть и про NOP, как она реализуется. Но опять же из-за не нужности, детально вникать не хочется.


Да, удалить пост не забудь!

Спасибо, что напомнил. Обязательно, но позже.

Ewgeny7
14.12.2016, 13:47
Но опять же из-за не нужности, детально вникать не хочется.
А я вникаю, готовлюсь, мне миникомп на нем собирать и запускать.
Правда, заказанный процессор опять куда-то в Черную Дыру Абамы пропал.
Для желающих поучавствовать в тотализаторе - RF462001245CN

- - - Добавлено - - -


да и объёмные они, по 45 МБ
Возьми поменьше (https://yadi.sk/i/aoTzM5hF33TxA5), по 5 с хвостиком мегабайт.

- - - Добавлено - - -

Вариант компа на 4004 придется таки делать с участием CPLD. Цены на реал высоки.
А ядро 4004 с (обещанным) точным симулированием есть в интернетах. Аж в EPM570 влезает, прям как потактовый клон ВМ80 :)

Viktor2312
14.12.2016, 13:59
А я вникаю, готовлюсь, мне миникомп на нем собирать и запускать.

Я видел как ты бездарно растрачиваешь время и "мозги" на поделки (микроконтроллеры на рассыпухе), ИМХО. Лучше бы занялся ПЭВМ "Ириша", там поле не паханное как и по "железу", так и по ПО. Вот вчера сидел разбирался с программкой по подсчёту контрольной суммы из красной книжечки. Посмотрел, что какая команда делает, вычертил алгоритм, перевёл в коды. В общим суть уловил, что она делает, но нужно ещё разбираться. В общем интересно провёл время перед сном.
Чистяков говорит, что чушь, я тоже пока не понял её принцип, так как на экран ничего не выводится как вроде, тупо поскладывала у себя в "уме" и вернулась в монитор.

Вот её код:



0100 LXI D, 4000 ; Адрес начала программы
0103 LXI B, 380 ; Длина программы делённая на 2
0106 LXI H, 0000 ; Счётчик контрольной суммы
0109 LDAX D ; Выборка байт
010A ADD L ; И их суммирование в рег. H
010B MOV L, A ;
010C INX D ;
010D LDAX D ;
010E ADC H ;
010F MOV H, A ;
0110 INX D ;
0111 DCX B ; Уменьшение счётчика слов
0112 MOV A, B ;
0113 ORA C ; Проверка на границу программы
0114 JNZ 109 ; Если не конец, то уход в цикл
0117 RST 1 ; Возврат в монитор


11 00 40 01 80 03 21 00 00 1A 85 6F 13 1A 8C 67
13 0B 78 B1 C2 09 01 CF



https://img-fotki.yandex.ru/get/195771/401025048.11/0_1aebdc_848664eb_L.jpg (https://fotki.yandex.ru/next/users/nik1172a/album/533700/view/1764316)

Mick
14.12.2016, 14:00
Правда, заказанный процессор опять куда-то в Черную Дыру Абамы пропал.
Для желающих поучавствовать в тотализаторе - RF462001245CN

Опять на екарном бабае заказал или на сей раз на али?
На али можешь деньги потом вернуть, когда в заявленный срок не придет. За дней пять до окончания срока можешь уже открывать спор.
У меня недавно тоже такое случилось, вроде трек международный, но не трекался. А так как о нем инфы нет, то проблем с возвратом денег не возникло.

barsik
14.12.2016, 14:33
Чистяков говорит, что эта п/п-мма подсчёта КС - чушь

Он так говорил потому, что это и не промышленный стандарт CRC и не отечественный стандарт КС F82A. Это собственное изобретение авторов ИРИШИ, чтобы контроллировать целость блоков считанных с МГ-ленты.

Вот как принято было считать КС блока в СССР:



CHSUM: LD BC,0
CHSLOO: LD A,C
ADD A,(HL)
LD C,A
EX AF,AF ; при КР580 заменить на PUSH AF
CALL CMPDH
RET Z ; при КР580 заменить на JP Z,POPRET
EX AF,AF
LD A,B
ADC A,(HL)
LD B,A
INC HL
JR CHSMLOO

CMPDH: LD A,H ; это F956 в М3 и F990 в РК86
CP D
RET NZ
LD A,L
CP E
RET




CHSUMMA PROC ; BADR:DX, ENDADR:CX, RET:BX
MOV SI, DX
XOR BX, BX
CHS_01: ADD BL, ES:[SI]
PUSHF
CMP SI, CX
JZ CHS_02
POPF
ADC BH, ES:[SI]
INC SI
JMP CHS_01

CHS_02: POPF
RET
CHSUMMA ENDP


PS: А логика работы подпрограммы от тебя ускользает потому-что ты написал её на неудобном ассемблере. Перепиши её в мнемониках Z80 и всё станет ясно.

Viktor2312
14.12.2016, 14:40
Вот как принято было считать КС в СССР:

Этот код же для Z80, а соответственно мне совершенно не понятен, я мнемокоды Z80 не знаю.

Где, в какой литературе можно подробно ознакомиться с тем как подсчитывается контрольная сумма программы?
Где подробно, на русском расписан стандарт КС F82A.
Чтобы можно было изучить, понять. И написать для ПЭВМ "Ириша" полноценную программу для подсчёта КС любой программы?

Ответить лучше тут (http://ruecm.forum2x2.ru/t576-topic#5437), так как здесь, это уже оффтоп получается, и если что, я потом не факт, что смогу найти ваш ответ...

Titus
14.12.2016, 14:57
Вариант компа на 4004 придется таки делать с участием CPLD. Цены на реал высоки.
А ядро 4004 с (обещанным) точным симулированием есть в интернетах. Аж в EPM570 влезает, прям как потактовый клон ВМ80
А вообще были компы хоть с какой-нибудь графикой на базе 4004?

barsik
14.12.2016, 15:29
Сколько стоят 4004 и 8008 ?
А почему забыли 4040 ?

Как можно использовать 4004? К нему же нужно свое ОЗУ и своё ПЗУ.

8008 выпускали с апреля 1972 и всего несколько лет. Почти наверняка он дохлый. Больше шансов получить живой 8008, если купить ГДР-овский аналог http://www.cpu-world.com/CPUs/8008/DDR-U808D.html. Он выпускался аж до середины 80-х.


были компы хоть с какой-нибудь графикой на базе 4004?

Там ОЗУ слишком мало (640 байт). Но калькуляторы с ценой в 300-400 USD делали. Компьютеры на микропроцессорах начались только с 8008.


8008 microprocessor was used in Mark-8 computer, which is considered to be the first personal computer

В основном на базе 8008 делали терминалы с внутренней экранной памятью (что почти что компьютер). Читал, что на 8008 делали и любительские компьютеры, хотя и без экрана (с HEX-индикаторами).

Об истории вражеских микро-компьютеров:
http://oldcomputers.net/

Особенно посмотрите про APPLE-I и =II (в частности, про клуб владельцев APPLE-I).

Ewgeny7
14.12.2016, 16:13
Опять на екарном бабае заказал или на сей раз на али?
Вообще - оба раза на али. В первый раз деньги вернули. И во второй вернут, куда денутся.


Я видел как ты бездарно растрачиваешь время и "мозги" на поделки
А ты зато со смыслом тратишь, ага.
Я хоть изучаю другие архитектуры, что для самого себя полезно и интересно.
А что ты сделаешь с Иришей?

b2m
14.12.2016, 16:17
я тоже пока не понял её принцип
Обычная сумма 16-битных слов (младший байт первый).

Ewgeny7
14.12.2016, 16:50
А вообще были компы хоть с какой-нибудь графикой на базе 4004?
Оно разработано было для калькуляторов. И вряд ли пошло дальше, поскольку достаточно быстро на базе 4004 слепили 8008.



8008 выпускали с декабря 1971 и всего несколько лет. Почти наверняка он дохлый. Больше шансов получить живой 8008, если купить ГДР-овский аналог 8008. Он выпускался аж до середины 80-х.
Это так, но я рискнул. Причем выбрал за одну и ту же стоимость именно интеловский, я этому кооперативу чуть больше доверяю.



Читал, что на 8008 делали любительские компьютеры, хотя и без экрана (с HEX-индикаторами).
На 8008 делали "терминальные" компьютеры, описание парочки из них есть у меня. Для 8008 существует и BASIC, названный SCALBAL, исходники его также есть у меня. Рассчитываю использовать их.

- - - Добавлено - - -


Сколько стоят 4004 и 8008 ?
8008 - от 3000рэ и до 1000$.
4004 - кратно дороже. Видел от 6000 рублей.

- - - Добавлено - - -

4040 так же с доставкой выходит от 6000рэ.

- - - Добавлено - - -


Этот код же для Z80, а соответственно мне совершенно не понятен, я мнемокоды Z80 не знаю.
За вечер всё учится ПРИ ЖЕЛАНИИ.

Denn
14.12.2016, 16:51
4004 - кратно дороже. Видел от 6000 рублей.

- - - Добавлено - - -

4040 так же с доставкой выходит от 6000рэ.


Мама дорогая! А я ещё офигевал от цен 600+ руб за i8080... м-да...

Ewgeny7
14.12.2016, 17:24
600+ руб за i8080
Ну, это нормально за "оригинал". Я себе за 400 с доставкой купил такой в керамике.
Но - 8080 - ширпотреб...

HardWareMan
14.12.2016, 18:15
За вечер всё учится ПРИ ЖЕЛАНИИ.
За вечер я и Фортран выучить могу. Но нажуя? Нажуя ему учить Z80 для написания под ВМ80? Так что, нет, спасибо. Уж лучше вы к нам.

- - - Добавлено - - -


Класс! Я оказывается понимаю проц, который не знаю :)
А кто тут говорил, что...

Где не надо, там обычно нет привычных конструкций, так что глазу особо не за что цепляться... /-)
?

Denn
14.12.2016, 18:22
Ну, это нормально за "оригинал". Я себе за 400 с доставкой купил такой в керамике.

Неее, оригинал ясен перец музейный экспонат - там "многа денег". Обычный простой i8080 позднего разлива, в пластике.

- - - Добавлено - - -


А кто тут говорил, что...

Я имел в виду всякие дампы ЕХЕ'шников от писи, там реально ни одна мышца не дёргается при просмотре :)

HardWareMan
14.12.2016, 19:30
Я имел в виду всякие дампы ЕХЕ'шников от писи, там реально ни одна мышца не дёргается при просмотре :)
ORLY?
http://savepic.net/8665218.png
:D

Denn
14.12.2016, 20:15
Тут понятен только текстовый массив, но доллар в конце всё портит :)

Viktor2312
14.12.2016, 20:19
За вечер всё учится ПРИ ЖЕЛАНИИ.

Желания нет. А вот от КР580ВМ80А, одно удовольствие...

А с Иришей я пока ничего не делаю, но буду мучить и расширять её, проводить эксперименты, тренироваться и изучать программирование, более углублённо, вон читал Floating-Point Arithmetic Library очень интересно. А ещё хочу добавить аппаратное умножение, а потом поэкспериментировать с быстрым аппаратным умножением, в общем - что я делаю/собираюсь делать с Иришей - насиловать её мозги...

barsik
14.12.2016, 20:42
Ответить лучше тут http://ruecm.forum2x2.ru/t576-topic#5437

И как же мне там ответить, если это теперь стало невозможно. Личные сообщения и E-mail полностью блокированы. Причём я захожу не как гость, а как пользователь. Но сайт ведёт себя, как будто я гость. Это значит, что мой аккаунт дезактивирован. Не могу редактировать свои старые сообщения (нет кнопки "редактировать") и оставлять новые сообщения (исчезла кнопка "ответить в теме"). В моём профиле исчезли пункты "послать личное сообщение" и "послать E-mail". В профиле Viktor2312 не нажимаются кнопки "послать ЛС" и "послать E-mail".

Так что теперь, уважаемый Viktor2312, лучше уж Вы к нам на Колыму, - заходите "на огонёк" на сайт ZX-PK.ru. Здесь личные сообщения отлично работают. Правда здесь "убивает" идиотическое ограничение длины ЛС на 5000 букв. Интересно зачем это вообще надо, если личные сообщения временны и после прочтения сразу-же удаляются? В этом плане Ваш сайт был лучше, т.к в нём таких идиотических ограничений нет.

Вообще-то у меня все 70 мб исходников в мнемониках Z80, но чудом нашёл нужный кусок в мнемонике КР580



; ПОДСЧЕТ CHECK SUM: (HL)...(DE) --> BC

CHSUM: LXI B,0
CHSLOO: MOV A,C ; Неперемещаемо !!! 0F944H
ADD M
MOV C,A
PUSH PSW
CALL CMPDH
JZ POPRET
POP PSW
MOV A,B
ADC M
MOV B,A
INX H
JMP CHSLOO

POPRET: POP PSW
RET

; ────────────────────────────────────────────────── ─

; HL-DE ??

CMPDH: MOV A,H ; Неперемещаемо !!! 0F956H
CMP D
RNZ
MOV A,L
CMP E
RET



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

Лучшая из таблиц, что я видел приведена в книге: Madarasz Laszlo, "mP-Hobby". Издательство: Muszaki Konyvkiado. Budapest, 1987. Здесь на страницах 210...216 приведены все команды Z80, причём с кодами, а также указаны соответствующие мнемоники КР580. Я переходил на Z80 в 1989 по ней. Вообще эта книга для аппаратчиков даже полезнее, чем Дж.Коффрон "Расширение МПСС". Машиностроение, 1987. Правда есть крошечный нюанс, надо знать венгерский язык. Чтобы это прочитать мне пришлось купить ещё одну книжку: Энико Сий, "Курс венгерского языка". Издательство Танькёньвкиадо. Будапешт 1981. 630 страниц, цена 4р.20 коп (в 1988). Не обращайте внимание, что венгерский язык финно-угорской группы считается самым трудным в Европе. Уже через полгода после начала изучения, Вы сможете кое-как читать технические тексты. Ну, а имея доступ в Интернет, прочитать книгу на чужом языке вообще не проблема.

svofski
14.12.2016, 21:24
Правда есть крошечный нюанс, надо знать венгерский язык. Чтобы это прочитать мне пришлось купить ещё одну книжку: Энико Сий "Курс вегерского языка". Издательство Танькёньвкиадо. Будапешт 1981. 630 страниц, цена 4р.20 коп (в 1988). Не обращайте внимание, что венгерский язык финно-угорской группы считается самым трудным в Европе. Уже через полгода после начала изучения, Вы сможете кое-как читать технические тексты.
Да, мнемоники Z80 однозначно того стоят!

Viktor2312
14.12.2016, 22:42
И как же мне там ответить, если это теперь стало невозможно. Личные сообщения и E-mail полностью блокированы. Причём я захожу не как гость, а как пользователь. Но сайт ведёт себя, как будто я гость. Это значит, что мой аккаунт дезактивирован. Не могу редактировать свои старые сообщения (нет кнопки "редактировать") и оставлять новые сообщения (исчезла кнопка "ответить в теме"). В моём профиле исчезли пункты "послать личное сообщение" и "послать E-mail". В профиле Viktor2312 не нажимаются кнопки "послать ЛС" и "послать E-mail".

Так что теперь, уважаемый Viktor2312, лучше уж Вы к нам на Колыму, - заходите "на огонёк" на сайт ZX-PK.ru. Здесь личные сообщения отлично работают. Правда здесь "убивает" идиотическое ограничение длины ЛС на 5000 букв. Интересно зачем это вообще надо, если личные сообщения временны и после прочтения сразу-же удаляются? В этом плане Ваш сайт был лучше, т.к в нём таких идиотических ограничений нет.

Только у вас какие-то непонятные вещи всё время проискодят.

Не был, а есть. http://vrcp.ru/smiles/fc.gif

Да не, я уж лучше там буду, тут я так времено побыл, пофлеймить...

Вообще-то у меня все 70 мб исходников в мнемониках Z80, но чудом нашёл нужный кусок в мнемонике КР580

Сохраню себе, потом поразбираюсь, что да как.



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

Не нужны они мне, меня Z80 не интересует.

Лучшая из таблиц, что я видел приведена в книге: Madarasz Laszlo, "mP-Hobby". Издательство: Muszaki Konyvkiado. Budapest, 1987. Здесь на страницах 210...216 приведены все команды Z80, причём с кодами, а также указаны соответствующие мнемоники КР580. Я переходил на Z80 в 1989 по ней. Вообще эта книга для аппаратчиков даже полезнее, чем Дж.Коффрон "Расширение МПСС". Машиностроение, 1987. Правда есть крошечный нюанс, надо знать венгерский язык. Чтобы это прочитать мне пришлось купить ещё одну книжку: Энико Сий, "Курс вегерского языка". Издательство Танькёньвкиадо. Будапешт 1981. 630 страниц, цена 4р.20 коп (в 1988). Не обращайте внимание, что венгерский язык финно-угорской группы считается самым трудным в Европе. Уже через полгода после начала изучения, Вы сможете кое-как читать технические тексты. Ну, а имея доступ в Интернет, прочитать книгу на чужом языке вообще не проблема.

Вообще издеваетесь, Венгерский, освоить, чтобы изучить, не нужный мне ассемблер для Z80, не увольте. Уж лучше я на родном английском почитаю, эту литературу, и интереснее и понятнее, и полезнее в освоении языка, как английского, так и машинного.
8080 Assembly Language Programming 1978
8080 Floating-Point Arithmetic Library 1978
Intel 8080 Microcomputer Systems 1975
Utilities for 8080_Based Development Systems 1981
и другую подобную...

Ладно, всё это фигня, пора удаляться и заниматься делом, а не лить флейм из пустого в порожнее... http://vrcp.ru/smiles/fi.gif

Ewgeny7
14.12.2016, 22:59
Но нажуя? Нажуя ему учить Z80 для написания под ВМ80?
Масса софта писана под Z80. Что ужасного в том, чтобы понимать оба диалекта по сути почти одинаковых процессоров и тырить полезный код, как в данном случае? Я не вижу логики в твоих словах, Железяка :)
Ладно там изучать 7 ассемблеров - это на любителя, но в данном случае-то...

Viktor2312
15.12.2016, 00:02
и тырить полезный код

А это хорошая и интересная мысль. И это может пригодиться. Значит придётся почитать и про Z80 со временем.

Ewgeny7
15.12.2016, 00:57
Кто бы еще родил наконец-то "ОКЕАН-240", который я жду уже столько лет. Скоро уже яйца седыми станут, а сделать платы никто не может... :(
Вот почему-то мне хочется для него что-то творить. А под ИРИШУ - нет желания...

HardWareMan
15.12.2016, 01:12
Масса софта писана под Z80. Что ужасного в том, чтобы понимать оба диалекта по сути почти одинаковых процессоров и тырить полезный код, как в данном случае? Я не вижу логики в твоих словах, Железяка :)
Ладно там изучать 7 ассемблеров - это на любителя, но в данном случае-то...
Полноценно то тырить не получится. А неполноценно можно и через призму i8080, ретушируя отсутствующие коды. Собственно я так и делаю. У меня свой "диалект" для Z80. С карточными играми и куртизанками.

Viktor2312
15.12.2016, 01:17
Кто бы еще родил наконец-то "ОКЕАН-240", который я жду уже столько лет. Скоро уже яйца седыми станут, а сделать платы никто не может...
Вот почему-то мне хочется для него что-то творить. А под ИРИШУ - нет желания...

А у меня всё с точностью до наоборот. Я плату Океана забросил, не интересно, если развивать его, то будет бутерброд из кучи плат и ворох МГТФа, а я люблю когда всё красиво и платы не лепятся на стойках, проводах и соплях, а вставляются по направляющим в кросс-плату. Когда в кросс можно вставить хоть модуль на КР580ВМ80А, хоть модуль на КР1810ВМ88, и такой кстати был. А можно и несколько плат МП вставить. И главное всё красиво и лаконично. Так же и с МКГД, можно родной использовать, а можно свой новый разработать с улучшенной графикой.
А по поводу плат Океана, это к Пересторонину, у него лежит файл законченной платы L_July, он грозился летом выпустить партию плат, но что-то "лыжи" не едут. Напомни ему, сейчас зима, может "лыжи" и поедут. Но там будет много МГТФа, на мой взгляд, а может и нет...


А под ИРИШУ - нет желания...

Может просто не потянешь. Там ПЗУ есть и К155РЕ3, и К556РТ4, и К556РТ5, и К573РФ2, и К573РФ4(6), и не по одной штуки во всей конструкции, даже в минимальной конфигурации. И микросхем много, больше 100 шт. даже в минимальной конфигурации. Вот может из-за этого и не хочешь заняться...


Вот почему-то мне хочется для него что-то творить.

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

barsik
15.12.2016, 02:01
А платы ОКЕАН-240 тоже продавались в Ленинграде в 1989 или 90-м. Их никто не хотел покупать, т.к никто не знал, что это. А я купил тогда одну такую платку или две (в смысле один комплект, сейчас просто не помню было две платы или одна, смутно кажется, что их было две). Предположительно продавец плат был приезжий, т.к на следующем "толчке" его уже не было. Я узнал про ОКЕАН-240 из журнала МПСС, когда в библиотеке читал статьи про ИРИШУ. Поэтому запомнил это имя, и вспомнил, когда увидел продающиеся платы. Плата была очень качественная. Но принципиальной схемы и даже схемы расположения мне не дали. А т.к журнала МПСС за 1986 у меня не было (искал в магазинах "Старая техническая книга", но нужные номера не попадались), то пару лет плата пролежала "без движения".

А затем я распилил её на фрагменты, чтобы использовать для изготовления самодельных компьютеров с текстовым адаптером. Люблю текстовые адаптеры, сделал их несколько. Была такая идея, - сделать удобный CP/M-компьютер, используя только те детали, что были до 1980 года и доказать тем самым, что приличную машину можно было сделать ещё тогда.

Вывод. Раз платы ОКЕАНА продавались в Ленинграде, то здесь должны быть и другие люди купившие платы ОКЕАНА-240 и, вероятно, обладающие изобилием программ для него. Скорее всего ОКЕАН-240 есть у местных коллекционеров старой техники.

Про ОКЕАН-240 ничего не помню, т.к читал "МПСС" в 1988. Он что "круче" ИРИШИ и ОРИОНА ? Прозрачное ли у него ОЗУ ? Есть ли поточечный цвет ? Экран, помню, графический, но какой ? Это риторические вопросы. Сам посмотрю в местной WIKI.

Viktor2312
15.12.2016, 02:26
Про ОКЕАН-240 ничего не помню.

Можно тут (http://ruecm.forum2x2.ru/f113-forum) почитать. Или тут (http://zx-pk.ru/threads/24652-repliki-platy-pevm-quot-okean-240-quot.html) и тут (http://zx-pk.ru/threads/14176-kompyuter-quot-okean-240-quot.html) и здесь (http://azmaster.narod.ru/Ocean-240/)



Он что "круче" ИРИШИ и ОРИОНА ?

На мой взгляд нет.



Раз платы продавались в Ленинграде, то здесь должны быть и другие люди купившие платы ОКЕАНА-240 и вероятно обладающие изобилием программ для него. Скорее всего ОКЕАН-240 есть у местных коллекционеров старой техники.

У некоторых есть.

barsik - всё вы не о том. Пора идти создавать программы для ПЭВМ "Ириша"... http://vrcp.ru/smiles/ik.gif

barsik
15.12.2016, 03:10
barsik - всё вы не о том. Пора идти создавать программы для ПЭВМ ИРИША...

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

Спасибо Viktor2312 за присланный DJVU_Pro V4.10. К сожалению, у Вас версия ещё древнее моей.
Попробуйте скачать с сайта журнала "МПСС" подшивки журналов за 1986 и 1987 (там опубликованы и ИРИША и ОКЕАН-240). Они в формате DJVU, посмотрите "просматриваются" ли они у Вас. Если просматриваются, значит кроме самой программы у Вас инсталлированы новые DLL или "плагины" (это что-то матерное, но все так говорят).

Вчера решил попробовать адаптацию РК86-игр на ИРИШУ. Самым грубым варварским способом. Чтобы проверить саму идею. Вобще-то есть две идеи, одна варварская, другая интеллектуальная (есть и 3-я, но её использовать я пока не готов). В грубом способе адаптации думать и вникать в логику работы игры не требуется. А вот во втором методе, необходимо понимать, хотя бы что и где программа что-то делает с экраном.

Взял исходник самой простейшей игры в кодах для РК86. Называется "Охота на уток". И за пару часов грубым методом адаптировал её. Для такого грубого метода нужен существенный запас по скорости, а его на базовой ИРИШЕ нет. Правда в тех случаях, когда в игре можно задавать уровни (а реально это обычно просто константа торможения), то потеря в скорости компенсируется выбором более высокого уровня игры.

Хотел сегодня попробовать второй более сложный метод, который уже не особо тормозит, но не довелось - "враги достали", пришлось убить кучу времени на писанину. Этот метод на порядок более трудоёмкий и потому годится, скорее, только для маленьких и простых игр. Впрочем сам я ценю только XONIX-а, потому его точно сделаю. Ещё имеют некоторую ценность шахматы, но их адаптировать совсем не надо, как и все корректные РК-программы - прицепил к ним "имитатор ПЗУ РК", что кидается в область F800 и всё без проблем работает.

А вообще, разработав технологию, вполне реально адаптировать для ИРИШИ по несколько убогих РК-игр за вечер. БОльшую часть времени отнимает получение полноценного исходника (неполноценный исходник, а точнее просто ассемблерный текст получить легко, - 5 секунд и готово, а вот чтобы получить полноценный исходник иногда приходится анализировать код и логику работы). Поэтому легко получаются исходники тех программ, где нет извратов, нет перемещений блоков кода, а также для программ, где не использован самомодифицирующийся код.

Для адаптации для ИРИШИ игр от ОРИОНА и СПЕЦИАЛИСТА грубым методом нужен, по видимому, чуть-ли не двойной запас скорости. А с учётом, что в ОРИОНЕ 2.5 МГЦ, а 5 МГЦ в ИРИШЕ иметь просто нереально, то тут нужен другой, намного более трудоёмкий метод адаптации. И даже, если это удастся, такая игра на базовой ИРИШЕ будет дико тормозной, если не поднять реальный такт ИРИШИ хотя-бы до тех же 2.5 МГЦ.

Viktor2312
15.12.2016, 03:34
Я отвечу в этой теме Программное обеспечение ПЭВМ "ИРИША", "ИРИША-Л" и "ИРИША-М" (http://zx-pk.ru/threads/16559-programmnoe-obespechenie-pevm-quot-irisha-quot-quot-irisha-l-quot-i-quot-irisha-m-quot.html), а то это уже будет чистый оффтоп.

AlexG
15.12.2016, 04:10
https://www.cuminas.jp/en/downloads/download/?pid=1
djvu плугин

HardWareMan
15.12.2016, 04:42
Из-за участия во флеймах и склоках совершенно не остаётся времени на любительское программирование. Иногда полчаса в день, а часто вообще 0. А столько интересных задач ждут...
А вас что, кто-то силком заставляет участвовать во флейме? Игнорировать религия не позволяет?

https://www.cuminas.jp/en/downloads/download/?pid=1
djvu плугин
Кому он нужен, когда есть ВинДежаВю (https://ru.wikipedia.org/wiki/WinDjView)?

Попробуйте скачать с сайта журнала "МПСС" подшивки журналов за 1986 и 1987 (там опубликованы и ИРИША и ОКЕАН-240). Они в формате DJVU, посмотрите "просматриваются" ли они у Вас. Если просматриваются, значит кроме самой программы у Вас инсталлированы новые DLL или "плагины" (это что-то матерное, но все так говорят).
Легко и не принужденно.
http://savepic.net/8711346.png
WinDjView это всего 2 файла: EXE и его собственная DLL. Работают даже простым копированием, как портативные программы.

Ewgeny7
15.12.2016, 11:49
Может просто не потянешь. Там ПЗУ есть и К155РЕ3, и К556РТ4, и К556РТ5, и К573РФ2, и К573РФ4(6), и не по одной штуки во всей конструкции, даже в минимальной конфигурации. И микросхем много, больше 100 шт. даже в минимальной конфигурации. Вот может из-за этого и не хочешь заняться...
Да, куда уж мне... Там же РФ2 есть! :)
А насчет кроссплат и сотни микросхем - ты прав. Я не люблю таких монстров. Когда задача может быть решена с меньшим количеством микросхем и механических контактов, я выберу именно это решение.
Наверное, этим мне Океан и импонирует.
А в конечном счете этому миру не нужны ни Ириша, ни Океан. Они оба - предмет для хобби.
А здесь уже действует правило фломастеров...

Denn
15.12.2016, 12:43
Для тех, кому интересно, а давайте пофантазируем на тему, как бы вы дополнили мнемоники интеловского ассма "новыми" командами Z80, которых нет в i8080 ?

ЗЫ у меня на самом деле практический интерес... ;)

svofski
15.12.2016, 12:52
Denn, не о чем фантазировать, это будут мнемоники 8086.

Mick
15.12.2016, 12:54
Для тех, кому интересно, а давайте пофантазируем на тему, как бы вы дополнили мнемоники интеловского ассма "новыми" командами Z80, которых нет в i8080 ?

ЗЫ у меня на самом деле практический интерес... ;)

Когда я переходил с Апогея на ZX, то для меня мнемоники Z80 казались крайне неудобными по сравнению с ВМ80. А посему переходя на ZX я перешел с ассемблером Микрон, который портировал .
Так вот , сейчас уже не помню все, но некторые названия мнемоник так и перенес. А другие переназначил по аналогии с ВМ80

Например LDED ADDR => LD DE, (ADDR)
LBCD ADDR => LD BC,(ADDR)
соотвественно запись
SDED и SBCD
Но оговрюсь, что не все мнемоники я перекладывал, некоторые записывал в виде данных.

Denn
15.12.2016, 14:48
...LDED ADDR...
LBCD ADDR...
...SDED и SBCD...


Что-то я посмотрел на это, и мозг мне шепчет: пусть всё же будет труъ Ассм8080, а в причинных местах прог "DB 20H,M2-M1+1; =short JMP" и т.п..

Viktor2312
15.12.2016, 15:00
Спасибо Viktor2312 за присланный DJVU_Pro V4.10. К сожалению, у Вас версия ещё древнее моей.
Попробуйте скачать с сайта журнала "МПСС" подшивки журналов за 1986 и 1987 (там опубликованы и ИРИША и ОКЕАН-240). Они в формате DJVU, посмотрите "просматриваются" ли они у Вас. Если просматриваются, значит кроме самой программы у Вас инсталлированы новые DLL или "плагины" (это что-то матерное, но все так говорят).

У меня всё просматривается, с момента его установки и по сей день, не было ещё ни одного файла (который не повреждён по каким нибудь причинам) который не открылся бы. Только за сегодня уже с пару десятков файлов просматривал, конвертировал в BMP из него и никаких проблем. Всё работает идеально.



Ещё имеют некоторую ценность шахматы

Для меня первостепенную, РС достал меня уже по 5...10 партий в день с ним режусь, но пока безрезультатно, лупит меня как хочет, хотя я особо и не напрягаюсь, но если и напрячься, то ничья в лучшем случае, вумный зараза. Хочу с Иришкой сыграть, но хочется хорошую и полноценную программу заточенную максимально для Ириши.



Для адаптации для ИРИШИ игр от ОРИОНА и СПЕЦИАЛИСТА грубым методом нужен, по видимому, чуть-ли не двойной запас скорости. А с учётом, что в ОРИОНЕ 2.5 МГЦ, а 5 МГЦ в ИРИШЕ иметь просто нереально, то тут нужен другой, намного более трудоёмкий метод адаптации. И даже, если это удастся, такая игра на базовой ИРИШЕ будет дико тормозной, если не поднять реальный такт ИРИШИ хотя-бы до тех же 2.5 МГЦ.

Надо улучшать кодинг, а не гнать частоты. У меня в планах на Ириша-2020, только 2МГЦ, и то не факт, что основной МП будет на 2 МГц, но МДП_Ириша-2020_ver_1.0 будут точно на 2МГц, точнее они уже есть, просто нужно с макетки, хотя и заводской, перегнать в форм-фактор модулей Ириши и организовать канал связи, а тут есть маленькая сложность, точнее пока неопределённость, то есть нужно консультация, либо самовъезд в проблему, пока не занимался этой проблемой. Так что нужно улучшать качество кодинга, писать более быстро работающий код...
Ладно, планов грамодьё, где бы на это всё время найти, и мозг бы ещё простимулировать чем нибудь...

- - - Добавлено - - -


Да, куда уж мне... Там же РФ2 есть!
А насчет кроссплат и сотни микросхем - ты прав. Я не люблю таких монстров. Когда задача может быть решена с меньшим количеством микросхем и механических контактов, я выберу именно это решение.
Наверное, этим мне Океан и импонирует.
А в конечном счете этому миру не нужны ни Ириша, ни Океан. Они оба - предмет для хобби.
А здесь уже действует правило фломастеров...

То была шутка Жень, я в твоих способностях не сомниваюсь, и считаю тебя Гуру, в старом железе так уж точно.
Жаль, что у тебя нет желания, но всё в этом мире изменчиво, буду надеяться на лучшее, а вдруг...

HardWareMan
19.12.2016, 14:51
Вот тут приведен документ (http://zx-pk.ru/threads/27211-java-8-bit.html?p=894581&viewfull=1#post894581), который показывает, что не всем нравились нативные мнемоники Z80. Подчеркивается сообщество PDPшников.

Vital72
19.12.2016, 15:48
Вот тут приведен документ, который показывает, что не всем нравились нативные мнемоники Z80. Подчеркивается сообщество PDPшников.


Vital72, вы не имеете прав для доступа к этой странице. Это может быть вызвано несколькими причинами:

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


WTF?

HardWareMan
19.12.2016, 16:20
Vital72, а доступ ко флейму (http://zx-pk.ru/forums/19-flejm.html) у вас есть? Если нет, то проходите мимо.

barsik
19.12.2016, 16:44
Вот тут приведен документ, который показывает, что не всем нравились родные мнемоники Z80. От сообщества PDP-шников.

PDP-шники вообще не имеют мнения насчёт 8-ми разрядных ассемблеров. Но сам пример потрясающий. Спасибо HardWareMan. Вы открыли новую страницу истории отечественных ассемблеров.

Этот документ доказывает, что программист привык к командам MOV и заменил ими LD, а также порядок операндов как принято в DEC. А также и все остальные мнемоники, что имеют аналоги в DEC. Кстати, (HL) он оставил, т.к тоже понял, что 'M' глупо и неинформативно. Также все псевдооператоры сделаны такими же как в DEC-ассемблерах. И что это за Z80 ассемблер, в котором HEX-константы пишутся как в СИ (такого даже в DEC-ассемблерах не бывает). А метки с указанием forward или back это что-то новенькое (из извратов). Гораздо проще и удобнее иметь локальную метку которая действует только до первой очередной метки, как делается обычно. Переименовать регистр I на V это конечно очень прогрессивно. Почему бы тогда писать не HL и DE, а сразу писать R1 и R2? Получился настоящий DEC ассемблер. Но этот автор не программист для Z80 и его мнение имеет вес 0. Он решал поставленную задачу и решил её прекрасно, максимально облегчил переучивание на Z80. Переход с этого суррогатного ассемблера на настоящий пройдёт так же гладко. Это же не INTEL.


Опыт показывает, что такие изменения благотворно сказываются на трудоемкости программирования у людей, привыкших к ассемблеру PDP-11
Неудивительно. Это ведь тот же DEC ассемблер. Это пример того как можно один ассемблер превратить в другой. Данный автор лишь переименовал команды. Он не переводил операнды из поля операндов в имя самой мнемоники, как это сделано в КР580. И нет таких глупостей, чтобы писать D имея ввиду DE. Поэтому пример совершенно не показателен. То же самое можно сделать используя макро команды. И кстати этот ассемблер намного удобнее, чем ассемблер КР580.

Этот документ никак не доказывет лучше или хуже какая-то мнемоника. Но мне доказал лишь следующее:

1. Данный программист на СИ не умеет передавать параметры в командной строке.

2. В 1984 году, кому-то пришла в голову мысль использовать, как исходный прототип, листинг примитивного ассемблера из 70-х годов, опубликованного в западном журнале (или его производного), для написания кросс ассемблера для ДВК. Это был не готовый ассемблер, а просто заготовка, пример написания ассемблера для публикации в журнале. Иначе, что это за ассемблер, в котором не все команды.

3. В исходном ассемблере не было никаких ошибок, просто автор не знал, что в JR командах надо писать не имя метки, а конструкцию JR LABEL-$, что и позволяет прямо использовать второй операнд.

HardWareMan
19.12.2016, 17:52
Расслабитесь, дышите ровно, сосчитайте до 30. Не все мнения обязаны совпадать с Вашим. И Ваше так же не является абсолютной конечной инстанцией.

ВНЕЗАПНО! (http://radiokot.ru/forum/viewtopic.php?p=539283#p539283)
59050

Error404
19.12.2016, 19:18
Но этот автор не программист для Z80 и его мнение имеет вес 0.


Как не Z80 программисты большинство наиболее активных сектантов. Строго говоря, они и для 8080 не программисты (чота не припоминаю их грандиозных проектов из ПО). Те кто 8080-программисты, они по паре реплик выдали и свалили. :)

weiv
19.12.2016, 20:08
"- Ассемблер 8080 лучше, чем ассемблер Z80!
- Ну чем, чем он лучше?
- Чем Z80!"

Преимущество мнемоник Z80 в том, что они предлагают более высокий уровень абстракции: вместо однотипных процессорных команд, как в 8080, мнемоники z80 предлагают абстрактные инструкции, объединяющие целые группы процессорных команд. То есть ассемблер Z80 - язык программирования более высокого, по сравнению с 8080, уровня. Кроме того, ещё одно преимущество мнемоник z80 в том, что в отличие от мнемоник 8080, в них, в большинстве случаев, явно указываются регистры и флаги, с которыми оперируют команды, причем они вынесены в операндную часть мнемоники, что, как мне кажется, улучшает читабельность программ.

Кстати, по моему мнению, ассемблер x86 несет на себе явные следы влияния ассемблера z80: переход от мнемоник команд процессора к мнемоникам абстрактных инструкций (почти все команды загрузки-пересылки объединены под мнемоникой MOV, то же с инкрементами-декрементами, и т.п.), полные имена регистров. То есть, ассемблер x86 в этом плане ближе к ассемблеру Z80, чем к ассемблеру 8080. Что ещё раз говорит о прогрессивности ассемблера Z80 по сравнению с 8080.

barsik
19.12.2016, 20:17
Цитаты из чужого форума - хороший ход, но изложенные там факты не подтверждены документами. А значит проcто домыслы противников Z80. Кто не знает, Эндрю Вольф бессменно руководил INTEL до конца 90-х.


Кстати, если кто не в курсе, по воспоминаниям Эндрю Вольфа процессор 8085 был всего лишь скороспелым ответом на Z80, а не тем, что о нем обычно думают. C помощью 8085 хотели немножко уменьшить рыночный интерес к Z80, дабы не потерять рынок в преддверии выпуска 8086


Летом 1974 года, спустя несколько месяцев после выхода на рынок чипа 8080, Фэджин решил покинуть Intel и основать собственную компанию. Главная причина его ухода заключалась в том, что руководство Intel, даже начав продажи уже довольно мощного чипа 8080, все еще рассматривало микропроцессорное направление своего бизнеса лишь как хорошее подспорье для продажи чипов памяти.

В октябре 1974 года Фэджин и менеджер из Intel Ральф Унгерман основали собственную компанию - Zilog. Некоторое время Фэджин раздумывал над тем, какое изделие станет первым продуктом его компании. Образ процессора 8080 стоял перед его глазами, и он воскликнул: "Это будет Супер-80!" (во всяком случае, так он сам вспоминал позднее). В одну из субот декабря 1974 года Фэджин придумал архитектуру Z80. В апреле 1975 года в Zilog пришел Масатоси Сима, который участвовал в детализации дизайна Z80. Первый микропроцессор Z80 был выпущен в мае 1976 года (а точнее, на 23-й неделе 1976) и производился в течение более чем 20 лет.

Intel 8085 был выпущен в марте 1976 года, т.е на несколько месяцев раньше Z80. А раз раньше, то в принципе не могло быть что "8085 был ответом на Зилоговские поделки."

У ZILOG оказалась запатентованая архитектура проца на основе 8080, а у INTEL ассемблер для 8080. Вот и пришлось ZILOG выдумывать новую мнемонику для Z80, а INTEL ваять новый проц 8086, т.к. круче чем Z80 в мире 8-ми разрядных процов придумать было уже невозможно.


HardWareMan Вы на это намекаете? Что в Вашу пользу это доказывает?

Думаю, Вы хотите подтвердить мысль, что мнемоника Z80 появилась из-за того, что мнемоника 8080 была запатентована. А я полагаю, что такого быть не может. Это же мир капитализма, а не мир идиотов. И чего там патентовать - MOV JMP PUSH POP XOR CMP CPI SBC SUB и ADD точно не запатентованы, они есть в десятках ассемблеров. Остаются тошнотворные XTHL XCHG SBB LDAX DCX и LXI. Да эти бредовые мнемоники никому и даром не нужны. Да и кто такую чушь станет патентовать? Покажите на сайте патентного бюро США за 1974 года номер патента со списком запатентованных мнемоник.

А вышеприведённая цитата - это городская легенда из серии "одна бабка сказала". Это не документ. Rokl присутствует на этом сайте. Пусть расскажет народу о своих источниках этих данных.

Кроме того неверны и фактологические данные. В частности дата выпуска 8085 март 76 - проверьте это. Если это не так, то это и всё остальное тоже ставит под сомнение.

HardWareMan
19.12.2016, 21:23
barsik, это хорошо, что вы сходили туда и что-то там прочитали. Но исходный посыл был не этот. Это касается и вот этого вопроса:

HardWareMan Вы на это намекаете? Что в Вашу пользу это доказывает?
Просто есть еще один Барсик, с практически диаметрально противоположным мнением. Что делать дальше с этой информацией решать вам.

- - - Добавлено - - -

PS Касаемо мнемоник сама вика говорит (https://en.wikipedia.org/wiki/Zilog_Z80):

Because Intel had a copyright on their assembly mnemonics,[33] a new assembly syntax had to be developed for the Z80. This time a more systematic approach was used:

All registers and register pairs are explicitly denoted by their full names
Parentheses are consistently used to indicate "memory contents at" (constant address or variable pointer dereferencing) with the exception of some jump instructions.[34]
All load and store instructions use the same mnemonic name, LD, for LOAD (a return to the simplistic Datapoint 2200 vocabulary); other common instructions, such as ADD and INC, use the same mnemonic regardless of addressing mode or operand size. This is possible because the operands themselves carry enough information.

These principles made it straightforward to find names and forms for all new Z80 instructions, as well as orthogonalizations of old ones, such as LD BC,(1234).

Apart from naming differences, and despite a certain discrepancy in basic register structure, the Z80 and 8086 syntax are virtually isomorphic for a large portion of instructions. Only quite superficial similarities (such as the word MOV, or the letter X, for extended register) exist between the 8080 and 8086 assembly languages, although 8080 programs can be assembled into 8086 object code using a special assembler or translated to 8086 assembly language by a translator program.[35][36]
Ссылка за номером 33 говорит следующее:

"8080A/ 8-Bit N-Channel Microprocessor". Intel Component Data Catalog 1978. Santa Clara, CA: Intel Corporation. 1978. pp. 11–17. "All mnemonics copyright Intel Corporation 1977"
Не знаю, важен ли для вас лично год патентования, но как правило у больших корпораций мнемоники наследуются (о чем так же сказано в этой же статье про Z80) частично или полностью от предшественника. Ну и где эта ваша бабка сейчас, которая что-то там сказала?

- - - Добавлено - - -

Да, действительно. В каждом датащите, например в этом (http://matthieu.benoit.free.fr/cross/data_sheets/D8080A.pdf), после таблицы с мнемониками стоит приписка с копирайтом. А год скорее всего означает год выпуска датащита (но это мое ИМХО).
http://savepic.net/8662699.png

- - - Добавлено - - -

Вот здесь (http://www.classiccmp.org/dunfield/r/8080inst.pdf), например, стоит 1976, что подтверждает мою теорию о происхождении года.
http://savepic.net/8678058.png

- - - Добавлено - - -

Во, нашел. На радость Барсику заморочился. Вот документ (http://www.tramm.li/i8080/Intel%208080-8085%20Assembly%20Language%20Programming%201977%20 Intel.pdf), в котором стоит 74 год:

ALL MNEMONICS © 1974, 7975, 1976, 7977 INTEL CORPORATION
http://savepic.net/8713901.png
Кушайте свою шляпу, мистер Барсик. Вам посолить?

- - - Добавлено - - -

PPS Мистер Барсик, а Вас не учили, что цитата не подлежит редактированию (http://zx-pk.ru/threads/27139-mnemoniki-i8080-vs-z80.html?p=894597&viewfull=1#post894597)? Оригинал сообщения. (http://zx-pk.ru/threads/27139-mnemoniki-i8080-vs-z80.html?p=894587&viewfull=1#post894587) Это во-первых искажает изначальный смысл, а во вторых ставит под сомнение все ваши посты здесь, которые теперь с душком глубокого субъективизма. Или вы думали никто не заметит?

- - - Добавлено - - -

http://savepic.net/8673964.png
http://savepic.net/8674988.png

Denn
19.12.2016, 22:08
ВНЕЗАПНО! (http://radiokot.ru/forum/viewtopic.php?p=539283#p539283)
59050


https://pp.vk.me/c638020/v638020907/ba08/sFxqCOuwLaE.jpg

Ewgeny7
19.12.2016, 22:57
Ээээ... Товарищ Барсик таки съел шляпу??? Его аватарка куда-то всё...
Как у вас сложно, господа.
Я вот какой процессор вижу "под капотом", под тем ассемблером и живу. Что тут сложного?
Лишняя разминка для мозгов на "переключении".
Обычно всякую мелкую фигню калякаю, для себя.

HardWareMan
20.12.2016, 01:54
Ewgeny7, надеюсь, я с горяча не перегнул палку. С другой стороны, память штука коварная, может он просто что-то запамятовал за давностью лет и свято верит в искаженные факты, которые нам тут излагает. Народ хочет разобраться (с), а кроме перехода на личности что-то не выходит. Это я не только по последнему инциденту, но и по ветке про мониторы Ориона. Ведь человек же создает впечатление, что знает о чем пишет. Но какие-то детали все равно не сходятся.

PS В профиле аватарка нормальная. Может просто где-то сеть лихорадит?

barsik
20.12.2016, 09:52
При разработке мнемоник для Z80 "more systematic approach was used" Иными словами мнемоники Z80 удобнее.


Only quite superficial similarities (such as the word MOV, or the letter X, for extended register) exist between the 8080 and 8086 assembly languages

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


Важен ли для вас год патентования мнемоник?

Нет никакого патентования. Не может быть по определению. Вы что можете сейчас пойти в патентное бюро и запатентовать, например, по аналогии с MOV, слово 'ДВИГ' (а были попытки применять русские слова в ассемблерах, или вспомните ФОКАЛ). С тем же успехом Вы можете пытаться запатентовать весь русский язык или Луну.

Значок (c) означает, что продавец утверждает, что это разработал он сам или купил права для извлечения коммерческой выгоды. К патенту это не имеет отношения. И на вымышленные права фирмы INTEL на сокращения английских слов и непроизносимых буквосочетаний, другим производителям микропроцессоров было глубоко наплевать с высокой колокольни. И я что-то не заметил, что этот значок как-то помог Intel избежать многих десятков клонов 8080, выпущенных во всём мире. Что же говорить о мнемониках.

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

Для доказательства своей правоты приведите цитату из воспоминаний разработчиков Z80 типа:

"К сожалению, мнемоники 8080 оказались недоступны. Мы долго плакали по этому поводу и пришлось нам бедным выдумывать свои мнемоники. В итоге, всё сложилось к лучшему, т.к новая мнемоника оказалась намного удобнее старой."

Но скорее, Вы найдёте там такую фразу:

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


Когда появился 8086, Zilog тоже не дремал и выпустил Z8000. Но IBM сделала ставку на процессоры от Intel для своих персоналок.

Z8000 оказался настолько хорош, что был засекречен военным Министерством и поставлялся только для военных разработок. На нём летают ракеты и самолеты, плавают авианосцы. У IBM не было выбора, т.к 68000 был слишком дорог для ширпотреба. Так что это тоже не довод в пользу Intel-мнемоник.


Вас не учили, что цитата не подлежит редактированию?

Смотря чья цитата. Точнее какая она. Это Вы разозлились, что я заменил слово "нативные" на "родные"? Нет в руском языке такого слова. Я просто перевёл на понятный. Зачем уродовать русский язык?

В английском языке более 1 млн.слов. Поэтому английский не знает никто, даже сами англичане. Именно поэтому им необходим Webster, чтобы они хотя бы могли узнать слова родного языка. В нормальных языках (это все кроме английского) всего по 60 тысяч слов и каждый носитель знает их все. В нормальных языках нюансы передаются грамматикой, а в английском - лексикой, т.е огромным числом синонимов. Во многих странах введение англиканизмов запрещено и судебно преследуется. А если я начну Вам отвечать на немецком или французском (а я могу)?

А учили меня русскому языку в советской школе. И научили хорошо, в отличие от Вас. Если цитата не только безграмотная, но и корявая, оскорбляющая русский язык, то редактировать просто необходимо. Кроме того, некоторые обрывки и незаконченные фразы, также необходимо дополнять, чтобы не знакомый с историей вопроса читатель мог понять о чём речь.

Пока никто не жаловался, что исправив грамматическую ошибку или опечатку, я исказил смысл высказывания. И мне плевать нравится Вам это или нет. Я не выношу издевательств над русским языком и исправляю ошибки всегда, когда есть возможность.


это ставит под сомнение все ваши посты, которые теперь с душком глубокого субъективизма.

"Очень умно". И коряво. Все личные мнения субъективны. Каждый смотрит со своей колокольни.

А вот многие Ваши посты изобилуют мелким хамством, неуважением, желанием обидеть. Вы получаете удовольствие унижая людей, постоянно сворачивая технические обсуждения во флейм и переходя на личности. Это не по данной теме, а вообще по всем Вашим комментам мне. Есть что сказать по существу, - жмите на кнопки. Флейм не нужен. Своим вмешательством Вы уже испортили много тем, обратив их во флейм.


С другой стороны, память штука коварная, может он просто что-то забыл за давностью лет и свято верит в искажённые факты, которые нам тут излагает. Народ хочет разобраться

Это не народ хочет разобраться, а Вы лезете со старой склокой в новую тему. Верх невежливости говорить в третьем лице о присутствующем. Иллюстрация как Вы в очередной раз пытаетесь перевести техническую тему во флейм. И в очередной раз переходите на личности. Интересно какие-же искажённые факты я привёл в этой теме, что вынудило Вас влезть с подобными комментариями в 3-м лице?

Извиняюсь перед читателями, но вынужден привести цитату вне темы. Думаю вопрос вполне актуальный и касается многих людей.




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

А если этих несчастных поставить на место, то они очень злопамятны. В какой бы теме ты после этого не появился, они уже там и продолжают мелко хамить и издеваться.
.


И ещё кое-что. На мой взгляд система рэйтингов на сайте обесценена.




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

Точно также благодарности раздаются не тому, кто реально сделал что-то полезное, а тому кто ляпнул что-то остроумное или мнение оратора совпало с мнением читателя. Или же благодарностью одобряется наезд на того, кто читателю не нравится. Т.е и благодарности часто раздаются не за дела. В итоге, большое количество благодарностей также не позволяет отличить болтуна от полезного члена форума.
.


Тема себя исчерпала. Хотя исходя из основной специфики сайта резонно было ожидать, что в тему быстро набегут программисты для СИНКЛЕРА и быстро подавят числом и авторитетом жалкую кучку фанатов КР580, тщетно цепляющихся за свои старые привычки. То, что это не случилось лишь свидетельствует о том, как мало настоящих программистов любителей осталось на сайте.

Модераторы. Данную тему пора закрывать. Ни к чему и дальше "переливать из пустого в порожнее". Всё, что можно было сказать, сказали. Победителей нет. Каждому своё. Дискуссия давно превратилась в пререкания типа НЕТ - ДА - НЕТ. И грозит просто перерасти в склоку.

АМИНЬ.

Error404
20.12.2016, 11:44
Безотносительно темы, рейтинги на сайте как раз таки глубоко субъективны - это именно "спасибо" одних участников другим. Можно ни строчки кода не написать, но раздобыть редкую программу для людей, и получить "спасибо" больше, чем за полгода программинга. Или с Днем рождения поздравить. Такова специфика, она просто такая и другой нет. Практически как в жизни - приятный человек получает больше респектов, чем бука-гений.

- - - Добавлено - - -


Ээээ... Товарищ Барсик таки съел шляпу??? Его аватарка куда-то всё...
Как у вас сложно, господа.
Я вот какой процессор вижу "под капотом", под тем ассемблером и живу. Что тут сложного?
Лишняя разминка для мозгов на "переключении".
Обычно всякую мелкую фигню калякаю, для себя.

Когда пишешь что-то громоздкое в буквально минуты свободные от работы (где тоже громоздкое, но надо), лишняя бесполезная нагрузка на мозги отторгается, будь она хоть трижды запатентована. Это свойство мозга - экономить ресурсы. Садомазо с лишней работой, затратами и болью, оно доставляет только тем, кто работает не на результат, а на процесс (вот тогда мозг не возражает).

weiv
20.12.2016, 12:47
Насчет значка (с) - это знак охраны авторского права, а не патента, насколько я знаю. Авторское право и патентное право - разные вещи, авторское право не требует регистрации/патентования.

Ewgeny7
20.12.2016, 12:53
А ведь достаточно после первого оскорбления изгнать хама на 15 суток.
"Я тебе одну вещь скажу, только ты не обижайся..."(С)
Если администрация за каждый мнимый или не мнимый наезд начнет банить на 15 суток, то из этого Института Благородных Девиц уйдут все более-менее живые люди. А местные либералы засудят до дыр. Начиная с самого термина "оскорбление".
В баню бегом здесь отправляются только особо выдающиеся личности, которые очень этого добивались. Но если настаивать - получится.


К сожалению, в форуме негодная модерация.
А вот тут уже проще, есть пункт Правил Форума, который ты сейчас сознательно нарушил.
Называется он - обсуждение действий модераторов.
Ты можешь жаловаться куда угодно на работу модераторов, хоть хозяину ресурса или прочим модераторам, но - не публично. Для этого есть ЛС. Сделано, дабы не устраивался всеобщий срач.
В виде исключения и "шага навстречу" можно аргументированно сказать свое фи в теме "Форум", что логично.
Как будем дальше действовать? ;)

- - - Добавлено - - -


Когда пишешь что-то громоздкое в буквально минуты свободные от работы (где тоже громоздкое, но надо), лишняя бесполезная нагрузка на мозги отторгается, будь она хоть трижды запатентована.
Сергей, это уже из серии "каждый дро.ит как хочет, хоть в присядку" :)
Тебе удобней так, значит это не обсуждается.

Error404
20.12.2016, 13:06
Сергей, это уже из серии "каждый дро.ит как хочет, хоть в присядку" :)
Тебе удобней так, значит это не обсуждается.

Да, just for fun, имеет место быть, и его обсуждать не будем.
Но я в-основном говорил про другое. Свойство мозга - экономить энергию (подтверждено биологами и этологами). Именно поэтому обучение кроме вещей примитивных или поданных в игровой форме (тоже примитивных, вышку в игровой форме не выучишь) поначалу воспринимается мозгом как бесполезная работа и отторгается (вот почему мучение учиться в школе и базовые теоретические дисциплины в институте). Но все разительно меняется когда вдруг приходит осознание, что при помощи освоенного инструментария старые задачи решаются гораздо легче. Никакой ученый не станет решать задачу тригонометрически или алгебраически в пять шагов (уровень восьмиклассника), если она интегрально решается в одно действие. Но интегрирование сначала еще надо было освоить, сжиться с ним, уложить в мозгу, его смысл не был понятен в школе (где его учат на последнем году), но очевиден на 2 курсе института. И это основной водораздел по которому проходит флейм в данном топике. Все прочее также частично играющее, например окситоциновые привязки (человек - биохимическая фабрика), я уже пояснял в орионофлейме. :)

Ewgeny7
20.12.2016, 14:02
Свойство мозга - экономить энергию
Есть исключение - хобби.
Тут мозг могут напрягать самым непредсказуемым способом и получать из этого на выходе удовольствие :)

- - - Добавлено - - -


АМИНЬ.
Да прибудет аминь сей теме.

- - - Добавлено - - -


"каждый дро.ит как хочет, хоть в присядку"
А это - назначим вердиктом темы.