## Re: [stella] I'm looking through 6 digit code

 Subject: Re: [stella] I'm looking through 6 digit code From: "Andrew Davie" Date: Mon, 19 May 2003 23:08:16 +1000
```>          adc #<zero
>          sta ptr0,y
>          lda #0
>          sta ptr0+1,y

The processor is able to shift only 8 bits at a time through its registers.
That is, the X, Y, and A register can only hold 8-bit values.  But the
processor can ADDRESS memory locations with a 16-bit range.  That is, from 0
to 65535 decimal ( 0 to FFFF Hexadecimal).  So if you want to load something
from location \$8000 (the \$ means hexadecimal), for example, you could do it
directly by   lda \$8000 - which would work fine, load the contents of
location \$8000.  But if you wanted to do the load INDIRECTLY, by placing the
location points to, you will need first to place the 16-bit address into the
two zero page bytes which you use as your indirect pointer.

But, as noted, you can't actually DO that with 8 bit-registers.  Not in one
go, anyway.  What you'd like to be able to do is go...

lda #\$8000
sta ptr0

We can't do that, because \$8000 is a 16-bit value.  We have to do the load
in two stages.  First load/store the high byte of the address, then

lda #<\$8000
sta ptr0
lda #>\$8000
sta ptr0+1

That's just loaded our 16-bit address into a zero page pair of bytes, by
doing it a byte at a time.

Now, instead of using an absolute location address, let's do exactly the
same thing, but using a label instead

lda #<label
sta ptr0
lda #>label
sta ptr0+1

If the address of "label" happened to be \$8000, then we would have the same
result.  But actually we don't need to know what "label" happens to be - we
let the assembler handle this.  As long as "label" is somewhere else in the
code, it will all work OK.

In summary...

lda #<label

the # means load an immediate value (rather than load from the memory
location)
the < means "use the low byte".   And > means "use the high byte".

Cheers
A

----------------------------------------------------------------------------------------------
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/

```