pinned
A program of Targets.
What the tool said
NGA5218 `belowDos` is pinned at $0800, in the reserved region `dos` /Users/waldek/Desktop/NGA/tutorial/03-targets/pinned/pinned.asm:2
main.ngp
target {
region $0080 .. $00FF ram
region dos $0700 .. $1FFF reserved
region $2000 .. $BFFF ram
}
modules { "pinned.asm" }
container xex
pinned.asm
.section absolute at $0800
belowDos
.res 1
.ends
.proc entry
lda belowDos
rts
.endp
load.asm nga.load
ngaLoadPtr .ztemp 2
.macro ngaLoadRead
ldy #0
lda (ngaLoadPtr),y
inc ngaLoadPtr
bne @same
inc ngaLoadPtr+1
@same
.endm
.export ngaUnpackFrom, ngaUnpackTo
.section root
ngaUnpackFrom .res 2
ngaUnpackTo .res 2
.ends
.export ngaUnder, ngaUnderTable, ngaUnderPutBack
.section root
ngaUnderTable .res 2
.ends
.section root
ngaUnderPutBack .res 1
.ends
ngaUnderAt .ztemp 2
ngaUnderFrom .ztemp 2
ngaUnderTo .ztemp 2
ngaUnderLeft .ztemp 2
ngaUnderCount .ztemp 1
ngaUnderRoms .ztemp 1
.proc ngaUnder, root
nga.mask
lda #0
nga.select
lda ngaUnderTable
sta ngaUnderAt
lda ngaUnderTable+1
sta ngaUnderAt+1
ldy #0
lda (ngaUnderAt),y
sta ngaUnderCount
iny
lda (ngaUnderAt),y
sta ngaUnderRoms
ldx #2
piece jsr take
sta ngaUnderFrom
jsr take
sta ngaUnderFrom+1
jsr take
sta ngaUnderTo
jsr take
sta ngaUnderTo+1
jsr take
sta ngaUnderLeft
jsr take
sta ngaUnderLeft+1
ldy #0
move lda ngaUnderLeft
ora ngaUnderLeft+1
beq moved
lda (ngaUnderFrom),y
sta (ngaUnderTo),y
inc ngaUnderFrom
bne from
inc ngaUnderFrom+1
from inc ngaUnderTo
bne to
inc ngaUnderTo+1
to lda ngaUnderLeft
bne left
dec ngaUnderLeft+1
left dec ngaUnderLeft
jmp move
moved dec ngaUnderCount
bne piece
lda ngaUnderRoms
nga.select
nga.unmask
rts
take txa
tay
lda (ngaUnderAt),y
inx
rts
.endp
Memory map
- (implicit)0 zero page, 5 bytes
| Address | Bytes | Section | Module | Kind | Phases | Waits |
| $0800–$0800 | 1 | belowDos | pinned | section | 0 | |
| $2000–$2003 | 4 | entry | pinned | proc | 0 | |
The xex
16 bytes, 2 segments, 0 unaccounted.
$2000–$2003 4 bytes at 2
$02E0–$02E1 2 bytes at 10