Re: A86: mult/div and sprites
[Prev][Next][Index][Thread]
Re: A86: mult/div and sprites
you forgot to mention that the result of the mult cant be more than 255 and
the result of the div cant be less than 0
-----Original Message-----
From: Alan Bailey <bailela@charlie.cns.iit.edu>
To: assembly-86@lists.ticalc.org <assembly-86@lists.ticalc.org>
Date: Sunday, February 22, 1998 12:03 AM
Subject: Re: A86: mult/div and sprites
>
>At 10:50 PM 2/20/98 -0800, you wrote:
>>
>>Is there a way to multiply or divide in asm86?
>>
>
>Sure you can. The basic idea is 5*4=5+5+5+5. The code keeps adding one
>number as many times as specified by the other. Same thing with division,
>except subtraction. However, this division routine does not keep the
>remainder.
>
>;***************************************************
>;****Division routine, numerator in AC, denominator
>;****in DE, answer without remainder in AC.
>;***************************************************
>div:
> ld HL, 0
> ld B, 16
> and A
>DIVLOOP:
> rl C
> rl A
> rl L
> rl H
> sbc HL, DE
> jr nc, DIVNOADD
> add HL, DE
>DIVNOADD:
> ccf
> djnz DIVLOOP
> rl C
> rl A
> ret
>
>;Multiplication Function
>
>; Arguments:
>; A = to be multiplied by DE
>; DE = to be multiplied by A
>
>; Returns:
>; HL = A * DE
>mult:
> ld HL, 0
> ld B, 7
>
> srl A
> jr nc, SKIP_BIT0
> add HL, DE
> jr c, MULT_OVERFLOW
>SKIP_BIT0:
>NEXT_BIT:
> sla E
> rl D
> jr nc, START_HERE
> cp 0
> jr nz, MULT_OVERFLOW
>START_HERE:
> srl A
> jr nc, SKIP_BIT
> add HL, DE
> jr c, MULT_OVERFLOW
>SKIP_BIT:
> djnz NEXT_BIT
> ret
>MULT_OVERFLOW:
> scf
> ret
>
>
>
>>also, can u store sprites in aliases?
>>
>>(ie:
>> ld hl,dot
>> ld (picture),hl
>>
>>dot:
>> .db 8,8
>> .db %00000000
>> .db %00011000
>> .db %00111100
>> .db %001...
>>(you get the idea)
>>
>>
>
>
>It depends on how you're working with the sprite. If you're expecting it
>to be displayed after that code, you're a bit off. That stores the address
>of <dot> in another address <picture>. I don't know if you're using some
>kind of putsprite routine with it.
>
>ATTENTION - I think this list is getting too many unneeded messages. Try
>to cut back, and only reply if necessary. It helps with the message flood
;)
>
>
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> Alan Bailey mailto:bailela@charlie.cns.iit.edu
> IRC:Abalone Web:http://www.iit.edu/~bailela/
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
>