Разбирался с видеорежимом и слепил небольшую интру.
Вот только на эмуляторе VV цвета не устанавливаются.
Вид для печати
Разбирался с видеорежимом и слепил небольшую интру.
Вот только на эмуляторе VV цвета не устанавливаются.
Хорошая интра, спасибо!
Чтобы палитра везде программировалась, надо перед ;setup colors добавить ei и halt. Ну и соответственно еще раньше записать по адресу 0038h команду ret.
Программирование палитры можно сократить, если вставить между крайними out 0Ch 4 раза ex (sp),hl, а остальные out 0C и nop убрать (можно еще короче, но дольше объяснять).
- - - Добавлено - - -
Хотя все просто - оставляем 2 ex (sp),hl и вносим dec hl и dec b между двумя out 0C, этого хватит.
Я недавно как раз сомневался на эту тему. И Владимир Кузнецов обратил мое внимание на то, что в реале сброс фиксируется по кадровому синхроимпульсу (D12.1 D = СБРОС, C = F50Гц). Так что эмуляторы, которые делают сброс синхронно по началу кадра, делают правильно. И программа Shiny на реале должна работать корректно.
128 байт с ужасными цветами. ei:halt в начале код просто подвешивает прогу.
В архиве .rom, а не .com. Разумеется, можно переименовать, но написано .rom. Я не помню, бывает ли загрузчик .rom из доса. Но если он бывает и не синхронизирует запуск, получается что это неправильность загрузчика.
Собственно вот, так получилось 127 байт. Ни на что не претендую, просто хотелось показать, что и для вектора можно утрамбовать эту дему в <=128 байт.
- - - Добавлено - - -
Нет, все просто переименовывают rom в com. Были запускали r0m для доса, по-хорошему они должны синхронизировать запуск и делать еще некоторые вещи, но у меня есть большие сомнения. Но никто не мешает сделать современный запускальщик r0m.
- - - Добавлено - - -
этого мало
- - - Добавлено - - -
Забыл удалить cp 0C9h, без ei+halt это уже не нужно, значит можно 127-2=125 байт
Получилось 119 байт, наверно на этом я успокоюсь. Отличие от оригинала - смотрим "кино" начиная с других кадров (фигур).
Интро с этим алгоритмом на Sam Coupe весила 64 байта(: