Re: A89: LCD memory manipulation (in asm)
[Prev][Next][Index][Thread]
Re: A89: LCD memory manipulation (in asm)
On Thu, Jan 18, 2001, Miles Raymond wrote:
>
> Yes, I know that I can probably do everything a lot easier in C, but don't
> ask me why I'm still sticking w/ asm...
Because GCC generates such *bloated* code!
> The default memory width is set to 240bits (30bytes), the size of the
> TI-92(+) LCD, and I'd like to know how to change it to 192bits (24bytes)...
move.w #$3480,$600012 ; 192x128
or
move.w #$349C,$600012 ; 192x100
The first byte (N=$34) is the width, (64-N)*16 pixels. The second byte
(M=$80 or $9C) is the height, 256-M lines.
> Then I believe to shift the actual start of the LCD by (16,16), I can just
> add 16*192+16 to set the screen and it's respective memory up like:
HW1: You can't do that and still use $004C00 for the upper left corner.
This is the best you can get:
move.w #$09B8,$600010 ; visible area start at $004DC0=$09B8*8
; the full 192x132 buffer starts at $004C3E and
; the visible 160(192)x100 buffer starts at $004DC0
HW2: The frame buffer address (the upper left corner of the visible part of
the screen) is fixed to $004C00 for all practical purposes. One solution
is to locate the 192x132 buffer at $004A7E. The supervisor stack lives
here, but it might work anyway. :)
--
Johan Eilert
Follow-Ups:
References: