Login
Back to forumReply to this topicGo to last reply

Posted By

rudis
on 2012-01-15
14:03:43
 ca65 lowbyte

played little bit with asm

--8<---

.setcpu "6502"
.org $1001
.word *

.word link
.word 2012 ; zeilennummer
.byte $9e ; sys-token
.byte "4109" ; adresse
.byte $00 ; zeilenende
.byte $00,$00
link:
sei
ldx #<myvbl-2
stx $312
ldx #>myvbl
stx $313
cli
rts

myvbl:
inc $ff19
jmp $ce42

jsr $fff6

-->8--

so if i don't write
ldx #<myvbl-2  

but
ldx #<myvbl

the adress is 2 bytes to high. WHY???

Posted By

gerliczer
on 2012-01-15
14:19:19
 Re: ca65 lowbyte

Is it any better if you try it with
.org $ffe
.word $1001
?
Anyway, I think you should move the label "link" before the line ".byte $00,$00" because the way it is written now makes the basic line linking wrong. At least I think so.

Posted By

siz
on 2012-01-15
14:29:24
 Re: ca65 lowbyte

Gerliczer is right: you put the load address (.word *) after your .org $1001 and that shifts the rest of your code by two bytes.
So you should write:
.org $1001 -2 (which is $fff and not $ffe grin)
.word $1001
...and the rest
Also gerliczer is right in case of the placement of the link label too.

Posted By

rudis
on 2012-01-15
15:01:10
 Re: ca65 lowbyte

works like a charm now. grin

many thanks

Posted By

gerliczer
on 2012-01-15
16:21:03
 Re: ca65 lowbyte

Half an hour later I realized too that the correct address for the .org directive should be $fff. siz was much quicker than me. Another idea would be leaving it as rudis wrote it originally and inserting a
.org *-2
line after the load address word. This works only if the compiler supports such syntax and more than one .org directive in one source.



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024