Right now I am learning 6502 assembly. Currently I am using the MADS assembler to program for the Atari 800. This program is just a small tutorial program that came with the assembler zip file I downloaded. The only piece of this program I did't understand is the jmp *
operation, what does the '*' mean? Full program:
sm_ptr = $58
ch = $2f4
chr = $2400
rom_chr = $e000
org $2000
.proc main
mva #>chr ch
ldx #0
copy_loop
mva rom_chr,x chr,x
mva rom_chr+$100,x chr+$100,x
mva rom_chr+$200,x chr+$200,x
mva rom_chr+$300,x chr+$300,x
inx
bne copy_loop
ldx #0
space_loop
mva charset.space,x chr,x
inx
cpx #8
bne space_loop
ldy #0
loop
tya
sta (sm_ptr),y
iny
bne loop
jmp *
.local charset
space
.byte %01000100
.byte %00101000
.byte %01111100
.byte %01010100
.byte %11111110
.byte %10101010
.byte %10111010
.byte %00000000
.endl
.endp
run main
mva
? Is it a macro or does the Atari 800 have a non standard 6502?MVA
is a move macro to transfer a byte using A as buffer.MVA adr1,adr2
gets resolved asLDA adr1
followed bySTA adr2
.