Re: #A0000

new topic     » goto parent     » topic index » view thread      » older message » newer message

>Say, I'm new to this whole thing.  Perhaps someone can send me something
>along the lines of "etiquette for the ignerent" or sumthin.  Anyways.  I
>was trying to implement a virtual memory scheme using mem_copy and
>mem_set, but when I write to addresses above #A0000 + 199680, it does
>not display to the screen (mode 261).  If I push it, it crashes.  Could
>someone please explain this to me.


You can only do that in mode 19. Or you need to bank.
Euphoria offers you flat memory, except, video cards, cant have flat memory.
To acces the memory accros that border, you need to bank.
By 'banking' you call an interrupt, which changes the offset of the video
page. For example, you bank to 64000, from that point #A0000 contains the
pixel value of what you expected to be saved at #A0000 + 199680

So, yes this does complicate stuff a bit. However, you're in luck. Ememcopy
does handle banking. So if you would use ememcopy, you have no worries.
Other than that there is a simple svga acces library by Pete Eberlein. It
offers acces to the SVGA a bit faster than EUphoria does. Euphoria requires
the banking to be restored after every pixel () call, so displaying an image
accros the (199680) border, will make it bank for every line, instead of
just once.

So, remember, if you want to do the graphics of SVGA yourself, restore the
banking to zero, before you use the standard Euphoria routines. Also check
out Mighty.e (Pete Eberlein) which offeres SVGA mouse routines.

I hope this helps..

Ralf N.
nieuwen at xs4all.nl

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu