Zrobione.
Nawet łatwo poszło - w sensie kodowanie, bo oczywiście znalezienie sposobu znowu wymagało zalogowania się do "tego-jeszcze-nie-grali.com".
Ale po kolei: najprostszy sposób ładowania razem z kolorami pokazałem poprzednio. Naiwnie myślałem, że przestawienie atrybutów na początek załatwi sprawę przynajmniej w większości obrazków. No bo jak jest jednolite czarne tło, to bez pikseli całość będzie czarna, prawda?
Nieprawda. Przez małą rozdzielczość kolorów w Spectrum, obrazki wymagają kombinowania z INVERSE - część treści obrazka jest zrobiona inkiem, część pejperem. W załączniku jest HEAD-atr - to same atrybuty obrazka z Head Over Heels (bez pikseli czyli widać sam PAPER).
Pomysł upadł - wykorzystałem go do zrobienia dema tego, co chcę osiągnąć.
Następny pomysł: przygotować plik tak, żeby atrybuty były co 8 bajtów pikseli. Odpada od razu, bo przecież wszystko jest skompresowane i nie sposób przewidzieć ile bajtów pikseli będzie w jednym rekordzie. Można by pokazać najpierw x bajtów pikseli, a potem x/8 bajtów koloru. Wyglądałoby trochę amatorsko. Chociaż teraz pomyślałem, że może spróbuję w wolnej chwili...

Na szczęście pomysł pierwszy - żeby przestawić atrybuty na początek - naprowadził mnie na rozwiązanie: tak, atrybuty ładują się na początku, ale rozkompresowują nie na ekran tylko wyżej. A potem przy dekompresji/pokazywaniu pikseli, w momencie obliczania kolejnego adresu, gdy po 8 liniach jest potrzebna poprawka przenosząca do następnej linii znakowej, pokazywany jest kolor. Potrzebne są tylko trywialne obliczenia adresu atrybutów z adresu pikseli. Procedura ma 9 bajtów - wreszcie natknąłem się na tą zaletę, która stała za taką akrobatyczną organizacją ekranu - łatwość obliczenia adresu atrybutów! Bo do tej pory napotykałem tylko trudności wydłużające obliczenia. Zorganizowanie kopiowania kolejnych bajtów z pamięci na ekran, to pestka. I nawet uruchomiło się od pierwszej próby

W związku z tym program używa teraz również max.768 bajtów od adresu 49152 (16384+32768 dla łatwego adresowania). Wrócił pusty ekran - ale tylko na kilka sekund (średnio 2-3, max.4) kiedy nic nie widać, dopiero potem pokazuje się obrazek. Bardzo ładnie się pokazuje - teraz mi się podoba

Loader/dekompresor jest teraz trochę dłuższy: ma 256 bajtów, czyli jest o 62 dłuższy. To i tak świetny wynik, bo gdyby zachować różnicę długości wersji dekompresujących z pamięci - powinno wyjść 284.
Atrybuty ładują się po pikselach, więc są dwa sposoby wyświetlania: niewidoczny (INK = PAPER w loaderze) gdy piksele są niewidoczne i cały kwadrat pokazuje się wtedy gdy wchodzi kolor i widoczny (INK <> PAPER) gdy piksele widać cały czas. Z tym że to jest szybkie i niespecjalnie widać konkretne piksele, bardziej powstaje efekt kursora.
Mamy też drugi wybór: czy ładować jak zwykle na czarnym tle, czy na białym - tu efekt jest bardziej "dramatyczny", bo zmienia się i tło i treść.
I wreszcie!
Widać zmiany szybkości w trakcie ładowania!

Jak ładują się puste pola (np. w Vulcan).
Jeszcze szczegół techniczny: ostatnia kolumna Vulcana i dwa kwadraty przedostatniej pokazywane są "offline", a dla Head - 10 ostatnich kwadratów.