RE: LZ: matrices


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

RE: LZ: matrices



On Sat, 7 Dec 1996 15:19:52 -0600 (CST),
Will Stokes wrote...
>I'm really impacient about learning matrices and even though I mailed one
>guy about them I can;t wait days to learn how since I'm going out of town
>and wont have internet acces.
>	Lets say I have a defined matrix at the bottom of a prog. that
>will not be changed but values will be take from it to calculate stuff in
>the prog depending on variable. In other words, a 5 by 50 matrix with
>preset values. How do i load the value of MATX (refering to 5) and MATY
>(refering to  50) posision in matrix into register a? in other words for
>values of MATX and MATY how do I load the appropriate value of the matrix
>into a? How do I define it at the bottom of the screen? What about memory
>allocation, i won;t have to define it at the top will I? It's like sprites
>or pictures right? Any help appreciated as I would like the info soon so I
>can work on this game and maybe finnish it over the winter break.
>			Will Stokes

So you're trying to have the calculator recall values from a 50 row x 5 
column matrix, right?  Then define your matrix with .db's with your values 
as follows:

<Label>:
;     C1     C2     C3     C4     C5
*db value, value, value, value, value ;row 1
db value, value, value, value, value ;row 2

etc. until you have all of your values stored.  To recall a value at 
(MATX,MATY), have a loop such as follows:

ld   hl, <Label>
ld   de, (PROGRAM_ADDR)
add  hl, de               ;hl points to begining of row 1 in matrix
ld   a, MATY
dec  a
or   a                    ;If value needed is in row 1, skip loop
jr   z, Done_With_Loop
ld   b, a                 ;b is the counter
Row_Loop:
add  hl, $05              ;hl points to begining of next row
djnz Row_Loop
Done_With_Loop:
dec  hl                   ;because we'll increase it at least once
ld   b, MATX
Column_Loop:
inc  hl
djnz Column_Loop
ld   a, (hl)              ;acc should now hold the desired value!

I have never tried this before, but I think that it should work.  If it 
does, please let me know, and even if it does, please do!

Hope I've helped!
Michael Wyman - SeaHorse Software
wyma0012@gold.tc.umn.edu




Follow-Ups: