chr ram распаковщик данных для игры микромашинки на денди
$01
- количество блоков для распаковки
$02
- биты управления распаковки
управляющий бит
- старший бит $02
источник
- указатель на упакованные данные
размер блока 16 байт
В случае словаря ($02 = 0b1XXXXXXX
)
- копируем в видеопамять и наполяем словарь
- если следующий управляющий бит X
- 1: то продолжаем копировать и наполнять
- 0: иначе устанавливаем новый $02 и сбрасываем счетчик на 8
- далее в зависимости от управляющего бита carry
- 1: берем значение из словаря
- 0: берем значение из источника
В случае последовательности ($02 = 0b0XXXXXXX
)
- копируем в видеопамять
- если следующий управляющий бит X
- 0: берем следующий из источника
- 1: продолжаем проставлять то что прочитали
- после 8 итераций переходим к новому блоку, управляющий бит X
- 1: берем следующий из источника
- 0: используем константу
0
- копируем в видеопамять