gormih 0 3 октября, 2008 Опубликовано 3 октября, 2008 · Жалоба Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов. Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-) Или вообще советую вспомнить трехмерную векторную графику игры ELITE. Помнится даже какой то квест был с трехмерными текстурироваными объектами и движением от первого лица (тормозило правда прилично). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_Shl 0 3 октября, 2008 Опубликовано 3 октября, 2008 · Жалоба Кажется уже многие забыли что такое текстовый режим. Для вывода на экран текста в 640*480 не нужен буфер в 300кбайт. Достаточно 2-3кб + знакогенератор во флэш. Да и даже некоторую графику можно без буфера рисовать. На лету. Буфер не надо, но нужна скорость. Нужно взять символ, найти номер строки этого символа которая сейчас выводится на экран, найти её в памяти и только после этого мы можем её вывести. И так на каждый символ. Ну ни как не вяжется с одним пикселем за такт. Скорее, еще не знают )Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Код, алгоритм, описание приведите пожалуйста... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 3 октября, 2008 Опубликовано 3 октября, 2008 · Жалоба Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Мне не нравится Ваш базар. Ок, какую сумму Вы готовы поставить в ответ за него ? Код, алгоритм, описание приведите пожалуйста... Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KP580BM80 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Не понимаю, как считать "в среднем" ? Я беру корткую команду и считаю для нее. А для меги "в среднем" тоже не один мипс на мегагерц получается, так ведь ? ...... На 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: Изменено 7 октября, 2008 пользователем KP580BM80 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба В системе команд 8080 нет трехтактных инструкций Тогда соглашусь, 0,625. Все остальное - как 36,6С в среднем по больнице, без точного знания полного набора команд, или даже программы, не имеет смысла. Вообще, если бы я ориентировался на на не "только из самых "быстрых" команд", то пиксель на мегагерц ни за что бы не получился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
otrog 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-) :cheers: Так и было. Кстати ПЗУ-шные окружности рисовались путем расчета функций sin и cos в формате с плавающей точкой :07: . Так что если рисовать на асме окружности, например по Брезенхему, то получалось не то что быстрее, а на порядки быстрей. Да и точнее они получались. Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно. С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст.Во.. А то "один пиксел". Да их и 32 можно нарисовать в таком темпе - сделав на каком-то порту только "видео-ноги", подготовив данные в регистрах и поставив подряд 32 команды out. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Да их и 32 можно нарисовать в таком темпе Ход мыслей правильный. Но в строке их рисуется не 32 а 416. Хотя можно и еще больше. как на AVR за 1(один такт) нарисовать 1(один) пикслель . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь цветной текст. Так я ж предлагал - пари ? Изменено 7 октября, 2008 пользователем Огурцов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Ход мыслей правильный. Но в строке их рисуется не 32 а 416. Хотя можно и еще больше.Да можно заготовок наделать в духе out PIX_PORT, reg_bkgcolor out PIX_PORT, reg_symcolor out PIX_PORT, reg_symcolor out PIX_PORT, reg_symcolor out PIX_PORT, reg_bkgcolor rjmp sym_loop out PIX_PORT, reg_symcolor out PIX_PORT, reg_bkgcolor out PIX_PORT, reg_bkgcolor out PIX_PORT, reg_bkgcolor out PIX_PORT, reg_symcolor rjmp sym_loop (это две заготовки, которых достаточно для 'O' в матрице 5*7 и можно в других символах использовать, 5*7 явно плохо, между символами пробелы большие, это для примера только) А знакогенератор сделать в виде ссылок на заготовки и потом под IJMP это пихать... Но это же сожрёт столько флеша, что в мелком кристалле не так много и останется для остальной программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба Не так немного, нужно оптимизировать, но в принципе примерно это и было отправной точкой. 2 otrog: можете смеяться ) 5*7 явно плохо, между символами пробелы большие Одна из причин, почему и выбрана матрица 13*20(9*16), 2 такта требуются на переход, 1 на гашение, 1 на смену цвета. Впрочем шрифт нужен был крупный и легкочитаемый, не более 40 знаков в строке, поэтому получилось очень даже в тему. зы: в общем-то понятно, почему и avreal далеко не каждый написал ) респект Изменено 7 октября, 2008 пользователем Огурцов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Я чёто не понимаю как всё это сочетается с тем, что мы видем на экране? 8кб - не так и много. 12 байт на букву Это чууууть больше 30к на алфавит... С такими подходами - чтобы текст/графика/музыка - аккурат в 300-400к уместим. То есть мега84096. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slog 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба С ростом мощи процессоров программирование превратилось в ремесло. Зачем думать? Можно просто, для такой задачи взять проц с 300-400к памяти. А когда-то 48К казалось огромной памятью, там можно было такую графику наворотить. И 1 мипс хватало на все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться