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 ) .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. 
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. |
|