Toda ROM baseada no código 6502 e compatível que eu já vi inicializa o ponteiro da pilha ( LDX #$FF
, TXS
) durante a rotina RESET. Você deveria também.
É possível que mais tarde as revisões do 6502 (ou seja, 65C02 no Apple II) sejam inicializadas explicitamente, assim como as variantes de 16 bits do 65816 e posteriores.
Eu apostaria significativamente que .S
é um valor aleatório na ativação do 6502 original e do 6510 no Commodore 64, e provavelmente até o 2A07 no NES.
Geralmente, qualquer rotina de redefinição do 6502 também começa com o seguinte, geralmente como as duas primeiras instruções:
SEI ;disable interrupts (set interrupt disable flag)
CLD ;turn decimal mode off