Всем привет,
пару месяцев назад я стал счастливым обладателем персонального ПК Апогей в полной комплектации =)
это реально было очень приятно распаковать его, достать кабели, разъемчики, целых четыре книжки,
подключить к телевизору, набрать первые буквы на новенькой клавиатурке...
Но все же хотелось что-то покодить, я никогда не видел РК-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