Важная информация

User Tag List

Страница 25 из 35 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя
Показано с 241 по 250 из 342

Тема: Программирование на ассемблере

  1. #241

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо бы конечно иметь сборник статей по разным аспектам программирования для вектора (и для других компов с 8080) на современном уровне. Но мне не очень хочется его писать. Многие вещи были упомянуты/разобраны на форуме, только найти эти упоминания со временем все сложнее. Самый злостный катализатор, популяризатор и каталогизатор процедур для вектора наверно svofski. Он старается по результатам разборок разных тем как-то финализировать и сделать более-менее понятным при последующем возвращении.

  2. #241
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #242

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,308
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я люблю позаписывать иногда, но делаю это недостаточно последовательно и часто неопрятно. Вот неплохо получились рыбы из прекрасма -- текст, линия, мандрилл -- я почти каждую новую поделку начинаю с одной из них. С тех пор накопилось еще много интересного и оно сидит в разной форме где попало. Есть текст 512, который заодно служит ориентиром по использованию режима 512 вообще. Разные виды вывода спрайтов. Музыка на AY и ВИ53. В общем неплохой набор из чего можно сделать что угодно, но как ivagor верно подметил, быстро теряется и искать нелегко.

    Книга, даже если это просто большая шпаргалка, подразумевает пояснительный текст и иллюстрации. Ясно излагать -- это надо уметь и любить. У меня обычно получается только запутать. Технически GitBook несложный. Можно начинать просто с того, что сделать репу, настроить GitBook, добавить файлы с фрагментами кода, а лирику и картинки добавлять потом. Все пишется в маркдауне прямо в веб-редакторе с превью. Целиком запускающиеся примеры можно держать в той же репе.
    Больше игр нет

  4. #243

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #244

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    У двухбитпланового стекового варианта есть серьезный недостаток - несовместимость с методом Медноногова, нельзя использовать при разрешенных прерываниях. Исправление этого недостатка + небольшое ускорение:
    ...
    ;(88+100)/4=47 тактов/байт
    Ндас... при такой скорости, практически теряется смысл пытаться упаковывать алгоритм в двух-байтную (24 такта на байт) команду (в ПЛИС-процессоре).
    Если только совмещать её с автоматическим сдвигом (маски и спрайта).

  6. #245

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если говорить о задаче вывода спрайтов (и тайлов) на экран, то стоит оценить предельный возможный вариант. Ограничивающий фактор - скорость шины вектора, 4 такта/байт. В идеале вся пропускная способность должна идти только на пересылки, без выборки команд. Вижу 2 способа обеспечения этого (речь о замене только процессора в стандартном 06Ц):
    1. Добавление развитого контроллера DMA (DMA-сопроцессора). Он должен "знать" о строении экрана вектора, и в нем должна быть куча регистров с параметрами спрайтов, чтобы их (параметры) не вдавливать туда кучей outов. Ядро 8080 в этом случае только дает команду - вывести 1й спрайт сюда, 2й сюда и т.д.
    2. Частичный разгон ядра 8080. Можно реализовать вывод спрайтов программно, но нужно некоторое количество быстрого озу внутри проца (или кеш). С этим озу проц пусть работает на 48 или 96 МГц, а снаружи опять видны только пересылки байтов.
    Можно немного усугубить, использовав часть внутреннего озу по крайней мере для части спрайтов (подходит и для 1 и для 2). Это еще уменьшает нагрузку на шину вектора.
    Не могу призывать реализовать какой-то из этих вариантов (все упрется в малую распространенность и программную поддержку, вернее в ее отсутствие), но при оценке промежуточных вариантов стоит учитывать не только имеющиеся процедуры, но и предельные возможные варианты.

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

    Для примера вывод 15-цветного спрайта 16x16. 15 потому что без отдельной маски, ее можно получить по "ИЛИ" 4х байтов спрайта разных плоскостей. Минус 1 цвет (0й цвет - прозрачный), зато минус выборка (и хранение) маски.
    Чтение 2*16*4=128 байт спрайта. Чтение 3*16*4=192 байт из VRAM. Запись 3*16*4=192 байт в VRAM. Итого (128+192+192)*4=2048 тактов/такой спрайт. Если хранить спрайт во внутреннем озу, то (192+192)*4=1536 тактов/такой спрайт.

  7. #246

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,308
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Пользуясь случаем хочу высказать пожелание внести в grad.asm на гитхабе последние правки, чтобы не потерялись.
    Спасибо, что напомнил. Я это сделал сразу, но забыл пушнуть.
    Больше игр нет

  8. #247

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если хранить спрайт во внутреннем озу, то (192+192)*4=1536 тактов/такой спрайт.
    Хочу все же дожать до предела. В плисине можно хранить не только спрайты, но и копию экрана вектора. Если плисина жирная, то прям графическую копию. Если не очень жирная, то можно ориентироваться на тайловый экран. Пусть 256 шестнадцатицветных тайлов=8 кб, плюс килобайт под "тайловый экран". Так или иначе это позволяет отказаться от чтения VRAM, остается только запись и ранее приведенный пример уменьшается до (192)*4=768 тактов/спрайт. Это абсолютный максимум скорости (или минимум тактов), быстрее для 06Ц при замене проца никак не получится.

  9. #248

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Хочу все же дожать до предела.
    ...
    ранее приведенный пример уменьшается до (192)*4=768 тактов/спрайт. Это абсолютный максимум скорости (или минимум тактов), быстрее для 06Ц при замене проца никак не получится.
    Грубо говоря, получается, это вывод на экран около 60 полноцветных спрайтов 16х16 с маской, за интервал между прерываниями... ?

  10. #249

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    312*192/768=78 спрайтов за прерывание. Но это без учета логики игры, без восстановления фона, без звуков, ну и без низкоуровневого управления спрайтами (куда какой вывести). А самое главное - при 16 цветах 06Ц не может обеспечить двойную буферизацию, значит придется ограничить время вывода спрайтов невидимыми областями, чтобы без миганий. Или ограничить число цветов до 8 или 4, тогда с двойной буферизацией хоть весь экран (или полэкрана для 8 цветов) в спрайтах.
    Последний раз редактировалось ivagor; 27.09.2022 в 09:12.

  11. #250

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,054
    Спасибо Благодарностей отдано 
    1,144
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Книга, даже если это просто большая шпаргалка, подразумевает пояснительный текст и иллюстрации. Ясно излагать -- это надо уметь и любить. У меня обычно получается только запутать. Технически GitBook несложный. Можно начинать просто с того, что сделать репу, настроить GitBook, добавить файлы с фрагментами кода, а лирику и картинки добавлять потом. Все пишется в маркдауне прямо в веб-редакторе с превью. Целиком запускающиеся примеры можно держать в той же репе.
    Если это будет на гитхабе - это форки/пулл-реквесты и кто-то должен майнтейнить. Мне больше нравится формат вики. Я пока попробую подсобирать ссылки и фрагменты кода на emuverse, например:
    http://www.emuverse.ru/wiki/%D0%92%D...BD%D1%8B%D1%85

    Эти 2 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    ivagor(27.09.2022), Pyk(27.09.2022)

Страница 25 из 35 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Вычисление числа Пи на ассемблере
    от perestoronin в разделе Разное
    Ответов: 330
    Последнее: 06.08.2025, 15:04
  2. Ответов: 275
    Последнее: 16.12.2018, 23:01
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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