Последние темы
» Анонсы монет.автор Viktor2312 Вчера в 14:30
» Team Red Miner
автор Viktor2312 Вс Фев 28 2021, 17:43
» Пул. beepool
автор Viktor2312 Вс Фев 28 2021, 15:16
» Пул. 2miners
автор Viktor2312 Вс Фев 28 2021, 15:06
» Пул. 0769.it
автор Viktor2312 Вс Фев 28 2021, 14:56
» T-Rex
автор Viktor2312 Вс Фев 28 2021, 14:41
» SRBMiner
автор Viktor2312 Вс Фев 28 2021, 13:53
» PhoenixMiner
автор Viktor2312 Вс Фев 28 2021, 13:26
» NPlusMiner
автор Viktor2312 Вс Фев 28 2021, 13:14
» NiceHash-Miner-Legacy-Fork-Fix
автор Viktor2312 Вс Фев 28 2021, 13:02
» NiceHash-miner
автор Viktor2312 Вс Фев 28 2021, 12:53
» NBMiner
автор Viktor2312 Вс Фев 28 2021, 12:42
» Nanominer
автор Viktor2312 Вс Фев 28 2021, 12:23
» MindMiner
автор Viktor2312 Вс Фев 28 2021, 12:03
» miniZ
автор Viktor2312 Вс Фев 28 2021, 11:32
» lolMiner
автор Viktor2312 Вс Фев 28 2021, 11:01
» KBMiner
автор Viktor2312 Вс Фев 28 2021, 10:58
» Hash Auger
автор Viktor2312 Вс Фев 28 2021, 10:33
» Пул. newpool.pw
автор Atari1974 Вс Фев 28 2021, 10:05
» GMiner
автор Viktor2312 Вс Фев 28 2021, 00:30
» EWBF
автор Viktor2312 Вс Фев 28 2021, 00:28
» Ethminer
автор Viktor2312 Сб Фев 27 2021, 19:57
» Ищу файл печатной платы
автор freddy Пт Фев 26 2021, 14:01
» Языки программирования. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Фев 25 2021, 19:52
» CryptoDredge
автор Viktor2312 Чт Фев 25 2021, 18:30
Поиск
Микропроцессор КР580ВМ80А (i8080)
Страница 1 из 1 • Поделиться
Микропроцессор КР580ВМ80А (i8080)
1
Полезная, цветная табличка. Скачать Intel_8080_OPCODES.rar
Размещу ещё тут вот такую табличку, с системой команд микропроцессора КР580ВМ80А, красочная, красивая, полезная:

Система_команд_КР580ВМ80А
Картинка кликабельна.
Размещу ещё тут вот такую табличку, с системой команд микропроцессора КР580ВМ80А, красочная, красивая, полезная:

