Запакованный текст на C64 и Apple][
Помогите распокавать текст. Речь идет о игрушке (квест) "Алиса в стране чудес" вышедшей в 1985 году на Commodore64 и Apple][.
Для обоих машин используется идентичная система хранения текста - прям блок содержащий набор фраз у обох машин байт в байт.
Вот например первый попавшийся персонаж заявляет такую фразу:
http://agatcomp.ru/Gamez/HLP/GIF/RABBITENG.png
D007 - отсюда движок его начинает читать, но там в каждом байте - от 1 до 3 букв.
D000- 00 00 00 00 00 FF 4E CC D0 30 35 2F 80 04 EC CD .....ЪnLP.....ЛM
D010- 05 4B 39 A4 4C D0 18 1A 97 C0 02 76 66 F4 89 A0 .k.$lP...@.жфТ.
D020- 69 59 C2 D4 66 80 C0 D4 BE 00 20 8D D0 02 B5 40 иyBTф.@T>...P.5
D030- 9D 99 A0 AC 21 DD 42 CE 38 2B 00 08 A0 08 22 14 .. ,.]bN.... ...
D040- CC 10 30 0A 19 81 B6 31 A9 E0 00 FF 0B 12 32 EE L.....6.)Ю.Ъ...Н
D050- 80 D4 2C 06 14 D5 06 A1 69 82 21 98 69 06 01 2E .T...U.!и...и...
D060- 03 75 D1 40 35 F0 00 FF 1C 1A 5D D0 01 62 46 5F .уQ.П.Ъ..}P.бf.
D070- 00 00 8C C2 3A A4 65 06 A1 69 80 D3 2B 86 8F 00 ...B.$е.!и.S....
1байт: = "I'"
2байт: = "M"
3байт: = "L"
4байт: = "A"
5байт: = "TE"
В общем , где-то 1-2 знака в байте, иногда вроде бы до 3-х, ну это включая пробелы
Скорее всего, упаковка без сложного сжатия, просто отрезаются старшие разряды (вероятно, отрезаются 3, остаётся 5), оставшиеся запихиваются в байты. При этом эти 5 - не коды ASCII, а указатели на таблицу вида char[0x40] = (' ', 'a', 'b'... и какие-то ещё символы). Известно, что есть два спецсимвола (действуют после раскодирования) : 0x1B и 0xFF. 0x1B - после него следующий символ выводится в видеопамять через другую таблицу, а 0xFF - скорее всего конец строки (неизвестно, как он возникает из 5 бит). Также есть предположение, что байты в выбираются не подряд, а, в зависимости от чего-то, возможны переходы назад/вперед.
Причем вот что ещё: там как действительно сокращённый знакогенератор, т.е. в "архиве" лежит некий код , который тоже ещё не символы, он уже в обычную кодировку преобразуется по таблице. Ну там просто " abcdef...какие-то ещё символы"
В 92 году, в Москве, человек имея только бумажную распечатку куска текстового блока, смог выяснить принцип системы хранения. Значит это реально и сейчас?
Для C64 тоже самое, только смешение блока в ОЗУ другое:
http://agatcomp.ru/Gamez/HLP/C64.png