Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega88 - выжита по максимому
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
lock
1к озу, 8к флэш - парень выдает на экран Множество Джулио!
http://www.linusakesson.net/scene/craft/index.php
в приложении исходники, по ссылке еще и видео!
Просто шокирует!
MrYuran
Кто бы ещё объяснил, что за множество такое и в чём крутизна...
Огурцов
Цитата(MrYuran @ Oct 2 2008, 05:16) *
Кто бы ещё объяснил, что за множество такое и в чём крутизна...

В разрешении, наверно ? 16 на 16 - крутааа...
slog
Кого шокирует? Нынешних виндовс-программёров шокируют цифры 1к и 8к?
Надо же, как быстро люди забыли сколько памяти было в первых компьютерах и какие задачи они решали.
MrYuran
не пожалел общественного траффика, глянул.
Нормально.
Хотя, если вспомнить, что вытворяли на синклере, например, кто-нибудь пробовал нарисовать карту Saboteur или Pentagram? Это ж надо было такое в считанные килобайты утолкать...
Ph. Anatoliy
Вау ! Несомненно парень зажег.... Вопрос - на кой это все нужно ? Где практический выход проекта (на такую графику и звук уже никого не купишь)?
MrYuran
Цитата(Ph. Anatoliy @ Oct 2 2008, 11:22) *
Вау ! Несомненно парень зажег.... Вопрос - на кой это все нужно ? Где практический выход проекта (на такую графику и звук уже никого не купишь)?

Искусство ради искусства.
Хотя можно было хотя бы тетрис чтоли огненный сделать...
Или пинг-понг...
gormih
Ретро. По видимому человек соскучился по спектруму.. Решил то же самое сделать на атмеге.



Только в его распоряжении теперь не 3.5 Мгц при максимум 2.5-3 Мипсах, а 20 Мгц и 20 мипс... Имхо при большем желании можно было бы и круче сделать. Один вопрос - зачем?
MrYuran
Цитата(gormih @ Oct 2 2008, 12:36) *
Ретро. По видимому человек соскучился по спектруму.. Решил то же самое сделать на атмеге.
Только в его распоряжении теперь не 3.5 Мгц при максимум 2.5-3 Мипсах

Не соврать бы, но по-моему, у Z80 минимальный цикл за 5 тактов выполняется. Так что ни о каких 3 Мипсах не может быть и речи
slog
Примерно 1 мипс был у спектрума и подобных. Против примерно 16...20-ти у AVR.
gormih
Цитата(MrYuran @ Oct 2 2008, 12:42) *
Не соврать бы, но по-моему, у Z80 минимальный цикл за 5 тактов выполняется. Так что ни о каких 3 Мипсах не может быть и речи

Ну да, Вы правы - минимум 4. А такие спецэффекты мы там видели и даже сами кое что делали :-) Это при том что по сути даже на 1 Мипс не тянуло.
Огурцов
Z80 - CISC, плюс примерно 1 байт на команду. В общем, из _M128_ неплохой был бы синклер ) и на порядок быстрее. Поэтому же на M88 разрешение могло бы быть гораздо выше, чем один спрайт, растянутый на весь экран.

зы: для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц.
gormih
Правда не стоит забывать, что у спектрума вывод на экран был сделан аппаратно... Тут же по видимому вывод на экран через перерывание таймера, из буфера. Но все равно это максимум 10% от производительности при том разрешении, что на экране :-)
SasaVitebsk
Цитата(gormih @ Oct 2 2008, 11:56) *
Правда не стоит забывать, что у спектрума вывод на экран был сделан аппаратно... Тут же по видимому вывод на экран через перерывание таймера, из буфера. Но все равно это максимум 10% от производительности при том разрешении, что на экране :-)

Это не 10%, а примерно 70-90. Отсюда и картинка такая. Не помню честно как там у Z80 частота делилась, но у i8080 при кварце 20МГц выход был 0.5 Мипса. По моему стандартные Z80 тоже мипса не достигали. Просто система команд намного мощнее была.
Ну и звук остальное доедает. smile.gif


PS: Всётаки впечатляет. smile.gif Похоже на XMega у него пол винды влезет. smile.gif
Огурцов
Цитата(SasaVitebsk @ Oct 2 2008, 09:19) *
у i8080 при кварце 20МГц выход был 0.5 Мипса

