Interface Engine Tutorial


 

SUMMARY

I......... What is it
II........ How does it work
III....... The api92_IEPipe structure
IV........ Examples
V......... Conclusion


I. What is it

The Interface Engine is a very powerful tool that is used to draw very nice graphical interfaces using a minimum of memory. You should use it in all your applications programs if you use the Api92 library.


II. How does it work

The idea of the Interface Engine is to use only one library call to draw your interface, with a single parameter : the address of an api92_IEPipe structure. The api92_IEPipe structure contains all datas describing your interface, and is very easy to use.

 

III. The api92_IEPipe structure

The api92_IEPipe structure in a buffer of byte terminated by the constant IE_END. To understand as fast as possible how it works, here is an example of a api92_IEPipe structure :

ie_Data:
        dc.b IE_ANIMEDWIN2,50,50+OX,30+OY,189+OX,90+OY,"IE Example",0
        dc.b IE_SETFONT,0
        dc.b IE_STRING,54+OX,45+OY,"Here is a small example of",0
        dc.b IE_STRING,54+OX,51+OY,"the Interface Engine",0
        dc.b IE_SETFONT,1
        dc.b IE_STRING,60+OX,60+OY,"Useful !",0
        dc.b IE_WAITKEY
        dc.b IE_END

The result of this api92_IEPipe structure is :

 

Here is the list of all operations possible in an api92_IEPipe structure :

IE_END : Very important : it is used to announce the end of the api92_IEPipe structure

IE_NOP : No Operation : Used to make a word-alignement It uses only one byte.
Syntax : IE_NOP

IE_SETFONT : Set current the font
Syntax : IE_SETFONT,[font]

IE_SAVEFONT : Save the font
Syntax : IE_SAVEFONT

IE_RESTOREFONT : Restore the saved font
Syntax : IE_RESTOREFONT

IE_STRING : Draw a string, using the current font
Syntax : IE_STRING,[x],[y],[0-terminated string]

IE_STRINGADDR : Draw a string, giving in parameter its address. Be careful : the address of the string must be word aligned (using IE_NOP before IE_STRINGADDR if needed) else you will get an address error.
Syntax : IE_STRINGADDR,[x],[y],[address of string]

IE_CHAR : Draw a char, using the current font
Syntax : IE_CHAR,[x],[y],[char]

IE_WIN : Draw a normal window
Syntax : IE_WIN,[x1],[y1],[x2],[y2],[0-termined string]

IE_WIN2 : Draw an advanced window
Syntax : IE_WIN2,[x1],[y1],[x2],[y2],[0-termined string]

IE_ANIMEDWIN : Draw a normal animed window
Syntax : IE_ANIMEDWIN,[speed value],[x1],[y1],[x2],[y2],[0-termined string]

IE_ANIMEDWIN2 : Draw an advanced animed window
Syntax : IE_ANIMEDWIN2,[speed value],[x1],[y1],[x2],[y2],[0-termined string]

IE_SOLIDRECT : Draw a framed solid rectangle
Syntax : IE_SOLIDRECT,[x1],[y1],[x2],[y2]

IE_INVERTAREA : Invert a part of the screen
Syntax : IE_INVERTAREA,[x],[y],[width],[height]

IE_CLRSCR : Clear the screen
Syntax : CLR_SCR

IE_WAITKEY : Wait for a key hit from the user


IV. Examples

The Interface Engine is very often used in the examples of this SDK. It is really a powerful tool. You will find it slctfil2 and slctfil3 for example, and in other examples, specially in graphics\iengine.asm.


V. Conclusion

The Interface Engine is a tool that can be used in a lot of programs. It makes them really smaller, since the buffer used is a buffer of bytes, and you have only one library function to call.


If you have any suggestion, comments (like functions to add to the Interface Engine), don't hesitate !

mail me at : p.c.scherrer@wanadoo.fr


Ibrahim - Benoit SCHERRER
NeXO Software