Система_команд_КР580ВМ80А
Картинка кликабельна.
Последний раз редактировалось: Viktor2312 (Пт Апр 01 2016, 12:40), всего редактировалось 1 раз(а)
Viktor2312- Гуру+
- Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск
Re: Микропроцессор КР580ВМ80А (i8080)
2
Хорошая книжка по программированию на ассемблере:
Скачать Левенталь Вар.1
Скачать Левенталь Вар.2
Скачать Левенталь Вар.3
Ещё одна, неплохая:
Скачать Гудыменко Вар.1
Скачать Левенталь Вар.1
Скачать Левенталь Вар.2
Скачать Левенталь Вар.3
Ещё одна, неплохая:
Скачать Гудыменко Вар.1
Viktor2312- Гуру+
- Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск
Re: Микропроцессор КР580ВМ80А (i8080)
3
А точнее - красочная, красивая и... бесполезная.Viktor2312 пишет:табличка... красочная, красивая, полезная
От этой таблички польза, если найдётся кто-то ненормальный, кто решит программировать в машинных кодах. Для реального использования нужна другая табличка, в которой были бы приведены флаги изменяемые конкретной командой и число машинных тактов. В журнале РАДИО такой таблички не было опубликовано. Не знаю, где найти такую таблицу для КР580, может быть в иностранном даташите. Но можно пользоваться аналогичной табличкой для Z80, если помнить о разном числе тактов команд и отличии в работе флага PARITY.
Ещё в этой теме полезно привести информацию о работе 12-ти недокументированных команд КР580 (кодов команд 244, а всего кодов 256). Эти команды очень хорошо себя зарекомендовали в борьбе с пиратами и кракерами, т.е для защиты кодов программ от модификаций.
На заре компьютеризации были такие придурки, которые находили в дампе программ титры автора и заменяли их на что-то своё и это называлось у них "кракнуть" программу. Такие деяния почему-то были популярны. Но когда некоторые программы специально защитили от модификаций, эти идиоты ничего не смогли сделать. А также кракнуть грамотную МГ-защиту от копирования также никому не удалось. Впрочем МГ-защиту в этом случае просто "обходили", используя слепок ОЗУ. Но вот защиту кода от модификаций без трудоёмкого крака сломать невозможно.
Относительно КР580 интересна тема оверклокинга. По моим данным КР580 без проблем работает на 3.5 МГЦ, даже без принятия каких либо мер. Лишь бы шина была не перегружена и дешифратор был серии 1533. Подняв питание до 5.25 В можно использовать КР580 и на такте 4 МГЦ, однако это требует наличия большого и медного радиатора. Вообще КР580 устойчив к перегреву, работает при температуре ~100'C, когда он разогрет так, что почти самовыпаивается из платы.
Последний раз редактировалось: barsik (Пн Окт 09 2017, 17:10), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург
Re: Микропроцессор КР580ВМ80А (i8080)
4
barsik пишет:От этой таблички польза, если найдётся кто-то ненормальный, кто решит программировать в машинных кодах.
Ну, смотрите на меня, смотрите, вот он я, тот не нормальный, кто это делает, так ещё и от этого получает удовольствие...
Viktor2312- Гуру+
- Сообщения : 13742
Дата регистрации : 2012-08-10
Возраст : 42
Откуда : Пятигорск
Есть ли польза от недокументированных команд?
5
В микропроцессоре КР580 (насчёт Intel 8080 не знаю) имеются недокументированные команды. Из 256 возможных кодов 244 кода документированы в РТМ и исполняются как команды. А про 12 оставшихся кодов в документации ничего не указано. Логично предположить, что эти коды совсем недопустимы (например, в процессоре 6502 недокументированные команды вызывают завис). Но в КР580 это не так. Отечественные любители открыли, что эти 12 кодов в КР580 дублируют команды из основного набора команд, в частности NOP, JMP и CALL. Таким образом у КР580 есть три альтернативные команды NOP, JMP и CALL.
Первыми эти недокументированные команды КР580 в 1988 обнаружили и стали использовать пионеры компьютеризации Лукин и Титков из КООП "SP-580" для защиты от копирования программ СПЕЦИАЛИСТА. Это сработало потому что, во-первых, никто не знал о таких командах, а во-вторых, отладчики и дизассемблеры сбивались при этих командах, что затрудняет крак.
Впрочем, МГ-защита в программах КООП SP-580 была слабой. А вот защиты программ некоторых других программистов с использованием того же принципа никто не сумел сломать до сих пор, даже в эмуляторе. Для защиты программы от модификации одновременно используется контроль на целостность кода и запутанность самого кода с использованием недокументированных команд (что исключает использование отладчика - требуется очень трудоёмкий анализ на уровне машинных кодов, причём код программы специально запутан). Заменить байты на документированные нельзя, т.к этот код не только прогоняется, но ещё и хитрым способом проверяется на немодифицированность. В итоге, оказываетчя проще написать свою аналогичную программу с нуля, чем пытаться взломать чужую.
О недокументированных командах стало известно в 1989, когда кракеры в процессе взлома МГ-защит коммерческих программ для СПЕЦИАЛИСТА, обнаружили эти команды. Долгое время эта тайна держалась в большом секрете, но в середине 1990-тых эта информация стала известной многим пользователям ОРИОНА.
В базовых отечественных компьютерах, кроме как для вредительства, использовать эти команды нельзя. Однако при несложной доработке схемы, можно всё-же получить пользу. В многих отечественных компьютерах сдуру применено слишком маленькое ПЗУ, что не позволяет разместить там много подпрограмм. Особенно это фатально для ОРИОНА, где в крошечное ПЗУ невозможно уместить поддержку богатых графических возможностей. Из-за этого системные программы ОРДОС имеют убогий дизайн.
Т.к всё адресное пространство CPU занято, то расширять ПЗУ можно только за счёт его включения в участке памяти вместо ОЗУ с помощью хитроумного диспетчера памяти. Используя недокумментируемые команды можно сделать процесс включения/отключения "теневого" ПЗУ без специально программно управляемого диспетчера ОЗУ.
Команда JMP имеет код C3. Однако недокумментированный код CB делает то же самое. Потому схему можно изменить так, чтобы при чтении кода команды CB происходило автоматическое переключение конфигурации (например, включение в адресах 0000...7FFF теневого ПЗУ). Процессор КР580 специально для таких целей в слове состояния по биту D5 выводит флаг, что идёт чтение команды. Защёлкнув D5 по SYNC на триггере получаем сигнал М1, сигнализирующий о том, что на шину читается код команды. Добавив схему совпадения на код CB (удобнее всего на 556 РТ4) и триггер ТМ2 формирующий сигнал ROM_ON, при выполнении альтернативной команды JMP (с нестандартным кодом CB), включение доп.ПЗУ будет происходить автоматически. Разместив в ОЗУ выше 8000 табличку входов, например F300, F303, F306..., по вызову этих входов, ПЗУ будет включаться автоматически. Для этого на адресах F300, F303, F306 вместо стандартной команды JMP с кодом C3 должны стоять альтернативные команды JMP, т.е байты CB, за которыми следуют адреса исполнительных частей подпрограмм в дополнительном ПЗУ. Для отключения ПЗУ, выход из подпрограмм в доп.ПЗУ делается на одну точку (например в ПЗУ F800), где стоят лишь две команды STA FB00 и RET. Сигнал строба по STA FB00 в схеме ОРИОНА есть. Достаточно завести его на вход R триггера ROM_ON. Тогда отключение ПЗУ также происходит автоматически при возврате из п/п-ммы в теневом ПЗУ. Можно для этих целей использовать альтернативный RET (D9), но это невыгодно, т.к деталей больше.
Для программ это выглядит так, как будто прямо в адресное просторанство добавлено 32 кб ПЗУ, причём оно совершенно не мешает программам (как будто процессор адресует не 64 кб, а 96). При нужде аналогично можно использовать альтернативные команды CALL с кодами DD, ED и FD. Это, например, позволит автоматически включать три банки ПЗУ. Т.е, если вставить в программу, например, CALL с кодом DD, то включается одно ПЗУ, а с кодом ED - другое ПЗУ, с кодом FD - третье ПЗУ. А альтернативные команды NOP можно использовать для управления однобитовыми портами. Например, код 08 устанавливает бит, а код 10 сбрасывает. Причём, если для выделения кода альтернативной команды используется 556 РТ4, то число деталей даже не растёт.
Применения альтернативных кодов можно найти и для РК86. Например, можно точно также использовать альтернативный JMP для автоматического включения дополнительного ПЗУ. Например, чтобы часть стандартных подпрограмм ПЗУ F800 перенести в доп.ПЗУ. Тогда на входах F803, F806, F809... код C3 меняем на CB, отчего при вызове этих п/п-рамм будет переход в доп.ПЗУ (установленное например на 8000...BFFF). Можно так же автоматически переключать в окне 0...7FFF ОЗУ, если оно на 565 РУ5. Например, альтернативный JMP (CB) включает в этом окне вторую "невидимую" полубанку из РУ5. Сделав в ПЗУ подпрограммы F836/39 для чтения и записи байта из "теневой" полубанки, без изменения архитектуры получается дополнительные 32 кб для данных.
Первыми эти недокументированные команды КР580 в 1988 обнаружили и стали использовать пионеры компьютеризации Лукин и Титков из КООП "SP-580" для защиты от копирования программ СПЕЦИАЛИСТА. Это сработало потому что, во-первых, никто не знал о таких командах, а во-вторых, отладчики и дизассемблеры сбивались при этих командах, что затрудняет крак.
Впрочем, МГ-защита в программах КООП SP-580 была слабой. А вот защиты программ некоторых других программистов с использованием того же принципа никто не сумел сломать до сих пор, даже в эмуляторе. Для защиты программы от модификации одновременно используется контроль на целостность кода и запутанность самого кода с использованием недокументированных команд (что исключает использование отладчика - требуется очень трудоёмкий анализ на уровне машинных кодов, причём код программы специально запутан). Заменить байты на документированные нельзя, т.к этот код не только прогоняется, но ещё и хитрым способом проверяется на немодифицированность. В итоге, оказываетчя проще написать свою аналогичную программу с нуля, чем пытаться взломать чужую.
О недокументированных командах стало известно в 1989, когда кракеры в процессе взлома МГ-защит коммерческих программ для СПЕЦИАЛИСТА, обнаружили эти команды. Долгое время эта тайна держалась в большом секрете, но в середине 1990-тых эта информация стала известной многим пользователям ОРИОНА.
В базовых отечественных компьютерах, кроме как для вредительства, использовать эти команды нельзя. Однако при несложной доработке схемы, можно всё-же получить пользу. В многих отечественных компьютерах сдуру применено слишком маленькое ПЗУ, что не позволяет разместить там много подпрограмм. Особенно это фатально для ОРИОНА, где в крошечное ПЗУ невозможно уместить поддержку богатых графических возможностей. Из-за этого системные программы ОРДОС имеют убогий дизайн.
Т.к всё адресное пространство CPU занято, то расширять ПЗУ можно только за счёт его включения в участке памяти вместо ОЗУ с помощью хитроумного диспетчера памяти. Используя недокумментируемые команды можно сделать процесс включения/отключения "теневого" ПЗУ без специально программно управляемого диспетчера ОЗУ.
Команда JMP имеет код C3. Однако недокумментированный код CB делает то же самое. Потому схему можно изменить так, чтобы при чтении кода команды CB происходило автоматическое переключение конфигурации (например, включение в адресах 0000...7FFF теневого ПЗУ). Процессор КР580 специально для таких целей в слове состояния по биту D5 выводит флаг, что идёт чтение команды. Защёлкнув D5 по SYNC на триггере получаем сигнал М1, сигнализирующий о том, что на шину читается код команды. Добавив схему совпадения на код CB (удобнее всего на 556 РТ4) и триггер ТМ2 формирующий сигнал ROM_ON, при выполнении альтернативной команды JMP (с нестандартным кодом CB), включение доп.ПЗУ будет происходить автоматически. Разместив в ОЗУ выше 8000 табличку входов, например F300, F303, F306..., по вызову этих входов, ПЗУ будет включаться автоматически. Для этого на адресах F300, F303, F306 вместо стандартной команды JMP с кодом C3 должны стоять альтернативные команды JMP, т.е байты CB, за которыми следуют адреса исполнительных частей подпрограмм в дополнительном ПЗУ. Для отключения ПЗУ, выход из подпрограмм в доп.ПЗУ делается на одну точку (например в ПЗУ F800), где стоят лишь две команды STA FB00 и RET. Сигнал строба по STA FB00 в схеме ОРИОНА есть. Достаточно завести его на вход R триггера ROM_ON. Тогда отключение ПЗУ также происходит автоматически при возврате из п/п-ммы в теневом ПЗУ. Можно для этих целей использовать альтернативный RET (D9), но это невыгодно, т.к деталей больше.
Для программ это выглядит так, как будто прямо в адресное просторанство добавлено 32 кб ПЗУ, причём оно совершенно не мешает программам (как будто процессор адресует не 64 кб, а 96). При нужде аналогично можно использовать альтернативные команды CALL с кодами DD, ED и FD. Это, например, позволит автоматически включать три банки ПЗУ. Т.е, если вставить в программу, например, CALL с кодом DD, то включается одно ПЗУ, а с кодом ED - другое ПЗУ, с кодом FD - третье ПЗУ. А альтернативные команды NOP можно использовать для управления однобитовыми портами. Например, код 08 устанавливает бит, а код 10 сбрасывает. Причём, если для выделения кода альтернативной команды используется 556 РТ4, то число деталей даже не растёт.
Применения альтернативных кодов можно найти и для РК86. Например, можно точно также использовать альтернативный JMP для автоматического включения дополнительного ПЗУ. Например, чтобы часть стандартных подпрограмм ПЗУ F800 перенести в доп.ПЗУ. Тогда на входах F803, F806, F809... код C3 меняем на CB, отчего при вызове этих п/п-рамм будет переход в доп.ПЗУ (установленное например на 8000...BFFF). Можно так же автоматически переключать в окне 0...7FFF ОЗУ, если оно на 565 РУ5. Например, альтернативный JMP (CB) включает в этом окне вторую "невидимую" полубанку из РУ5. Сделав в ПЗУ подпрограммы F836/39 для чтения и записи байта из "теневой" полубанки, без изменения архитектуры получается дополнительные 32 кб для данных.
Последний раз редактировалось: barsik (Ср Янв 06 2021, 00:05), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург
Управляющее слово для РУС ППА в режиме 0
6
Intel 8255 нашла широкое применение даже для неродных процессоров - Z80, 8088 и 6502, т.к она удобнее, чем Z80PIO (UB855) или 6821/6521, т.к у неё три порта, а не два.
В 99 процентах случаев ППА ВВ55 в любительских самоделках используется в режиме 0. Хотя ВВ55 имеет ещё режимы 1 и 2, в котором биты порта C используются как сигналы стробирования, квиттирования и готовности. Единственно, где встречается ВВ55 в другом режиме это в РК-КНГМД А.Мельникова из 1989 года (не путать с РК-КНГМД Е.Седова из 1993). Там для ускорения обмена использован именно такой режим аппаратной поддержки параллельного интерфейса.
Для не особо извращающегося над ВВ55 программиста достаточно иметь перед глазами нижеприведённую табличку (которой, кстати, в виденных мной книгах нет). Пока я не имел этой таблички, то вынужденно тратил много времени, чтобы разобраться в режиме ВВ55 по книгам.
В таблице приведены байты лишь для наиболее популярного режима 0 (уст. по сбросу). Одно из этих управляющих слов необходимо записать в регистр управляющего слова ВВ55 (который для ОРИОНА равен F403, F503, F603, а для РК - 8003 и A003).
В 99 процентах случаев ППА ВВ55 в любительских самоделках используется в режиме 0. Хотя ВВ55 имеет ещё режимы 1 и 2, в котором биты порта C используются как сигналы стробирования, квиттирования и готовности. Единственно, где встречается ВВ55 в другом режиме это в РК-КНГМД А.Мельникова из 1989 года (не путать с РК-КНГМД Е.Седова из 1993). Там для ускорения обмена использован именно такой режим аппаратной поддержки параллельного интерфейса.
Для не особо извращающегося над ВВ55 программиста достаточно иметь перед глазами нижеприведённую табличку (которой, кстати, в виденных мной книгах нет). Пока я не имел этой таблички, то вынужденно тратил много времени, чтобы разобраться в режиме ВВ55 по книгам.
Таблица для выбора УС для записи в РУС 580ВВ55
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Управляющее Порт А Порт С (ст.) Порт B Порт C (мл.)
слово (PA0...PA7) (PC4...PC7) (PB0...PB7) (PC0...PC3)
80H Вывод Вывод Вывод Вывод
81H Вывод Вывод Вывод Ввод
82H Вывод Вывод Ввод Вывод
83H Вывод Вывод Ввод Ввод
88H Вывод Ввод Вывод Вывод
89H Вывод Ввод Вывод Ввод
8AH Вывод Ввод Ввод Вывод
8BH Вывод Ввод Ввод Ввод
90H Ввод Вывод Вывод Вывод
91H Ввод Вывод Вывод Ввод
92H Ввод Вывод Ввод Вывод
93H Ввод Вывод Ввод Ввод
98H Ввод Ввод Вывод Вывод
99H Ввод Ввод Вывод Ввод
9AH Ввод Ввод Ввод Вывод
9BH Ввод Ввод Ввод Ввод
В таблице приведены байты лишь для наиболее популярного режима 0 (уст. по сбросу). Одно из этих управляющих слов необходимо записать в регистр управляющего слова ВВ55 (который для ОРИОНА равен F403, F503, F603, а для РК - 8003 и A003).
barsik- Ветеран
- Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург
.
7
Несколько интересных мне ссылок про микро процессоры.
Любопытно, что вот здесь утверждается, что практически все страны выпуская клоны 8080 пиратствовали, т.е производили клоны процессора не купив лицензию, не только СССР это практиковала. А вот странность, что, за исключением 573 РФ1, все вот эти микросхемы у меня есть.
Любопытно, что вот здесь утверждается, что практически все страны выпуская клоны 8080 пиратствовали, т.е производили клоны процессора не купив лицензию, не только СССР это практиковала. А вот странность, что, за исключением 573 РФ1, все вот эти микросхемы у меня есть.
barsik- Ветеран
- Сообщения : 1149
Дата регистрации : 2016-11-10
Откуда : С-Петербург
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|