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

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


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

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