= Rectangle_Filled =

Input: 10->X
           D,E,H,L
          1->Y or 0->Y
          0->C or 1->C or 2->C

Output: Draw a rectangle with D,E,H,L (x1,y1,x2,y2)
              Y=1 Draw in the LCD // Y=0 don't draw (saves in the Graphbuffer)
              C=0 white rectangle // C=1 Black rect. // C=2 Xored rect.

Explanation: This functions it's in all of ZAPI83, maybe, the most instable or dangerous...because like the other functions is coded in assembly. So it can crash your calculator... and as you know I don't have any responsibility. And why I'm talking about that? Like you see...this function need lot's of vars (7 vars) (vars = variables like X, Y) so you need use all of the need vars because your TI can crash... You can't have x1>x2 (D>H) and y1>y2 (E>L). Other thing that you should remember is that X1e[0,93] understand?? x1>0 and x1<94 (94 doesn't make part).. for X2 it should be X2e[1,94] // Y1e[0,62] // Y2e]1,63]
I'm sorry because I couldn't have time to do that things...I have tried but It didn't work.
The var C should be 0,1 or 2 I think you understand that...
The var Y is other thing... Let me explain... That what I'm going explain you now will be need to the display of pics and sprites... so take attention. OK Lets start: imagine that you want draw two squares or two rectangles or whatever... If you use Y=1 in the two times you 'make' the squares it will be draw the two times... ahrrrrrr. Sorry let me explain again... Lets think with 3 squares, it's more easy. You use Y=1 and call zapi83 to make the first square and it is draw, you call zapi83 to draw the second, and finally the ....yes the last :) (how do you write 3rd :) Now is you do the same thing but use Y=0 in the first two squares they won't be displayed in the LCD but are saved in the Graphbuffer and this time you shouldn't call any type of basic display graph  (rrrr...like point // pixel // Clrdraw // line ..etc) but  you in the last square should use Y=1 in order to display all the draw squares that was saved in the Graphbuffer.

OK Why I put this thing of Y=0 or Y=1...because it can save time...if you need to draw 10 squares in the LCD it's more fast make them appear only in the last square draw than ever time you call zapi83 appear in the LCD the square... I hope  :) and I hope you understand this explanation too :)

And now some words explained:
xor (ed) - When you draw a rectangle with the clause xor the pixels where the rectangle pass will be inverted... Like if (1= pixel on) and (0=pixel off) then if you have something in the LCD like 10011011 with xor it will be 01100100 see?

GraphBuffer - The graph buffer is where the image data is stored before be draw in the screen

LCD - Is the screen of your calculator. It means Liquid Crystal Display. Is the screen type... 

ahrrrrrr  - This is what I usual write when I'm writing and I can explain some thing, and you think why don't I clear the wrong explanation and make it again...because I want you feel me :) And as I'm not pay to do things like this...I want make them at my way...understand....ahrrRRrrr

Ops I forgot...some examples :)

PROGRAM:XXXX
:ClrDraw
:Pxl-Change(0,0)
:Pxl-Change(0,0)
:10->D:10->E
:83->H:53->L
:1->Y:1->C:10->X
:prgmZZAPI

Next Tuturial:
- BG Pattern -