[A83] Re: Shading
[Next][Index][Thread]
[A83] Re: Shading
>>You mean grayscale, right? Thats (at least in 4-layer grayscale) where
you
>>have 4 shades of pixels: white, light gray, dark gray and black. This is
>>achievable by switching between to buffers, each one containing a picture.
>>You display the first buffer for 1/3 of the time, and the second buffer
for
>>2/3 of the time. So if a pixel is off in both buffers, the pixel on the
>>screen would be white. If the pixel is on in the first one but off in the
>>second one, the pixel on the screen would be light gray (Since it is on
for
>>1/3 of the time but off for 2/3 of the time, you get the effect of it
being
>>1/3 the darkness of a black pixel). If a pixel is off in the first buffer
>>but on in the second, it would be dark gray. If a pixel is on in both
>>buffers, it would be black.
>>Thats my explanation, somebody can probably do better =)
>
>
>That's pretty concise, except for this: You need huge amounts of memory
to
>store extra screens. If you worte the plotscreen fro one, you still need
>another, most likely saferam1, and then a rountine to plot saferam1 to the
>screen, as ionfastcopy only does plotscreen (I think . . .)
>
Well, you would just need two 768 byte buffers to store each "side" of the
picture. You could do this easily with plotsscreen and savesscreen (for
83+). And as to needing another ionfastcopy routine to display the 2nd
buffer, all you really need to do is change the pointer for HL that
ionfastcopy uses i.e.
copy_buf_1:
ld hl,plotsscreen-12-(-(12*64)+1) ; 10
jr fastCopy
copy_buf_1:
ld hl,savescreen-12-(-(12*64)+1) ; 10
fastCopy:
di
ld a,$80 ; 7
out ($10),a ; 11
ld a,$20 ; 7
ld c,a ; 4
inc hl ; 6 waste
dec hl ; 6 waste
fastCopyAgain:
ld b,64 ; 7
inc c ; 4
ld de,-(12*64)+1 ; 10
out ($10),a ; 11
add hl,de ; 11
ld de,10 ; 10
fastCopyLoop:
add hl,de ; 11
inc hl ; 6 waste
inc hl ; 6 waste
inc de ; 6
ld a,(hl) ; 7
out ($11),a ; 11
dec de ; 6
djnz fastCopyLoop ; 13/8
ld a,c ; 4
cp $2B+1 ; 7
jr nz,fastCopyAgain ; 10/1
ret ; 10
_____________________________________________
Free email with personality! Over 200 domains!
http://www.MyOwnEmail.com