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

User Tag List

Показано с 1 по 8 из 8

Тема: Bad Apple для Апогей БК-01

  1. #1
    Member
    Регистрация
    23.03.2020
    Адрес
    г. Великий Новгород
    Сообщений
    69
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Bad Apple для Апогей БК-01

    Всем привет,
    пару месяцев назад я стал счастливым обладателем персонального ПК Апогей в полной комплектации =)
    это реально было очень приятно распаковать его, достать кабели, разъемчики, целых четыре книжки,
    подключить к телевизору, набрать первые буквы на новенькой клавиатурке...
    Но все же хотелось что-то покодить, я никогда не видел РК-86, не знал, что бывает 8080, по этому открыл
    книжку, которая шла в комплекте по программированию на ассемблере и был приятно удивлен, что в процессоре
    целых 7мь(!) регистров общего назначения, между которыми можно кидаться данными неограниченно! целых 56кБ данных,
    ещё и внешнее ПЗУ и при этом память общая с 16битным адресным пространством!
    Вот это был королевски подгон =)
    До этого я лет 10-12 программировал на microchip процессорах, у которых один регистр W и 35 команд (14-битных),
    2-8кБ памяти ещё и разбитая на банки по 1024слова и нужно было отлавливать в кодепереход между ними, и ни в чем себе не отказывай)
    Руки чесались...
    7 мая мы с другом сделали небольшое демо bad apple для осциллографа Bad Apple или с Днем Радио
    и появилась идея перенести наработку на Апогей...
    Подумал, с чего бы начать - ну есть таймер, вывести звук это должно быть просто... ну не знаю, почему так показалось... далее замучал форум вопросами =)
    Ну ок, договорился с SegaBoy выпросил у него сграбить идею синхронизации с видеокадром =) и сам плеер ) хотя с самим звуком запарился, тк медведь на ухо наступил )))
    Далее была работа с "видео", мне нужно было уложиться в 250кБ, так как это максимальная ПЗУ, что у меня была =))), но даже понизив частоту кадров до 10Гц,
    не очень получалось ужаться, кадров получалось около 2100+ и в среднем кадр это 1920 байт...
    с упаковкой видео пришлось помучится))) не h.264й кодек, но все же)
    Но даже уменьшенное до 100байт на кадр не удавалось успеть все вывести за 20мс, пришлось схитрить и выкинуть один из внутренних циклов и продублировать код.
    ну и добавил двойную буферизацию, это вообще помогло... по крайней мере нет артефактов при перерисовке кадра
    короче, то, что получилось:


    было интересно думать как создать демо, хотя и запарно отлаживать, вообще это мой первый некоторый демопроект,
    если будут вопросы, пишите,
    ps: если кто-то даст идею как считать данные с файла (210кБ данных) на картридже с SD картой, буду признателен, тогда попробую адаптировать код
    к более удобному SD картриджу.

    pss:во вложении образ ROM для emul80
    нужно подменить штатный образ,
    что бы запустить демо
    R8000, 8001 ; что бы переключить страницу в 0
    R0,2000 ; грузануть саму программу
    G
    Вложения Вложения
    Последний раз редактировалось Pyhesty; 03.06.2020 в 01:08.

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

    CityAceE (02.06.2020), hitomi2500 (02.06.2020), ivagor (02.06.2020), nzeemin (02.06.2020), Oleg N. Cher (02.06.2020), SegaBoy (02.06.2020), tnt23 (06.06.2020)

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

  4. #2
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    11,631
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    344
    Поблагодарили
    221 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyhesty Посмотреть сообщение
    в среднем кадр это 1920 байт
    ? 64*25=1600

  5. #3
    Member
    Регистрация
    23.03.2020
    Адрес
    г. Великий Новгород
    Сообщений
    69
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    ? 64*25=1600
    64х30
    может на телевизоре не влезли все строки, я не пересчитывал...

  6. #4
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Владивосток
    Сообщений
    3,470
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    48
    Спасибо Благодарностей получено 
    205
    Поблагодарили
    63 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очень круто! Особенно, если учесть, что это первая работа для i8080, пусть даже и с многолетним опытом программирования других МП-систем.

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

  7. Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    Pyhesty (02.06.2020)

  8. #5
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    5,081
    Спасибо Благодарностей отдано 
    175
    Спасибо Благодарностей получено 
    446
    Поблагодарили
    255 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyhesty, про видео на Апогее с SD есть тема. Что касается утрамбовки Bad Apple в 256 Кб, то со сжатием удалось уместить 3286 кадров (15 FPS) с разрешением 64x48 с заливкой (музыку я не делал).

  9. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Pyhesty (02.06.2020)

  10. #6
    Member
    Регистрация
    23.03.2020
    Адрес
    г. Великий Новгород
    Сообщений
    69
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    А заливка не используется потому, что использовались наработки для вывода видеоряда на осциллограф или в целях экономии места для хранения кадров?
    да, хотелось сделать относительно легкий вариант, тк было не понятно сколько потребуется мощности для отображения всего кадра,
    в среднем получилось по 100байт на кадр (это за счет упаковки бит, но у меня нет алгоритма сжатия при хранении) но ниже ivagor пишет, что у него на кадр большего размера получилось
    80 байт на кадр, я ещё не посмотрел его ссылки, но его цифры впечатляют =)
    я поставил для себя условие около 10Гц вывести, а по началу у меня были даже проблемы с тем, что бы относительно быстро стереть кадр (хотя бы за 20мс),
    дальше за счет оптимизации даже остался небольшой резерв, но вообще вывод одно кадра занимает около 60мс (выводится кусками) и ещё 20мс (может быть чуть меньше),
    занимает очистка экрана. Резерва после небольшо оптимизации осталось процентов 30% по времени.

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

    о! я главное где-то видел видео тему с выводом на апогее bad apple, но когда пробовал найти поиском не смог... (поиск выдает все что угодно, но не то, что ищешь)
    сейчас гляну...

    Цитата Сообщение от ivagor Посмотреть сообщение
    Pyhesty, про видео на Апогее с SD есть тема. Что касается утрамбовки Bad Apple в 256 Кб, то со сжатием удалось уместить 3286 кадров (15 FPS) с разрешением 64x48 с заливкой (музыку я не делал).
    Последний раз редактировалось Pyhesty; 02.06.2020 в 11:08.

  11. #7
    Member Аватар для hitomi2500
    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    167
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Шустро получилось, здорово!

    У меня на Апогее получалось в разрешении 192х102 где-то 380 байт на кадр, а в 128х60 кажется около 200, это с дельта-кодированием и упаковкой в бинарное дерево. Частота кадров была очень низкой, около 2-3 Гц для высокого разрешения, и порядка 5 для низкого, есть видео на ютубе, находится по фразе "Видеопроигрыватель на Апогей БК-01Ц". Кадры я не стирал, рисовал только дельту, поэтому скорость была неравномерной. И работал с псевдографикой, кодируя в неё на стадии упаковки, поэтому точка у меня была байт а не бит. Если рисовать только контуры, то можно применять другие методы компрессии, они могут оказаться эффективнее. Например g-код (а-ля графические диктанты).

    Насчёт SD-карты, я пользовался функциями биоса Алексея Морозова, который vinxru. Там всё относительно просто, сначала открывается файл (регистрами передаётся указатель на строку с именем), а потом идут последовательные чтения (регистрами задаётся адрес буфера и число байт для чтения). Вся логика работы с FAT и SD вынесена во внешний микроконтроллер. Исходник биоса и пример в загрузчике (boot.rk) есть в его репозитории : https://github.com/alemorf/retro/tre...B3%D0%B5%D0%B9

    Ещё в качестве примера можно взять мой плеер, https://github.com/hitomi2500/avi2ps.../master/avplay, но у него исходники не очень причёсаны.

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

    Oleg N. Cher (03.06.2020), Pyhesty (02.06.2020)

  13. #8
    Member
    Регистрация
    23.03.2020
    Адрес
    г. Великий Новгород
    Сообщений
    69
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    во вложении образ ROM для emul80
    нужно подменить штатный образ,
    что бы запустить демо
    R8000, 8001 ; что бы переключить страницу в 0
    R0,2000 ; грузануть саму программу
    G

    если где почитать, как грузить данные с SD карты? или вообще про формат картриджа SD для Апогея?
    ps: о! увидео выше ответ hitomi2500, спасибо!
    Вложения Вложения

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

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

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

Похожие темы

  1. Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск
    от vinxru в разделе Радио-86РК
    Ответов: 428
    Последнее: 29.05.2020, 12:30
  2. Апогей-БК01 и Апогей-БК01Ц: Обсуждение
    от Mick в разделе Радио-86РК
    Ответов: 353
    Последнее: 28.10.2019, 12:39
  3. Ответов: 17
    Последнее: 09.06.2018, 13:21
  4. Bad Apple(Видеоклип) на "Дендике"
    от Fishbone в разделе Nintendo
    Ответов: 15
    Последнее: 03.04.2013, 22:02
  5. Апогей-БК01: Доработка до Апогей-БК01Ц
    от vinxru в разделе Радио-86РК
    Ответов: 14
    Последнее: 30.04.2012, 10:50

Ваши права

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