ano mate pravdu, aby to makro bylo prenositelne, tak by se melo X taky vynulovat. Ale toto je zrovna kod, kterej jsem tady ukazoval na NESu, reset konzole. A tam to vypada nejak takto:
.proc reset
; nastavení stavu CPU
setup_cpu
; nastavení řídicích registrů
ldx #$00
stx PPUCTRL ; nastavení PPUCTRL = 0
stx PPUMASK ; nastavení PPUMASK = 0
stx APUSTATUS ; nastavení APUSTATUS = 0
; čekání na vnitřní inicializaci PPU (dva snímky)
wait_for_frame
wait_for_frame
; vymazání obsahu RAM
clear_ram
; čekání na další snímek
wait_for_frame
Takze je to skaredy, ale X je vynulovane uz na zacatku, protoze wait_for_frame nenici zadny registr (jen cte z pameti).