In my Nesteroids game when I set up the vectors I was doing it the way I learned from rainwarrior's demo code.
It looked like this:
Code: Select all
.segment "VECTORS" ; THIS IS THE LAST 6 BYTES OF THE FILE, USED AS ADDRESSES FOR INTERRUPTS
.word nmi
.word reset
.word irq
Code: Select all
.segment "VECTORS" ; THIS IS THE LAST 6 BYTES OF THE FILE, USED AS ADDRESSES FOR INTERRUPTS
.word irq
.word reset
.word nmi
Code: Select all
MEMORY {
ZP: start = $00, size = $0100, type = rw, file = "";
OAM: start = $0200, size = $0100, type = rw, file = "";
RAM: start = $0300, size = $0500, type = rw, file = "";
HDR: start = $0000, size = $0010, type = ro, file = %O, fill = yes, fillval = $00;
PRG: start = $8000, size = $8000, type = ro, file = %O, fill = yes, fillval = $00;
CHR: start = $0000, size = $2000, type = ro, file = %O, fill = yes, fillval = $00;
}
SEGMENTS {
ZEROPAGE: load = ZP, type = zp;
OAM: load = OAM, type = bss, align = $100;
BSS: load = RAM, type = bss;
HEADER: load = HDR, type = ro;
CODE: load = PRG, type = ro, start = $8000;
TABLES: load = PRG, type = ro, start = $E000;
RODATA: load = PRG, type = ro;
VECTORS: load = PRG, type = ro, start = $FFFA;
TILES: load = CHR, type = ro;
}
Code: Select all
MEMORY {
ZP: start = $00, size = $0100, type = rw, file = "";
OAM: start = $0200, size = $0100, type = rw, file = "";
RAM: start = $0300, size = $0500, type = rw, file = "";
HDR: start = $0000, size = $0010, type = ro, file = %O, fill = yes, fillval = $00;
PRG: start = $8000, size = $8000, type = ro, file = %O, fill = yes, fillval = $00;
CHR: start = $0000, size = $2000, type = ro, file = %O, fill = yes, fillval = $00;
}
SEGMENTS {
FASTVARS: load = ZP, type = zp;
OAM: load = OAM, type = bss, align = $100;
VARS: load = RAM, type = bss;
HEADER: load = HDR, type = ro;
CODE: load = PRG, type = ro, start = $8000;
ROMDATA: load = PRG, type = ro, start = $E000;
VECTORS: load = PRG, type = ro, start = $FFFA;
IMG: load = CHR, type = ro;
}
Thanks