Это у i8080 делилась на 12, 0.8 MIPS, помнится, в результате было. А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось.
gormih
Цитата(Огурцов @ Oct 2 2008, 13:54) *
А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось.

В ZX Spectrum 48 и 128 стояли процессоры Z80A, их номинальная тактовая частота = 3.5 МГц. Это однозначно. Большая тактовая частота - 7 МГц была у Z80B, но его устанавливали только в "навороченные" спектрумы, собранные радиолюбителями... по своей сути они уже и спектрумами не являлись. Вся фишка в том, что на этих 3.5 МГц мы видели похожую картинку, что в видеоролике.
Огурцов
Z80 (2,5 МГц) Z80A (4 МГц) Z80В(6МГц) Z80Н(8МГц)

зы: Да я и говорю - жутко слабо, тема производительности меги88 не раскрыта.
otrog
Цитата(Огурцов @ Oct 2 2008, 13:54) *
Это у i8080 делилась на 12, 0.8 MIPS, помнится, в результате было. А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось.

В спектруме частота у Z80 3,5МГц.
Самая быстрая операция типа регистр - регистр выполняется за 4 такта (0,875 МИПС).
Самая медленная за 12 тактов (0,292 МИПС)
Т.е. среднепотолочная производительность ~0,5835 МИПС
+ Видеоконтроллер аппаратный(к тому же пиксельный растр двухцветный) + ОЗУ 48кб или 128 кб.

Цитата(Огурцов @ Oct 2 2008, 14:11) *
зы: Да я и говорю - жутко слабо, тема производительности меги88 не раскрыта.

Вот хотябы статичную картинку, наподобие той, что в видеоролике на 3:27 попробуйте сделать, тогда и делайте такие заявления.

ПС Потенциал меги раскрыт полностью a14.gif .
ППС Сдается мне, что там разрешение поболее чем 64х64 будет.
Огурцов
Цитата(otrog @ Oct 2 2008, 10:33) *
В спектруме частота у Z80 3,5МГц.

Спектрумы были разные. В моем (точнее в одном из, который был дольше всего) было 4MHz, при 16MHz тактовой.

Цитата(otrog @ Oct 2 2008, 10:33) *
Самая быстрая операция типа регистр - регистр выполняется за 4 такта (0,875 МИПС).
Самая медленная за 12 тактов (0,292 МИПС)
Т.е. среднепотолочная производительность ~0,5835 МИПС

среднепотолочная

Цитата(otrog @ Oct 2 2008, 10:33) *
Вот хотябы статичную картинку, наподобие той, что в видеоролике на 3:27 попробуйте сделать, тогда и делайте такие заявления.

Так жеж пробовал:
Цитата(otrog @ Oct 2 2008, 10:33) *
для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц.

Это _без обвязки_. А если еще пару регистров/мультиплексоров добавить - вообще конфетку можно сделать. Ну чисто из спортивного интереса. А в практическом плане вряд ли какой интерес представляет. Потому как есть специализированные, гораздо более продвинутые чипы и ценой вроде как не сильно дороже.
otrog
Цитата(Огурцов @ Oct 2 2008, 14:59) *
среднепотолочная

Ну ладно
мега 20МГц
команды выполняются за 1-4 такта(20 - 5 МИПС)
среднепотолочная будет 12,5 МИПС.
разница между спектрумом и мегой - 12,5/0,5835=21,4 раза.
Много?
Да, если не учитывать, что мега программно выводит графику и программно синтезирует звук.
Цитата(Огурцов @ Oct 2 2008, 14:59) *
Так жеж пробовал:
для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц.

даже 640x480х1bit это уже 38400 байт памяти видеобуфера. Как в один кристалл меги это все поместить? Мож чего-то не понимаю. Объясните плиз.
Кстате в обсуждаемой поделке тоже неясно как реализован видеобуфер. Динамическая индикация какая-то получается. Типа посчитали значение цвета для пикселя и тут же вывели его? 07.gif
Огурцов
Цитата(otrog @ Oct 2 2008, 11:56) *
программно синтезирует звук

Ну что Вы в самом деле - куда проще, чем видео. На первых пиках часы поверх TV-сигнала выводили, с отличным качеством. А тут даже видеоусилителей нет, т.е. автор, наверно, еще не видел, как выглядят на экране цветовые переходы от его девайса. Из-за никакого разрешения ?

Цитата(otrog @ Oct 2 2008, 11:56) *
даже 640x480х1bit это уже 38400 байт

Режим текстовый - хвататет. Фонт во flash. Но при желании можно, наверно, спрайтов в т.ч. и в ОЗУ наделать - ничем не хуже, чем в синклеровских игрушках.
defunct
Цитата(gormih @ Oct 2 2008, 11:50) *
А такие спецэффекты мы там видели и даже сами кое что делали :-) Это при том что по сути даже на 1 Мипс не тянуло.

Упускаете из виду, что Z80 не занимался непосредственно формированием аналогового сигнала. Он просто клал картинку в память видео контроллера, для этого MIPS'ы не нужны.
Огурцов
Я насчитал 108 точек по горизонтали 640/108/16*20 - примерно в 7-8 раз хуже, чем потенциально достижимо. Не ограничивал бы он себя "single-chip" - было бы гораздо интереснее и с меньшим напрягом.
gormih
Цитата(defunct @ Oct 2 2008, 16:16) *
Упускаете из виду, что Z80 не занимался непосредственно формированием аналогового сигнала.

Если внимательно прочесть всю тему - увидите, что всетаки не упускаю 05.gif
defunct
Цитата(gormih @ Oct 2 2008, 16:31) *
Если внимательно прочесть всю тему - увидите, что всетаки не упускаю 05.gif

Если имеется в виду это:
Цитата
Но все равно это максимум 10% от производительности при том разрешении, что на экране :-)

то боюсь это не так. Во первых это реал-тайм задача, промазали по времени получили искажения, во вторых если взять во внимание что "One display line takes 24 μs" это не 10%, а как минимум 70% если не все 90% прозводительности занято формированием рисунка.

Хотя что там гадать код вроде как доступен, просто берем и смотрим.
Ph. Anatoliy
Подведем черту ! ____________________

Проект аля "программирование ради программирования", однако автор молодец.
SasaVitebsk
Да. Такие вещи создаются для оттачивания мастерства и владения в совершенстве железом контроллера и его командами.

Но, по-моему разумению, это незначительно помогает в задаче "создание нового изделия".
На мой взгляд задачи проектировщика следующие.

1) Максимально быстро создать проект
2) Минимизировать возможность ошибки
3) При создании писать код с максимальными возможностями заимствования в других проектах
4) Предусмотреть развитие проекта
5) Предусмотреть преемственность при дальнейшем развитии проекта.
6) Предусмотреть возможные маркетинговые ходы для появления семейства изделий.
7) Проанализировать возможные "смежные" области проекта
8) Проект должен быть максимально платформа-независимым.

Вот тут наблюдаются расхождения практически по всем пунктам. smile.gif
Nick_Shl
Цитата(Огурцов @ Oct 2 2008, 11:55) *
зы: для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц.
Можно подробнее?
Простой подсчет показывает: 640 * 480 * 60 = 18432000 пикселей. Или 18,432 мегаПикселей. Если на один пиксель один такт минимум 18мГц частота должна быть. В реальности так не получится, да и частота повыше - есть ещё зоны обратного хода луча...
SasaVitebsk
Нет ну тут Огурцов имел ввиду по видимому с внешним контроллером видио. Ну и, соответственно с внешней памятью. На чём нибудь типа m8515.

Ну если так рассуждать, то цепочка следующая появляется.

1) Как бы не был быстр контроллер, применение софтового контроллера дисплея - нонсенс ничем не оправданный.
Выбираем аппаратный контроллер дисплея. (внешний либо встроенный)
2) Для хорошего разрешения необходимо много ОЗУ.
Выбираем внешнее ОЗУ
3) Для загрузки внешних программ необходимо чтобы программы могли исполнятся из ОЗУ.
AVR не катит
4) Раз AVR не катит, то ближайший по цене, который катит - ARM. К томуже он быстрее всё это исполнять будет и адресное пространство побольше.
5) Если уже брать ARM с внешней памятью, то лучше ARM9. Разница в цене - невелика.
6) Если взяли ARM9, то там предусмотрена работа с SD картами - применяем.
7) Если уж об удобстве речь, то лучше сразу OS полноценную с полноценной файловой системой поставить.
8) Если ось ставить, учитывая что ARM9, то LINUX.
9) Если забомбили всё это, то писать ничего не надо, так как прибамбов на Linux и так хватает. Например DOOM.
smile.gif
otrog
OFF

Цитата(SasaVitebsk @ Oct 3 2008, 01:47) *
Ну если так рассуждать, то цепочка следующая появляется.
...
smile.gif

