{"id":169,"date":"2008-03-24T18:07:22","date_gmt":"2008-03-24T16:07:22","guid":{"rendered":"http:\/\/www.final-memory.org\/?p=169"},"modified":"2008-03-24T18:09:47","modified_gmt":"2008-03-24T16:09:47","slug":"ein-meilenstein-am-st","status":"publish","type":"post","link":"https:\/\/www.final-memory.org\/?p=169","title":{"rendered":"Ein Meilenstein am ST :)"},"content":{"rendered":"<p>Heute habe ich einen lang vermissten Meilenstein meiner Programmiererfahrung am Atari ST erreicht.<\/p>\n<p>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\u00f6tige Probleme (Dreck in oberen Wort, wenn man sonst nur ungeplant mit dem unteren Wortteil eines Longs hantiert), aber die konnte ich l\u00f6sen. Danke an PeP aus Schweden <img decoding=\"async\" class=\"lmbbox_smileys_img\" src=\"http:\/\/www.final-memory.org\/wp-content\/plugins\/lmbbox-smileys\/smileys\/tb\/smile1.gif\" alt=\":)\" \/><\/p>\n<p>Die Routine kann nun flexibel bis zu 16 Sprites beliebiger H\u00f6he 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\u00fcr die Sprites (Aussehen und Position) aus einer Liste von Datenstrukturen liest und dann St\u00fcck f\u00fcr St\u00fcck die Spritesauf den Bildschirm zeichnet.<\/p>\n<p>Die Routine arbeitet ohne Preshift, das kostet zwar Zyklen, aber man beh\u00e4lt Speicher. F\u00fcr den STE plane ich noch, eine Routine einzubauen, die den Blitter verwendet. Aber die muss erst noch geschrieben werden <img decoding=\"async\" class=\"lmbbox_smileys_img\" src=\"http:\/\/www.final-memory.org\/wp-content\/plugins\/lmbbox-smileys\/smileys\/tb\/wink1.gif\" alt=\";)\" \/><\/p>\n<p>Hier ein Screenshot eines Testprogramms mit GFABASIC, welches den Spritekernel benutzt:<\/p>\n<p><a href=\"http:\/\/www.final-memory.org\/wp-content\/uploads\/2008\/03\/stfm_sprites.png\" title=\"STFM Spriteroutine f\u00fcr GFABASIC in Aktion\"><img decoding=\"async\" src=\"http:\/\/www.final-memory.org\/wp-content\/uploads\/2008\/03\/stfm_sprites.png\" alt=\"STFM Spriteroutine f\u00fcr GFABASIC in Aktion\" \/><\/a><\/p>\n<p>Ein voller Release wird \u00fcber die <a href=\"http:\/\/paradize.atari.org\/\">Paradize Webseite<\/a> erfolgen, wenn die Doku stimmig ist <img decoding=\"async\" class=\"lmbbox_smileys_img\" src=\"http:\/\/www.final-memory.org\/wp-content\/plugins\/lmbbox-smileys\/smileys\/tb\/wink1.gif\" alt=\";)\" \/><\/p>\n<p>Endlich weg von GET\/PUT und RC_COPY in zeitkritischen Hauptschleifen <img decoding=\"async\" class=\"lmbbox_smileys_img\" src=\"http:\/\/www.final-memory.org\/wp-content\/plugins\/lmbbox-smileys\/smileys\/tb\/wink1.gif\" alt=\";)\" \/><\/p>\n<div id=\"facebook_like\"><iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.final-memory.org%2F%3Fp%3D169&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80\" scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:500px; height:80px;\" allowTransparency=\"true\"><\/iframe><\/div>","protected":false},"excerpt":{"rendered":"<p>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\u00f6tige Probleme (Dreck in oberen Wort, wenn man sonst nur ungeplant mit dem unteren Wortteil eines &hellip; <a href=\"https:\/\/www.final-memory.org\/?p=169\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Ein Meilenstein am ST <img decoding=\"async\" class=\"lmbbox_smileys_img\" src=\"http:\/\/www.final-memory.org\/wp-content\/plugins\/lmbbox-smileys\/smileys\/tb\/smile1.gif\" alt=\":)\" \/>&#8220;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,33],"tags":[],"class_list":["post-169","post","type-post","status-publish","format-standard","hentry","category-atari-st","category-spieleprogrammierung"],"_links":{"self":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=169"}],"version-history":[{"count":0,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/169\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}