RE: LZ-Adv: vid_mem ques.


[Prev][Next][Index][Thread]

RE: LZ-Adv: vid_mem ques.



------ =_NextPart_000_01BBC692.F31CDAE0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


How do you directly access the video memory to create graphics?


  VIDEO_MEM is just an array of 1024 bytes.  Each byte represents 8 =
pixels -- each bit in the byte represents one pixel.  To turn on one =
pixel, you would have to load the byte of the pixel that will be drawn =
into a register (so all the other pixels in that byte won't be =
overwritten).  The specific byte can be attained by zeoring the least =
significant bit of the Y value, then shifting that to the left (which is =
equivilant to dividing by 8 (bits) then multiplying by 16 (bytes on =
every row)), then adding the X value of the pixel to the Y, and adding =
that finally to VIDEO_MEM. This sounds kinda compilcated, but in =
mathematical terms, it is this:


VIDEO_MEM + (Y/8)*16 + X


Once you have this byte, you need to turn on or off the pixel you want =
to.  The easiest way to do this is with a RES or SET instruction, but in =
some cases there's faster ways...  Anyway, you put this changed byte =
back into the above location, and Voila -- the pixel has been changed!!
This seems kind of difficult just to turn on one pixel, but it is =
precisely what the pixel routines do.  There are many ways to take =
shortcuts when you are not turning on individual pixels.  For example, =
if you want to zero the whole screen, just do a loop 1024 times to load =
0 into the bytes at VIDEO_MEM.  This is one of the main reasons why =
assembly programs can be as fast as they are -- shortcuts are taken!
	(Take a look at Daedalus -- heh heh heh  BTW, a new version of this =
should be released soon, with faster speed, higher resolution walls, =
grayscale, and possibly Collision detection.  After this, I will finally =
begin working on the Badguys.)
------ =_NextPart_000_01BBC692.F31CDAE0
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64


