Heute habe ich einen lang vermissten Meilenstein meiner Programmiererfahrung am Atari ST erreicht.
Seit langem wollte ich einen halbwegs flexibelen Kernel zur Darstellung von Sprites in 68000er Maschinensprache schreiben. Das habe ich heute geschafft! Es gab zwar ein paar unnötige Probleme (Dreck in oberen Wort, wenn man sonst nur ungeplant mit dem unteren Wortteil eines Longs hantiert), aber die konnte ich lösen. Danke an PeP aus Schweden
Die Routine kann nun flexibel bis zu 16 Sprites beliebiger Höhe und Breiten in 16Pixel-Schritten (wegen der spezifischen Bitplanestruktur des ST) darstellen. Die eigentliche Blitroutine stammt dabei aus einem Source aus dem Netz, den ich zum Laufen gebracht habe, und einem Interfaceteil, der die Eingaben für die Sprites (Aussehen und Position) aus einer Liste von Datenstrukturen liest und dann Stück für Stück die Spritesauf den Bildschirm zeichnet.
Die Routine arbeitet ohne Preshift, das kostet zwar Zyklen, aber man behält Speicher. Für den STE plane ich noch, eine Routine einzubauen, die den Blitter verwendet. Aber die muss erst noch geschrieben werden
Hier ein Screenshot eines Testprogramms mit GFABASIC, welches den Spritekernel benutzt:
Ein voller Release wird über die Paradize Webseite erfolgen, wenn die Doku stimmig ist
Endlich weg von GET/PUT und RC_COPY in zeitkritischen Hauptschleifen