Ога
10) Если DOOM, с его убогой графикой надоедает, покупаем нормальный PC и ставим на него HL2 или там Spore
11) Если габариты этого агрегата не устраивают, берем ноутбук.
12) ...
smile.gif
KP580BM80
Цитата(Огурцов @ Oct 2 2008, 12:54) *
Это у i8080 делилась на 12, 0.8 MIPS, помнится, в результате было. А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось.
У i8080 частота кварца предварительно делится на 9 внешней ИМС тактового генератора. А из полученного значения считаются такты от 4 до 12 (или 13 не помню) на команду. В среднем получается существенно меньше чем 0.8 MIPS.
Огурцов
Цитата(Nick_Shl @ Oct 2 2008, 20:39) *
Если на один пиксель один такт минимум 18мГц частота должна быть.

Один пиксель на один такт. Длительность развертки - 32uS, при частоте кварца 20MHz - 640 пикселей, ровно. При 16 - 512. С обратным ходом, естественно, хоть он у мониторов довольно мал. Но таки обратие внимание на мои слова "примерно" и "около".

Цитата(Nick_Shl @ Oct 2 2008, 20:39) *
В реальности так не получится, да и частота повыше - есть ещё зоны обратного хода луча...

В реальности так и получается.


Цитата(SasaVitebsk @ Oct 2 2008, 21:47) *
Нет ну тут Огурцов имел ввиду по видимому с внешним контроллером видио. Ну и, соответственно с внешней памятью. На чём нибудь типа m8515.

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


Цитата(KP580BM80 @ Oct 3 2008, 04:50) *
В среднем получается существенно меньше чем 0.8 MIPS.


Не понимаю, как считать "в среднем" ? Я беру корткую команду и считаю для нее. А для меги "в среднем" тоже не один мипс на мегагерц получается, так ведь ?

Цитата
Выполнение каждой команды производится микропроцессором в строго определенной последовательности действий, которая определяется кодом команды и синхронизируется сигналами Ф1 и Ф2 тактового генератора. Цикл команды - это время выполнения команды. За это время: команда выбирается из памяти, дешифрируется код команды, формируются управляющие сигналы для выполнения команды, завершается воздействие управляющих сигналов. Цикл команды разбивается на машинные циклы - это время, требуемое для обращения к памяти или к устройствам ввода - вывода. Цикл команды состоит из стольких машинных циклов, сколько обращений к памяти или к УВВ потребуется для выполнения этой команды. Команды этого микропроцессора могут содержать от 1 до 5 машинных циклов. В свою очередь каждый машинный цикл состоит из тактов - наименьший промежуток времени, необходимый для выполнения одного элементарного действия в микропроцессоре. Такт равен 1 периоду тактовых импульсов тактового генератора. Машинный цикл может состоять от 3 до 5 тактов. Первые три такта требуются для организации обмена с памятью, а второй и третий такты - для выполнения внутренних операций в микропроцессоре. Отсчет тактов ведется от положительных фронтов импульсной последовательности Ф1. При выполнении любой команды сначала считывается первый байт команды из памяти. Простые команды выполняются за один машинный цикл; сложные команды - за 5 машинных циклов с восемнадцатью тактами.

©
На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д.
Nick_Shl
Цитата(Огурцов @ Oct 3 2008, 09:35) *
Один пиксель на один такт. Длительность развертки - 32uS, при частоте кварца 20MHz - 640 пикселей, ровно. При 16 - 512. С обратным ходом, естественно, хоть он у мониторов довольно мал. Но таки обратие внимание на мои слова "примерно" и "около".
Не согласен с утверждением "Один пиксель на один такт". Кроме загрузки из памяти в регистр, ещё нужен цикл и инкремент указателя...
Огурцов
Цитата(Nick_Shl @ Oct 3 2008, 07:17) *
Кроме загрузки из памяти в регистр, ещё нужен цикл и инкремент указателя...

Так люди разные - кому-то еще си для того же самого потребуется. А в результате задачка не будет решена и на 200MHz ARMе.
MrYuran
Чтоб зазря не спорить, предлагаю соц. соревнование: кто больше буквовков разных на экране написать сможет. Чтобы какая-то практическая ценность была - пусть это будет терминал.
То есть кидаем в УАРТ строки символов (допустим, на 9600) и видим их на экране. Можно ещё клаву подцепить PS/2 и тогда полноценный терминал получается.

Что скажете?

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

И вот другой начальник этому говорит: а помнишь, мол, денди? 8 бит, считанные мегагерцы, памяти никакой, программы по нескольку килобайт, а вон какую красоту рисовали. А ты типа имеешь 486 процессор, много всяких ресурсов, линукс какой-то ещё туда суёшь и всё мало...

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

По-моему, он прав.
Nick_Shl
Цитата(Огурцов @ Oct 3 2008, 10:28) *
Так люди разные - кому-то еще си для того же самого потребуется. А в результате задачка не будет решена и на 200MHz ARMе.
Можно и Си. Нынче компиляторы достаточно хорошо оптимизируют. Вообще предлагаю не развивать тут тему Си vs. ASM.
ARM всетаки не CISC, потому сомневаюсь, что у него есть команда загрузки в порт данных размещённых по адресу в регистре с инкрементом этого регистра выполняющаяся за 1 такт. Но даже если и есть - необходим фреймбуфер - 640*480 = 307200. Или 300кБ. А его нет.
Если делать текстовый режим - то дополнительные вычисления обязательно потребуются.
Огурцов
Цитата(MrYuran @ Oct 3 2008, 07:44) *
Можно ещё клаву подцепить PS/2

И мышь ?
Вот, порылся в мусоре, это про что я говорю
SasaVitebsk
Цитата(Огурцов @ Oct 3 2008, 09:35) *
На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д.

bb-offtopic.gif
Берём Алексенко.
"В настоящее время партия и правительство уделяют..." smile.gif
Итак
КР580ИК80 - макс 2МГц, ИК80А - 2.5МГц.
Минимальная команда 4 такта (регистр в регистр) - максимальная 18.
2.5/4 = 0.625 Мипс пиковая.

Утверждение с делителем на 9 обоснованное. Так как редко применялся данный МП без тактового генератора i8024. Причина в том, что там вормировалось 2 фазы с разным сдвигом и размахом 12V. i8024 (КР580ГФ24) предусматривал подключение кварца и делил его на 9.

2.5*9 = 22.5. Никогда не встречал. Найболее распространённым был кварц 18.432 который при делении на 9 давал 2.048 при этом и получалось 0.5 мипса пиковых.

Появление первой i8051 с её 1 мипсом произвело, как помню в наших рядах настоящий фурор. smile.gif
Огурцов
Цитата(MrYuran @ Oct 3 2008, 07:44) *
По-моему, он прав.

Правильно. Меги сегодня уже, похоже, умерли - 32-битники делают их во все щели. А покупка атмела микрочипом, если произойдет - будет последний гвоздь в крышку гроба.
За сим славное поколение эмбеддеров будет мутировать в сторону линуксов/микрософтов. И ничего не будет "не выжимать". Ну если только опять из спортивного интереса )))


Цитата(SasaVitebsk @ Oct 3 2008, 08:34) *
Минимальная команда 4 такта

Хорошо, если Вы уверены, что минимальная не 3 а 4 такта, как я привел в цитате выше, то я спорить не буду - практически уже ничего нет из той литературы, а точную растактовку на пямять я сейчас не скажу даже под пыткой.
slog
Кажется уже многие забыли что такое текстовый режим.
Для вывода на экран текста в 640*480 не нужен буфер в 300кбайт. Достаточно 2-3кб + знакогенератор во флэш. Да и даже некоторую графику можно без буфера рисовать. На лету.
Огурцов
Цитата(slog @ Oct 3 2008, 08:54) *
Кажется уже многие забыли что такое текстовый режим.

Скорее, еще не знают )
otrog
Цитата(MrYuran @ Oct 3 2008, 11:44) *
Чтоб зазря не спорить, предлагаю соц. соревнование: кто больше буквовков разных на экране написать сможет. Чтобы какая-то практическая ценность была - пусть это будет терминал.
То есть кидаем в УАРТ строки символов (допустим, на 9600) и видим их на экране. Можно ещё клаву подцепить PS/2 и тогда полноценный терминал получается.

Что скажете?

Такая штука уже есть http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
MrYuran
Цитата(otrog @ Oct 3 2008, 13:16) *
Такая штука уже есть http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm

Это я видал
Цитата
Video terminal: Quantity of symbols: 20 lines by 38 characters.
The resolution of an individual character matrix: 8x12 points