eJ8+IiEXAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAAAAIAAgABBJAG
ADABAAABAAAADAAAAAMAADADAAAACwAPDgAAAAACAf8PAQAAAE0AAAAAAAAAgSsfpL6jEBmdbgDd
AQ9UAgAAAABsei1hZHZAbGlzdHMudGljYWxjLm9yZwBTTVRQAGx6LWFkdkBsaXN0cy50aWNhbGMu
b3JnAAAAAB4AAjABAAAABQAAAFNNVFAAAAAAHgADMAEAAAAYAAAAbHotYWR2QGxpc3RzLnRpY2Fs
Yy5vcmcAAwAVDAEAAAADAP4PBgAAAB4AATABAAAAGgAAACdsei1hZHZAbGlzdHMudGljYWxjLm9y
ZycAAAACAQswAQAAAB0AAABTTVRQOkxaLUFEVkBMSVNUUy5USUNBTEMuT1JHAAAAAAMAADkAAAAA
CwBAOgEAAAACAfYPAQAAAAQAAAAAAAADrTkBCIAHABgAAABJUE0uTWljcm9zb2Z0IE1haWwuTm90
ZQAxCAEEgAEAGgAAAFJFOiBMWi1BZHY6IHZpZF9tZW0gcXVlcy4AJggBBYADAA4AAADMBwoAHgAS
AC8AAgADAEEBASCAAwAOAAAAzAcKAB4AEgAfAAsAAwA6AQEJgAEAIQAAAEIxOEQ4MTUyN0MzMkQw
MTE5NjQ2NDQ0NTUzNTQwMDAwAK8GAQOQBgCoBgAAEgAAAAsAIwAAAAAAAwAmAAAAAAALACkAAAAA
AAMANgAAAAAAQAA5AAD8MKa8xrsBHgBwAAEAAAAaAAAAUkU6IExaLUFkdjogdmlkX21lbSBxdWVz
LgAAAAIBcQABAAAAFgAAAAG7xrylxFKBjbIyfBHQlkZERVNUAAAAAB4AHgwBAAAABQAAAFNNVFAA
AAAAHgAfDAEAAAAYAAAAZGF2aWVzQG1haWwudHJpbG9neS5uZXQAAwAGEK6hzG8DAAcQMwUAAB4A
CBABAAAAZQAAAEhPV0RPWU9VRElSRUNUTFlBQ0NFU1NUSEVWSURFT01FTU9SWVRPQ1JFQVRFR1JB
UEhJQ1M/VklERU9NRU1JU0pVU1RBTkFSUkFZT0YxMDI0QllURVNFQUNIQllURVJFUFJFU0UAAAAA
AgEJEAEAAAAnBQAAIwUAANIHAABMWkZ1tSVtHf8ACgEPAhUCqAXrAoMAUALyCQIAY2gKwHNldDI3
BgAGwwKDMgPFAgBwckJxEeJzdGVtAoMzdwLkBxMCgH0KgAjPCdk78RYPMjU1AoAKgQ2xC2Bgbmcx
MDMUUAsDbPhpMzYN8AtVFFEL8hNQSm8T0GMFQEhvB+Bk2G8geQhgG8BpFhAbYGhseSAA0GMHkAQg
dOBoZSB2aQ2wG+AHgDUEYHIcsHQb4AUAZWEFE9AgCcBhcGhpY6xzPwqPGnhjAEAgH4UBIdBWSURF
T19NiEVNIAQAIGp1E8AfHMADoArAHwAcsG9mIEEZMDI0IGJ5E9Bzqi4h0EUA0GgkIyAWEBcTUAeQ
CfB0BCA4IHAQaXhlbAQgLS0g+x6gJNJpBUALgB0zJQ4CINcdYCYjJIFUG+B0CHADoCsCICi4LBvz
dwhgbGS6IBGAdh1gHlEVoGErYP8nhyOxHUImIx0xHrArEAMQ1QMgYh1gZB8AdwOgC4B1HlFhJUFn
BAAT0AXAKP5zLxEuIR1CGzAdUAXAJiXPJ1Mt0SUDKyBuJzHRLMG5K6BydwUQAkAJ8CkpUnkdUXNw
BZAGkB9AJ7RjfwORLlEesAGQC4AJgCQhIN56HbAFEBkQHTNsHqAi8f0AkGcDADRRAHAx0SchLOV+
WR1wB0AKUCrAHUEDoHP/HzABgDZULdEeUTaUAYAv0A53HzEk4CKhZXF1af8dgBjxOkMcQB2BNlI1
4SYA0ignEXMpOSRtK0A5wOULUHk89TE2PXEkQinyjmUy4RywA2B3KSk5FXcsIDzjHUJYOLQs3Tp0
Wb8qwABwK2BBJy3RNFBuMCG/HjMiBySAM8AioS/wdUPQtQQgawuAZC8wBaBtJiCWbDTgE9BkKsBi
dSczPwDAHUFIgTeRLZEEkG1z7yrAJyIdIgQAOh+FH4UiCIIrL9BZLzgpKj8x5UvwWEp8T24c8Bvz
K4T/RjIkMirEKNA1sTpiKcYFwP8jsCz6KuM8NDOVNuEIkCLx/1HQHjMb0U6TIqED8B1ALyGMUkUF
8AWxU0VUJ0HpE8BydRtgaQIgR/cv8F8HgDTREbAdIxYQJwQgZj828S+xUzEkcFiQIdBBbvZ5UzEq
xHBIIU6TEXEZEOs1sx7BYgDQay7UHUIBoJ8y0SvxR6FV80PCVm88ET8mgi0YEYBOwQnhWiYhIf8f
hUYkCeBJgEbTI6IcQA3Q/x9APlEixE/aKkhIE0nTJXH/NDARsByhOzA6Mi0nA2BIIP81kQQgG9Az
lBYQI0EdYAOBp2SBWGE6U2FrM+FoFbG/YWAl0TswOVEcAmbSbhsw32IjNlIqAUbxPLJ1SSEmJMUk
gUYFsWV4YUdgNtD/SaEjwFGZNgEDYB0zOzAG8P8z4R6BCfAqwCLTG9EvMBWgvG9wI9Q5wAeCK9Yw
W0j/P3Qt0UV5RhQioSjCLOUAwP8nUR6RL/AGMTswHLEEEBPg/wJgHLAbER7xYGE05lfEduJ/HUEc
sWahJpFoOGbSZ+Ju919mDIIv0FRn8m+DWzAt0fxEYQmAONEmcx1QJOB8JvAgQlRXQ6FPcQfgMuH/
AJAqAizyRkJoQCtCLlEWEP820jWxL/BWAlRTV+U0AUfS/R8wZzDCJYEG8GWxKgFR0H8uIEmRHvET
sEkROQFDwnD6bwQQaXWyCFAuIAQAfeL/DbAbQlXxWLIBgC+xSiIqwP5JLfRExi5QL3CCYQWwRuFL
akMdQkIsIGd1WHEpCx+FFTEAihAAAwAQEAAAAAADABEQAAAAAEAABzCgUlVvusa7AUAACDCgUlVv
usa7AR4APQABAAAABQAAAFJFOiAAAAAAVhc=


------ =_NextPart_000_01BBC692.F31CDAE0--