Eski usul bir oyun programlama hilesi
Bir zamanlar 8-bit PC'lerde oyun programlayan bir öğrencinin başına gelenler, donanımın sınırlarını zorlamanın ne demek olduğunu gösteriyor. Habere göre arkadaşı, grafik açıdan etkileyici bir arcade oyununu 1980'lerin PC'sine neredeyse birebir sığdırmayı başarmıştı. Tek sorun, oyunun oynanamayacak kadar yavaş olmasıydı; yan kaydırmalı bir oyunda takılan hareket, oyuncunun içine girmesini bozuyordu.
Arkadaşı kodu gözden geçirmesini istediğinde, karşısında zaten sıkılaştırılmış bir kod buldu. Döngüler açılmış, gereksiz çizimler ayıklanmış, akla gelebilecek her optimizasyon yapılmıştı. Makalede anlatıldığına göre asıl mesele kodun dağınıklığı değil, o dönemin grafik donanımının neredeyse hiçbir iş yapmamasıydı. Ekrana bir şey çizmek için her baytı programcının kendisi taşımak zorundaydı; doku eşleyici ya da hızlandırıcı yoktu.
Sorunun kaynağı arka planın her karede yeniden çizilmesiydi. Oyun, oyuncunun konumuna göre kaydırılmış neredeyse bir ekran dolusu karoyu sürekli yeniden çiziyordu. Her karo 28'e 28 pikseldi ve her piksel yarım baytla temsil ediliyordu; yani bir karo bellekte 28 satır, her satır 14 bayt olarak duruyordu. Ekran tamponu ise 160 bayt genişliğinde 240 satırdan oluşuyordu.
Habere göre işin püf noktası, 6809 işlemcisinin otomatik artırma adresleme modlarıydı. Bu sayede programcı, aynı anda hem kaynak hem hedef işaretçisini ilerleterek seferde dört piksel kopyalayabiliyordu. Bir karo satırı için bunu yedi kez tekrarlamak, sonra hedef işaretçiyi bir sonraki satıra kaydırmak gerekiyordu. Tüm bunlar 28 kez tekrarlanınca ortaya tek bir alt yordam çıkıyordu.