[A83] Re: variable horizontal line routine?
[Prev][Next][Index][Thread]
[A83] Re: variable horizontal line routine?
thanks a bunch man, thats a huge help =)
----------------------------------------------
Original Message
From: "Olle Hedman"<oh@hem.passagen.se>
Subject: [A83] Re: variable horizontal line routine?
Date: Fri, 01 Jun 2001 14:15:39 +0200
>
>At 12:32 2001-06-01, you wrote:
>
>>ok, this should work, and should be fast enough, if you want you could
>
>I'm sorry, but that is a _really_ crappy horiz-line routine.
>It is about as slow as you can make a horiz-lineroutine. It is even quite
>possible that useing the rom linedrawingroutine is much faster.
>
>what you should do is find the byte in screenram where the line should
start,
>with the formula x/8 + y*12 (12 is the width of the buffer in bytes)
>then find wich pixel it starts on, and then fill this part of a byte, and
>then do bytewrites directly to the mem.
>
>something along these lines: (Sorry, havn't even touched an 83 in 2 years,
>and almost not used any z80 so it could be a bit of here and there, but
>approx this: (its heavily based on my pixelplotting routine I posted in
>this list about 2½ years ago or so)
>
>input: a=x e=y
>
> ld d,0 ; Do y*12
> sla e
> sla e
> ld hl,0
> add hl,de
> add hl,de
> add hl,de
>
> ld d,0 ; Do x/8
> ld e,a
> srl e
> srl e
> srl e
> add hl,de
> ld b,e ; save bytexpos in b too.
>
> ld de,graphbuf <-- or whatever. the adress of the graphbuf
>anyway.
> add hl,de ; Add address to graphbuf
>
> ld de,0007h ; Get the remainder of x/8
> and e
> ld e,a
> ld IX,pixtable ; Look up in table where line should start
> add IX,de
> ld a,(IX+0) ; and load this
>
> ld (HL),a
>
> ld a,12 <--- maybe this should be 11 or something.
> sub b
> ld b,a
>
>loop:
> inc HL
> ld (HL),0ffh <--- you can do this can't you?
> djnz loop
>
> ret
>
>pixtable
> .db 11111111b
> .db 01111111b
> .db 00111111b
> .db 00011111b
> .db 00001111b
> .db 00000111b
> .db 00000011b
> .db 00000001b
>
>
>------
>
>Ok. this should work, untested now though. if it doesn't work it should
>with just a minor bugfixing. (I can help you bugfix if you want)
>And this can at least claim to be fast. Maybe you can do it even faster,
>but I don't think it is possible to do it much faster.
>
>///Olle
>
>
>
>
_____________________________________________
Free email with personality! Over 200 domains!
http://www.MyOwnEmail.com