1. Poke, poke....

Hey Euphoria people....

I'm making a simple graphics library that will be able to do page flipping 
style graphics...
ie: draw everything to buffer, then call update() to show it onscreen, to 
stop flickering.

I haven't been able to find anything of the sort on the website, and I 
wanted something of the sort.

My problem is:

If I am in graphics mode 18... I can just poke the color value I wish into 
the correct memory location.
However, in any other mode.. it does these strange monochrome patterns.. I 
guess corresponding to the bits of the number I inserted. How do I poke the 
values properly?

Another thing, where are the machine code libraries? and their 
documentation?

Thatz all for now
=====================================================
"A social life? Where can I download that from?"
______<-------------------\__
/ _____<--------------------__|===
||_    <-------------------/
\__|Mr Trick

new topic     » topic index » view message » categorize

2. Re: Poke, poke....

Hi Trick,
    I can't answer you question, I tried once to make an engine like
that but my attemps failed.
    But I can suggest you to take a good look at the contributions, I
have Mode19, M19lib, ModeX, Neil, Vgraph and more libraries that helps
to do thing like using a buffer.

Best Regards,
    Guillermo Bonvehi
    AKA: Knixeur

PS: Another engine would be great of course =)


--- mistertrik at hotmail.com wrote:
> 
> Hey Euphoria people....
> 
> I'm making a simple graphics library that will be able to do page
> flipping 
> style graphics...
> ie: draw everything to buffer, then call update() to show it
> onscreen, to 
> stop flickering.
> 
> I haven't been able to find anything of the sort on the website, and
> I 
> wanted something of the sort.
> 
> My problem is:
> 
> If I am in graphics mode 18... I can just poke the color value I wish
> into 
> the correct memory location.
> However, in any other mode.. it does these strange monochrome
> patterns.. I 
> guess corresponding to the bits of the number I inserted. How do I
> poke the 
> values properly?
> 
> Another thing, where are the machine code libraries? and their 
> documentation?
> 
> Thatz all for now
> =====================================================
> "A social life? Where can I download that from?"
> ______<-------------------\__
> / _____<--------------------__|===
> ||_    <-------------------/
> \__|Mr Trick
> 
> 
> 
> 


=====
Best Regards,
    Guillermo Bonvehi
    AKA: Knixeur - Caballero Rojo

new topic     » goto parent     » topic index » view message » categorize

3. Re: Poke, poke....

First of all,
mode 18 is 640*480 in size,
you can't just poke values for a 640*480 screen to
#A0000 or you'll get a machine exception.
Any screen larger than 320*240 can't be poked to video
memory directly.
You ought to use bank switching to divide a larger
screen up into 320*240 parts.
So basically what I'm saying is that poking only works
in mode 19.

Use Vesa20.e to be able to draw your backbuffers to
the screen in any video mode.
Make sure you remember that a 256-color display needs
1-byte per color, 16-bit color 2, and 24/32 bit color
4 bytes.
So 'back = allocate(640*480)' for a 256-color
backbuffer, and 'back = allocate(640*480*4)' for a
32-bit color backbuffer, for example.
Use poke() and poke4() to write the colors to the
backbuffer.


--- mistertrik at hotmail.com wrote:
> 
> Hey Euphoria people....
> 
> I'm making a simple graphics library that will be
> able to do page flipping 
> style graphics...
> ie: draw everything to buffer, then call update() to
> show it onscreen, to 
> stop flickering.
> 
> I haven't been able to find anything of the sort on
> the website, and I 
> wanted something of the sort.
> 
> My problem is:
> 
> If I am in graphics mode 18... I can just poke the
> color value I wish into 
> the correct memory location.
> However, in any other mode.. it does these strange
> monochrome patterns.. I 
> guess corresponding to the bits of the number I
> inserted. How do I poke the 
> values properly?
> 
> Another thing, where are the machine code libraries?
> and their 
> documentation?
> 
> Thatz all for now
>
=====================================================
> "A social life? Where can I download that from?"
> ______<-------------------\__
> / _____<--------------------__|===
> ||_    <-------------------/
> \__|Mr Trick
> 
>
> 
> 
>
>

new topic     » goto parent     » topic index » view message » categorize

4. Re: Poke, poke....

Hello mtsreborn_again,

----------
> Îò: mtsreborn_again at yahoo.com
> Êîìó: EUforum <EUforum at topica.com>
> Òåìà: Re: Poke, poke....
> Äàòà: Tuesday, November 27, 2001 10:34

> First of all,
> mode 18 is 640*480 in size,
> you can't just poke values for a 640*480
> screen to #A0000 or you'll get a 
> machine exception.

No, you *can* just poke byte values in mode 18
from #A0000 address.

But these *byte values* take 8 dots in horisontal
line, same as bits in those bytes - 
black or not black.

So, you'll get 640 dots in one line with just
80 addresses from #A0000 to #A0000 + 79 
(see 79 is decimal) for y coordinate = 0

That *not black* is color #15.
If you change the palette of 15 color then
all not black dots will have new mono-color.

Very handy for very very fast output 
of the text in 18 mode on black 
background.

See for example my n-font package at :

http://www.rapideuphoria.com/n-font.zip

and Polyglot package at:

http://www.rapideuphoria.com/polygl_b.zip
http://www.rapideuphoria.com/polyglot.zip

which use this trick for the fast printing
in classic mode 18.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

5. Re: Poke, poke....

Granted, but I was talking about actually displaying
some colors :p
That's what this guy is doing wrong, he probably
thinks color values can be poked as-is.

Mike The Spike

--- Igor Kachan <kinz at peterlink.ru> wrote:

> No, you *can* just poke byte values in mode 18
> from #A0000 address.
> 
> But these *byte values* take 8 dots in horisontal
> line, same as bits in those bytes - 
> black or not black.
> 
> So, you'll get 640 dots in one line with just
> 80 addresses from #A0000 to #A0000 + 79 
> (see 79 is decimal) for y coordinate = 0
> 
> That *not black* is color #15.
> If you change the palette of 15 color then
> all not black dots will have new mono-color.
> 
> Very handy for very very fast output 
> of the text in 18 mode on black 
> background.
> 
> See for example my n-font package at :
> 
> http://www.rapideuphoria.com/n-font.zip
> 
> and Polyglot package at:
> 
> http://www.rapideuphoria.com/polygl_b.zip
> http://www.rapideuphoria.com/polyglot.zip
> 
> which use this trick for the fast printing
> in classic mode 18.
> 
> Regards,
> Igor Kachan
> kinz at peterlink.ru
> 
>
> 
> 
>
>

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu