Re: A86: Efficiency Problem Part III
[Prev][Next][Index][Thread]
Re: A86: Efficiency Problem Part III
In a message dated 16/12/98 01:18:26 Pacific Standard Time, david_hd@yahoo.com
writes:
> >
> >
> > In a message dated 15/12/98 12:03:19 Pacific Standard Time,
> ComAsYuAre@aol.com
> > writes:
> >
> > << > There must be an easier way... is there a way to inverse a
> portion of the
> > > screen?
> >
> >
> > sure. screen memory starts at $fc00 and goes until $ffff. just do
> this to
> > invert the byte at hl:
> > ld a,(hl)
> > cpl ;one's complement
> > ld (hl),a
> >
> > you can do this in a loop for inverting a bunch of lines:
> > ld hl,$fc00
> > ld b,16*7 ;7 lines, 16 bytes each
> > invert_loop:
> > ld a,(hl)
> > cpl
> > ld (hl),a
> > inc hl
> > djnz invert_loop
> > ret >>
> >
> > Yes, but letters are smaller than one byte wide. I don't really know
> how to do
> > stuff that complicated yet... if I was inverting across the screen,
> I could do
> > it. However, it starts on the third character and the end depends on
> the menu
> > on the screen. Also, I am inverting only ONE line, not seven. It's
> very
> > similar to the menu at the beginning of Star Chaser.
> >
>
> You could start it at the beginning of whatever byte you wanted, run
> it as many bytes as you want, then jump down to the next line by
> adding 16...
>
> Thus a cheap cop out would be to have all your text starting and
> ending aproximatly on the byte. :)
You're a mind reader! :)