Вопрос - кто больше?
LCD
Цитата(lock @ Oct 2 2008, 09:03) *
1к озу, 8к флэш - парень выдает на экран Множество Джулио!
http://www.linusakesson.net/scene/craft/index.php
в приложении исходники, по ссылке еще и видео!
Просто шокирует!

Боян! smile.gif Хотя, меня когда-то если не шокировало, то удивило.
Цитата(gormih @ Oct 2 2008, 12:56) *
Правда не стоит забывать, что у спектрума вывод на экран был сделан аппаратно... Тут же по видимому вывод на экран через перерывание таймера, из буфера.

Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов.
Цитата(Огурцов @ Oct 2 2008, 14:59) *
Спектрумы были разные. В моем (точнее в одном из, который был дольше всего) было 4MHz, при 16MHz тактовой.

Для большей совместимости там должен стоять кварц на 14 МГц, а на CPU через делитель подается 3,5 МГц.
P.S. Кажется, в форуме иногда появляется Кирилл Фролов (а может, и другие спектрумисты), он знает практически все об архитектуре спектрума.
Огурцов
Цитата(MrYuran @ Oct 3 2008, 09:20) *
Это я видал

Черно-белый, как первый телевизор )

Цитата(MrYuran @ Oct 3 2008, 09:20) *
Вопрос - кто больше?

Не вопрос - этот человек - я(с) )))
На 16MHz получилось 32 символа на 20 строк, знакоместо - 13 на 20 линий
gormih
Цитата(LCD @ Oct 3 2008, 13:27) *
Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов.

Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-) Или вообще советую вспомнить трехмерную векторную графику игры ELITE. Помнится даже какой то квест был с трехмерными текстурироваными объектами и движением от первого лица (тормозило правда прилично).
Nick_Shl
Цитата(slog @ Oct 3 2008, 11:54) *
Кажется уже многие забыли что такое текстовый режим.
Для вывода на экран текста в 640*480 не нужен буфер в 300кбайт. Достаточно 2-3кб + знакогенератор во флэш. Да и даже некоторую графику можно без буфера рисовать. На лету.
Буфер не надо, но нужна скорость. Нужно взять символ, найти номер строки этого символа которая сейчас выводится на экран, найти её в памяти и только после этого мы можем её вывести. И так на каждый символ. Ну ни как не вяжется с одним пикселем за такт.

Цитата(Огурцов @ Oct 3 2008, 12:05) *
Скорее, еще не знают )
Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Код, алгоритм, описание приведите пожалуйста...
Огурцов
Цитата(Nick_Shl @ Oct 3 2008, 14:32) *
Уж больно вы свои познания показали - кроме голословных заявлений ничего нет.

Мне не нравится Ваш базар. Ок, какую сумму Вы готовы поставить в ответ за него ?

Цитата(Nick_Shl @ Oct 3 2008, 14:32) *
Код, алгоритм, описание приведите пожалуйста...

Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно.
KP580BM80
Цитата(Огурцов @ Oct 3 2008, 09:35) *
Не понимаю, как считать "в среднем" ? Я беру корткую команду и считаю для нее. А для меги "в среднем" тоже не один мипс на мегагерц получается, так ведь ?
......
На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д.
Оценивать нужно по выполнению идентичных тестов. Теперь по расчетам. В системе команд 8080 нет трехтактных инструкций. Минимум – 4 (регистр-аккумулятор, например). Соответственно, потолок -0.625 мипс. Как для 8080, так и для меги реальная программа не может состоять только из самых "быстрых" команд. Регистров маловато (по сравнению с АВР), что вынуждает активней использовать память, а это уже 7 тактов. Ну и максимальная длительность команд – 17 тактов (я ошибся в предыдущем своем посту). Таким образом, для 8080 при самом оптимистичном прогнозе я бы не дал выше 0.3 мипс при 2.5 МГц.

P.S. Пардон, не заметил пост SasaVitebsk от Oct 3 2008, 11:34. Мог бы и не продолжать rolleyes.gif
Огурцов
Цитата(KP580BM80 @ Oct 7 2008, 08:19) *
В системе команд 8080 нет трехтактных инструкций

Тогда соглашусь, 0,625. Все остальное - как 36,6С в среднем по больнице, без точного знания полного набора команд, или даже программы, не имеет смысла. Вообще, если бы я ориентировался на на не "только из самых "быстрых" команд", то пиксель на мегагерц ни за что бы не получился.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.