A86: Re: Re: Re: Re: Re: divide by 2


[Prev][Next][Index][Thread]

A86: Re: Re: Re: Re: Re: divide by 2




    Basically what I want to do is to store between 25 and about 255 values
(ranging from 0-9).  This was the only way I could think of.  I don't want
to do all the .db 's because the amount of values I store will be different
every time.

    What I want to do hopefully is:

----------------------------------------------------------------------------
-
initially "hl" points to the end of _asm_exec_ram
------------------------------------------------------------------------
    *execute some code and store a value 0-9 in "a"*
-------------------------------------------------------------------------
    ld (hl),a
--------------------------------------------------------------------------
LOOP:

*execute some code and store a value 0-9 in "a"*
*also do something to set a flag or something to leave the loop if it's
done*
-------------------------------------------------------------------------
    dec (hl)

    ld (hl),a

    jp LOOP
--------------------------------------------------------------------------

-i want to write in in backwards then read it forwards!?!?

-When I'm done If what has been placed in "a" in order is:
0,1,2,3,4,5,6,7,8,9
-At the end (hl) will point to 9 (it was the last number put in)
-mem from (hl) to end of _asm_exec_ram will be 9,8,7,6,5,4,3,2,1,0
-so to write it I could (using that nice routine to display the value of "a"
to the screen)
    then do a loop on:   ld a,(hl),  (display "a" to screen)  inc (hl) until
(hl) == end of _asm_exec_ram, else redo
    loop.


DOES ANY OF THIS   LOOK REMOTELY CORRECT? If it does I promise I'll stop
bugging everyone for a while with all these questions...

thanks very much!

    ,billybobIV
    chad@dirks.com
    http://chad.dirks.com



----- Original Message -----
From: David Phillips <david@acz.org>
To: <assembly-86@lists.ticalc.org>
Sent: Thursday, March 04, 1999 4:06 PM
Subject: A86: Re: Re: Re: Re: divide by 2


>
>Umm...
>
>_asm_exec_ram starts at $d748 and ends wherever your stack ends (starts?).
>The stack begins (ends) at $fbff and grows DOWNWARDS into _asm_exec_ram.
>Why they chose to do this, I have no idea.  IMHO, memory should have been
>layed out with ram page 7 being located (and swapable!) at $8000, like the
>85.  Then your asm program could execute at the end of it and have almost
>30k of contiguous ram.  And putting the stack right below video ram is bad
>also, because if you want two contiguous grayscale planes, you have to move
>the stack.  No big deal, but why should you have to waste space when the
>program loader could do it?
>
>Do you mean you want to fill an area with a number?  Do this...
>
>  ld hl,Start
>  ld de,Start+1
>  ld bc,Length-1
>  ld (hl),n
>  ldir
>
>>