home .. forth .. colorforth mail list archive ..

Re: [colorforth] Seeing the Vesa mode on start-up/changeing same.


The text that was part of this post has been corrected.
the link http://colorforthray.info/rapter.html now contains the corrected text.

I hope you enjoy :)

Ray

On Sun, Jul 13, 2008 at 8:23 PM, Ray St. Marie <ray.stmarie@xxxxxxxxx> wrote:
> Hi all :-)
>
> The deed is done, Please see http://colorforthray.info/rapter.html.
>
> There is an odd spacing between the pix because I saved them
> incorrectly. I have to go pick up my wife from work now and don't have
> time to fix, It shall be done.
>
> Enjoy
>
> Ray :- )
>
>
> On Sun, Jul 13, 2008 at 7:21 PM, Ray St. Marie <ray.stmarie@xxxxxxxxx> wrote:
>> oops!
>>
>> I alluded to the fact that ChuckBot and the rapter move on the screen
>> below. that's accomplished by adding 2 more variables and entering
>> them into the word like this :
>>
>> xr 0 yr 24  ( these are the raptors 'mover' variables )
>>
>> : ln3 3 xr @ 235 + yr @ 180 + 30 60  2   7 silver lines ;
>>
>> Now the original x of 235 and y of 180 are offset by the xr 0 and yr
>> 24 variables. Using those variables in all of your lines of an object
>> makes the old X and Y into offsets from xr/yr.
>> You can draw your entire object and then you can add these variables
>> later. Be sure not to go off of the left or bottom of the screen as
>> you will crash. Right wraps from the left. If you've wrapped a few
>> times, you can go left and re-wrap from the right.
>>
>> A bit of a smarter program that changes the background so that you
>> have a new one everytime you leave the screen to the left should, you
>> make the object wrap right very quickly so that it can't be seen,
>> change the background, and then rap from the left.
>>
>> Circles, see Howerd's cfdos4 . better triangles, I'm looking into
>> graphics engines that run native.
>>
>> Ray outie :)
>>
>> On Sun, Jul 13, 2008 at 7:04 PM, Ray St. Marie <ray.stmarie@xxxxxxxxx> wrote:
>>> Nick said to Ray
>>>
>>>> Nick here:  Thanks, but sorry, I'm still not able to
>>>> focus on details of VESA cheatcodes.  However, they
>>>> ought to be backward compatible, so 117 & 118 ought
>>>> still to be the codes for 1024x768 resolution.
>>>
>>> Yes I believe you are correct, sir. The difference between 117 and 118
>>> is number of colors, 64k for the former and 16k for the latter. Like
>>> that matters to a 16 color system. :-)
>>> But It would matter to someone that was Using the system to draw to
>>> the screen in as fine of a detail they could muster.
>>>
>>> I also noticed that the 123 ati setting is not on the list that I
>>> included.  Hmmm. I know i've seen a more complete list somewhere.
>>>
>>> As to drawing to the screen:
>>>
>>> LINE Horizontal
>>>
>>> Line wants you to set 'at' first and then put an offset from x ( this
>>> is where the line will start ) and a length. This would draw a line:
>>>
>>> : myline 300 400 at 20 ( pixels left of x ) 50 ( pixels long ) line ;
>>>
>>> Negating the x-offset ( 20 in this case ) does as you would hope,
>>> moves the line right offset of x were as positive it starts left
>>> offset of x.
>>>
>>> A generic line word might look like
>>>
>>> : line. at line ;
>>>
>>>
>>> where you would feed it on the stack the offset length X and Y in that order.
>>>
>>> : line. color at line ;
>>> If you would rather call the color in the word then you would stack
>>> those above but you
>>> would also add the color hex setting first. Otherwise call the color
>>> sometime before calling the line.
>>>
>>> If you want to display one pixel on the screen of course you could
>>> give line a 1 pixel length, but I suggest...
>>>
>>> BOX
>>>
>>> Box is similar to line but it takes a bottom-right rather than offset/length.
>>>
>>> : mybox 300 400 at 20 50 box ;
>>>
>>> I suggest box because you could show a 4 pixel "pixel" which is much
>>> easier to see on the screen like
>>>
>>> : 4pixel 300 400 over over at 1 dup u+ u+ box ;
>>>
>>> A generic box word would look like...
>>>
>>> : box. over over at u+ u+ box ;
>>>
>>> where you would stack like x's+ y's+ x y
>>> Again the word color could go at the begining of the word and you
>>> could do like we described for line.
>>>
>>> LINE verticle
>>>
>>> Adding a for/next loop for vertical lines where the for count has to
>>> increment AT's Y variable, and length now becomes the width looks like
>>> ...
>>>
>>> : myvert  300 400 50 for over over i + at 0 2 line ;
>>>
>>> makes a line 50 pixels long starting at 300 400 and is not offset from
>>> x and it 2 pixels wide.
>>>
>>> A generic verticle line looks like
>>>
>>> : vert. for over over i + at line next ;
>>> you may or may not want to drop your x and y at the end as they are
>>> still on the stack
>>>
>>> ...where you would stack offset-x width x y length.
>>> Now you can draw nearly anything rectangular shape
>>>
>>>
>>>
>>> What about triangular. That's a bit tougher. but not to to bad.
>>>
>>> My block that contains the new line definition starts with these variables:
>>>
>>> ln 8 x 0 y 383 ht 5 wt1024 os 0 ef 0
>>> ln is the line number, more about that here shortly
>>> x - we know
>>> y - we know
>>> ht - yup height
>>> wt- width
>>> os- offset from x
>>> ef - for want of a better word -- effect.
>>>
>>> Createing these variables makes it easy to debug lines, as I will show shortly
>>>
>>> Now I can create a generic word that will draw any kind of line and
>>> including some but not all. filled triangles, An 'unfilled' triangle
>>> would have to have a slightly smaller similar triangle the background
>>> color inside the original triangle to make the line width.  They would
>>> not have transparent centers.
>>>
>>> my word looks like:
>>>
>>> : lines ef ! os ! wt ! ht ! y ! x !  ln !    ( drops to next word just
>>> for convenience)
>>> : 1lins x @ y @ ht @ for over over i + at    ( and again )
>>> : 2lins 0 os @ i * + wt @ ef @ i * + line next ;
>>>
>>>
>>> To call the lines word you would create a word like :
>>>
>>> : ln3 3  235 180  30 60  2   7 silver lines ;
>>>       ln  x     y    ht  wt  os ef
>>> ... draws the entire canapy of the airplane  mentioned in the next
>>> paragraph. Follow the list of variables in order above and you see
>>> what each number does. What's new here is os and ef. in 2lins. 2lins
>>> portion of the word starts with a zero for the plus that follows as an
>>> accumulator for the os @ i * . os @ i * if not zero will turn on that
>>> half section of 2lins and it will provide the offset from x we've been
>>> talking about. the i makes offset-x i pixels more with each loop.
>>> Smallish values for os are recommened. also, be aware that if you are
>>> matching this line with some other line you have drawn, you may have
>>> to set AT's X over in the case offset-x is great. The second half of
>>> the word extends the width of the line with each loop.
>>> You can also use negative values for os and ef.
>>>
>>> I created a drawing of ChuckBot and the beginings of a plane
>>> much like the raptor in profile using only this word lines. It
>>> includes lines that are the landing area where ChuckBot gets out of
>>> the plane, two lines to split the screen into quadrants, a different
>>> color then the backgound in the lower right quadrant and a display of
>>> two of the lines debbuging information in that quadrant. To make the
>>> lines debugging information work I created another word called vars...
>>>
>>> : e@. emit @ . ;
>>>
>>>  : vars ( x y color ) color over over at ln 12 e@. x 21 e@. y 11 e@.
>>> 30 + at ht 20 e@. wt 15 e@. os @ . ef @ . ;
>>>
>>>
>>> e@. handles the labels of each of the variabls that I have labeled
>>> with a letter representing the variable.
>>>
>>> vars takes a x y and a color and as long as you put all 4 behind any
>>> line it will display that lines information on the screen where you
>>> say and in the color you say.
>>>
>>>
>>> See it at http://colorforthRay.info/rapter.html
>>>
>>>
>>>
>>>> Mark
>>>> Slicker's website lists a CF01 with VESA query
>>>> facility, but I do not have privilege access to this -
>>>> so I'll try to do it myself with help of VESA
>>>> documentation and your website.
>>>>
>>>> But slow as I am, CF does what I want sooner or later.
>>>> I am not held up by monitor because I have ripped the
>>>> new source blocks out of the Windows CF (about 130
>>>> blocks) and can add the ones I need to Josh's CF05 -
>>>> once I've managed to understand them.
>>>
>>> Yes! 'slow as I am' as well.  hehe.
>>> You don't have to save this e-mail for the info above, I will put it
>>> up at the link I provided above right after sending this missle.
>>>
>>>
>>>> Caritas,
>>>>
>>>> Nick
>>>>
>>>> ****************************
>>>>
>>>> A better world is not only possible but on the way.  On
>>>> a quiet day you can hear her breathing.  - Arundhati
>>>> Roy
>>>>
>>> Great quote that one!
>>>
>>> A person that quotes a person accurately is worth both.
>>> Ray
>>>
>>> --
>>> Raymond St. Marie ii,
>>> public E-mail Ray.stmarie@xxxxxxxxx
>>> a quickstart guide http://colorforthray.info
>>> THE Community Blog http://colorForth.net
>>> THE community wiki http://ForthWorks.com/c4th
>>>
>>
>>
>>
>> --
>> Raymond St. Marie ii,
>> public E-mail Ray.stmarie@xxxxxxxxx
>> a quickstart guide http://colorforthray.info
>> THE Community Blog http://colorForth.net
>> THE community wiki http://ForthWorks.com/c4th
>>
>
>
>
> --
> Raymond St. Marie ii,
> public E-mail Ray.stmarie@xxxxxxxxx
> a quickstart guide http://colorforthray.info
> THE Community Blog http://colorForth.net
> THE community wiki http://ForthWorks.com/c4th
>



-- 
Raymond St. Marie ii,
public E-mail Ray.stmarie@xxxxxxxxx
a quickstart guide http://colorforthray.info
THE Community Blog http://colorForth.net
THE community wiki http://ForthWorks.com/c4th

---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com