I have the following asm code:
org $1000 ;Table Origin is at $1000
fcb $02,$04,$06,$08 ; values of table from $1001 - $1004
fcb $0a,$0c,$0e,$10 ; values of table from $1005 - $1009
org $400 ; Program Start
lds #$4000 ; Set Stack Pointer at value (#) $4000
ldy #$1000 ; Set Index Y at $1000
ldaa #$04 ; Load Accumulator a with value $04
loop staa $20,y ; Store value of Accumulator a at y = $1000 {DOESNT WORK}
staa $21,y ; Store value of Accumulator a at y = $1021 {DOESNT WORK}
iny ; increment y (at this point $1020 and $1021 are still ff)
iny ; increment y (at this point $1020 and $1021 are still ff)
deca ; decrement a
bne loop ; loop until a = 0
hold bra hold ; end of program
end
The table is set properly but the staa writes nothing at 1020 on. Why?
I believe there is ROM there
10.3 ROM Array
The ROM is made of a 28K byte array mapped from $1000 to $7FFF and of a 32 K byte array mapped from $8000 to $FFFF at reset. The MAPROM bit in the MISC register allows the swapping of the two arrays. ROMON28 and ROMON32 enable or disable the ROM module
From the M68HC12 datasheet
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With