
Сообщение от
Shiny
Не многовато? для шрифтов хватит выравнивание по 256 байт.
Да вот видимо многовато
Вообще брал из исходников graph2font:
Код:
.ALIGN $0400
fnt ins "logo2.fnt"
У них там вообще какой-то дико навороченный код с туевой хучей IFDEF.
К слову вопрос, что-то у меня не получается вектор прерываний указать. В дебаге не попадаю в эту область ни при каком раскладе.
Если я правильно понял, нужно сделать следующие шаги:
1) Запрещаем обработчик:
2) Устанавливаем вектор на адрес с обработчиком:
Код:
LDA #lo(handler1)
STA $FFFA
LDA #hi(handler1)
STA $FFFB
3) Разрешаем обработчик:
Код:
LDA #$C0
STA $D40E
RTS
И нифига по адресу handler1 мы так и не попадаем ни разу. Причём в том же куске из graph2font это работает на ура. Может тут тоже какое «выравнивание по памяти необходимо» ?
Причём интересно, что в примерах из книжек они вектор выставляют по адресу $0200, $0201 кому верить?
- - - Добавлено - - -
Забавно, нашел в чём дело, сбил с толку комментарий:
Код:
;switch off ROM to get 16k more ram
lda #$fe
sta $D301
Это не просто отключает 16к, без этого вообще NMI не фунциклирен.
p.s. К слову выравнивание по $0400 в graph2font обусловлено тем, что они на лету шрифты чанки переключают для следующей области экрана