1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-26 05:29:30 +00:00

Added docs for all the tgi functions and improved Lynx documentation

(contributed by Karri Kaksonen).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4301 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-10-02 14:29:17 +00:00
parent b75bdc65d3
commit 6c0960819e
2 changed files with 832 additions and 10 deletions

View File

@ -504,8 +504,45 @@ It does not declare any functions.
<sect1><tt/tgi.h/<label id="tgi.h"><p>
(incomplete)
<itemize>
<item><ref id="tgi_bar" name="tgi_bar">
<item><ref id="tgi_circle" name="tgi_circle">
<item><ref id="tgi_clear" name="tgi_clear">
<item><ref id="tgi_getcolor" name="tgi_getcolor">
<item><ref id="tgi_getcolorcount" name="tgi_getcolorcount">
<item><ref id="tgi_getdefpalette" name="tgi_getdefpalette">
<item><ref id="tgi_done" name="tgi_done">
<item><ref id="tgi_geterror" name="tgi_geterror">
<item><ref id="tgi_geterrormsg" name="tgi_geterrormsg">
<item><ref id="tgi_getmaxcolor" name="tgi_getmaxcolor">
<item><ref id="tgi_getmaxx" name="tgi_getmaxx">
<item><ref id="tgi_getmaxy" name="tgi_getmaxy">
<item><ref id="tgi_getpagecount" name="tgi_getpagecount">
<item><ref id="tgi_getpalette" name="tgi_getpalette">
<item><ref id="tgi_getpixel" name="tgi_getpixel">
<item><ref id="tgi_getxres" name="tgi_getxres">
<item><ref id="tgi_getyres" name="tgi_getyres">
<item><ref id="tgi_gotoxy" name="tgi_gotoxy">
<item><ref id="tgi_init" name="tgi_init">
<item><ref id="tgi_install" name="tgi_install">
<item><ref id="tgi_ioctl" name="tgi_ioctl">
<item><ref id="tgi_line" name="tgi_line">
<item><ref id="tgi_lineto" name="tgi_lineto">
<item><ref id="tgi_load" name="tgi_load">
<item><ref id="tgi_load_driver" name="tgi_load_driver">
<item><ref id="tgi_outtext" name="tgi_outtext">
<item><ref id="tgi_outtextxy" name="tgi_outtextxy">
<item><ref id="tgi_setcolor" name="tgi_setcolor">
<item><ref id="tgi_setdrawpage" name="tgi_setdrawpage">
<item><ref id="tgi_setpalette" name="tgi_setpalette">
<item><ref id="tgi_setpixel" name="tgi_setpixel">
<item><ref id="tgi_setviewpage" name="tgi_setviewpage">
<item><ref id="tgi_textheight" name="tgi_textheight">
<item><ref id="tgi_textstyle" name="tgi_textstyle">
<item><ref id="tgi_textwidth" name="tgi_textwidth">
<item><ref id="tgi_uninstall" name="tgi_uninstall">
<item><ref id="tgi_unload" name="tgi_unload">
</itemize>
<sect1><tt/time.h/<label id="time.h"><p>
@ -4834,6 +4871,786 @@ be used in presence of a prototype.
</quote>
<sect1>tgi_bar<label id="tgi_bar"><p>
<quote>
<descrip>
<tag/Function/The function fills a rectangle on the drawpage with the current
color.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_bar (int x1, int y1, int x2, int y2);/
<tag/Description/The function fills a rectangle on the drawpage with the current
color.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi function
<tag/Example/<verb>
tgi_setcolor(COLOR_GREEN);
tgi_bar(10, 10, 100, 60);
</verb>
</descrip>
</quote>
<sect1>tgi_circle<label id="tgi_circle"><p>
<quote>
<descrip>
<tag/Function/The function draws a circle in the current color.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_circle (int x, int y, unsigned char radius);/
<tag/Description/The function draws a circle in the current color.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/<verb>
tgi_setcolor(COLOR_BLACK);
tgi_circle(50, 40, 40);
</verb>
</descrip>
</quote>
<sect1>tgi_clear<label id="tgi_clear"><p>
<quote>
<descrip>
<tag/Function/Clear the screen
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_clear (void);/
<tag/Description/Clear the screen
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_done<label id="tgi_done"><p>
<quote>
<descrip>
<tag/Function/End graphics mode, switch back to text mode.
Will NOT uninstall or unload the driver!
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_done (void);/
<tag/Description/End graphics mode, switch back to text mode.
Will NOT uninstall or unload the driver!
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getcolor<label id="tgi_getcolor"><p>
<quote>
<descrip>
<tag/Function/Return the current drawing color.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_getcolor (void);/
<tag/Description/The actual color is an index to a palette. During tgi_init
you will get a default palette. The number of colors depend on the platform.
All platforms recognize at least COLOR_BLACK and COLOR_WHITE. But some
platforms have many more predefined colors. If you paint using COLOR_GREEN
and then you change the green of the palette to blue using tgi_setpalette then
after this painting in COLOR_GREEN will actually be blue.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/<verb>
color = tgi_getcolor();
</verb>
</descrip>
</quote>
<sect1>tgi_getcolorcount<label id="tgi_getcolorcount"><p>
<quote>
<descrip>
<tag/Function/Get the number of available colors.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_getcolorcount (void);/
<tag/Description/Tgi platforms use indexed color palettes. This function
returns the number of entries we can use in the palette.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/<verb>
if (tgi_getcolorcount() == 2) {
printf("Only monochrome graphics is supported\n");
}
</verb>
</descrip>
</quote>
<sect1>tgi_getdefpalette<label id="tgi_getdefpalette"><p>
<quote>
<descrip>
<tag/Function/Get the palette installed by default.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/const unsigned char* __fastcall__ tgi_getdefpalette (void);/
<tag/Description/The tgi driver has a default palette that is active at startup.
The named colors COLOR_BLACK, COLOR_WHITE, COLOR_RED... need this palette to
work correctly.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_geterror<label id="tgi_geterror"><p>
<quote>
<descrip>
<tag/Function/Return the error code for the last operation.
This will also clear the error.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_geterror (void);/
<tag/Description/Return the error code for the last operation.
This will also clear the error.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_geterrormsg<label id="tgi_geterrormsg"><p>
<quote>
<descrip>
<tag/Function/Get an error message describing the error.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/const char* __fastcall__ tgi_geterrormsg (unsigned char code);/
<tag/Description/Get an error message describing the error.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getmaxcolor<label id="tgi_getmaxcolor"><p>
<quote>
<descrip>
<tag/Function/Get the highest index of the palette.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_getmaxcolor (void);/
<tag/Description/Get the highest index of the palette.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getmaxx<label id="tgi_getmaxx"><p>
<quote>
<descrip>
<tag/Function/Get the maximum x coordinate that can be used on this screen.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_getmaxx (void);/
<tag/Description/Get the maximum x coordinate that can be used on this screen.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getmaxy<label id="tgi_getmaxy"><p>
<quote>
<descrip>
<tag/Function/Get the maximum y coordinate that can be used on this screen.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_getmaxy (void);/
<tag/Description/Get the maximum y coordinate that can be used on this screen.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getpagecount<label id="tgi_getpagecount"><p>
<quote>
<descrip>
<tag/Function/Return the number of screen pages available.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_getpagecount (void);/
<tag/Description/Return the number of screen pages available.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/
<ref id="tgi_setdrawpage" name="tgi_setdrawpage">,
<ref id="tgi_setviewpage" name="tgi_setviewpage">
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getpalette<label id="tgi_getpalette"><p>
<quote>
<descrip>
<tag/Function/Get the palette installed.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/const unsigned char* __fastcall__ tgi_getpalette (void);/
<tag/Description/Get the palette installed.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getpixel<label id="tgi_getpixel"><p>
<quote>
<descrip>
<tag/Function/Get the color of a pixel from the viewpage.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_getpixel (int x, int y);/
<tag/Description/Get the color of a pixel from the viewpage.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getxres<label id="tgi_getxres"><p>
<quote>
<descrip>
<tag/Function/Get number of horisontal pixels on the screen.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_getxres (void);/
<tag/Description/Get number of horisontal pixels on the screen.
This is same as tgi_maxx()+1.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_getyres<label id="tgi_getyres"><p>
<quote>
<descrip>
<tag/Function/Get number of vertical pixels on the screen.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_getyres (void);/
<tag/Description/Get number of vertical pixels on the screen.
This is same as tgi_maxy()+1.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_gotoxy<label id="tgi_gotoxy"><p>
<quote>
<descrip>
<tag/Function/Set graphics cursor at x, y.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_gotoxy (int x, int y);/
<tag/Description/Set graphics cursor at x, y.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_init<label id="tgi_init"><p>
<quote>
<descrip>
<tag/Function/Initialize the already loaded graphics driver.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_init (void);/
<tag/Description/The tgi_init function will set the default palette to the
hardware and clear the screen.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/<verb>
extern char lynxtgi[]; //Include the driver statically instead of loading it.
tgi_install(&amp;lynxtgi);
tgi_init(); //Set up the default palette and clear the screen.
</verb>
</descrip>
</quote>
<sect1>tgi_install<label id="tgi_install"><p>
<quote>
<descrip>
<tag/Function/Install an already loaded driver and return an error code.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned char __fastcall__ tgi_install (void* driver);/
<tag/Description/The function installs a driver that was already loaded into
memory (or linked statically to the program). It returns an error code
(<tt/TGI_ERR_OK/ in case of success).
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only be
used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/
<ref id="tgi_load_driver" name="tgi_load_driver">,
<ref id="tgi_uninstall" name="tgi_uninstall">,
<ref id="tgi_unload" name="tgi_unload">
<tag/Example/<verb>
extern char lynxtgi[]; //Include the driver statically instead of loading it.
tgi_install(&amp;lynxtgi);
tgi_init(); //Set up the default palette and clear the screen.
</verb>
</descrip>
</quote>
<sect1>tgi_ioctl<label id="tgi_ioctl"><p>
<quote>
<descrip>
<tag/Function/Platform dependent code extensions.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_ioctl (unsigned char code, unsigned val);/
<tag/Description/Some platforms have extra display hardware that is not
supported by standard tgi functions. You can extend the driver to support
this extra hardware using tgi_ioctl functions.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
<item>These functions are not easily portable to other cc65 platforms.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/<verb>
#define tgi_sprite(spr) tgi_ioctl(0, (unsigned)(spr))
#define tgi_flip() tgi_ioctl(1, 0)
#define tgi_setbgcolor(bgcol) tgi_ioctl(2, (unsigned)(bgcol))
#define tgi_setframerate(rate) tgi_ioctl(3, (unsigned)(rate))
#define tgi_busy() tgi_ioctl(4, 0)
#define tgi_updatedisplay() tgi_ioctl(4, 1)
if (!tgi_busy()) {
tgi_sprite(&amp;background);
tgi_setcolor(COLOR_BLUE);
tgi_outttextxy(20,40,"Hello World");
tgi_updatedisplay();
}
</verb>
</descrip>
</quote>
<sect1>tgi_line<label id="tgi_line"><p>
<quote>
<descrip>
<tag/Function/Draw a line in the current drawing color.
The graphics cursor will be set to x2/y2 by this call.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_line (int x1, int y1, int x2, int y2);/
<tag/Description/Draw a line in the current drawing color.
The graphics cursor will be set to x2/y2 by this call.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_lineto<label id="tgi_lineto"><p>
<quote>
<descrip>
<tag/Function/Draw a line in the current drawing color from the graphics
cursor to the new end point. The graphics cursor will be updated to x2/y2.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_lineto (int x2, int y2);/
<tag/Description/Draw a line in the current drawing color from the graphics
cursor to the new end point. The graphics cursor will be updated to x2/y2.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_load<label id="tgi_load"><p>
<quote>
<descrip>
<tag/Function/Load and install the matching driver for the given mode.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_load (unsigned char mode);/
<tag/Description/Load and install the matching driver for the given mode.
Will just load the driver and check if loading was successul.
Will not switch to graphics mode.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_load_driver<label id="tgi_load_driver"><p>
<quote>
<descrip>
<tag/Function/Load and install the given driver. This function is identical
to tgi_load with the only difference that the name of the driver is specified
explicitly.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_load_driver (const char *name);/
<tag/Description/Load and install the driver by name.
Will just load the driver and check if loading was successul.
Will not switch to graphics mode.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_outtext<label id="tgi_outtext"><p>
<quote>
<descrip>
<tag/Function/Output text at the current graphics cursor position.
The graphics cursor is moved to the end of the text.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_outtext (const char* s);/
<tag/Description/Output text at the current graphics cursor position.
The graphics cursor is moved to the end of the text.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_outtextxy<label id="tgi_outtextxy"><p>
<quote>
<descrip>
<tag/Function/Output text at the given cursor position.
The graphics cursor is moved to the end of the text.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_outtextxy (int x, int y, const char* s);/
<tag/Description/Output text at the given cursor position.
The graphics cursor is moved to the end of the text.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_setcolor<label id="tgi_setcolor"><p>
<quote>
<descrip>
<tag/Function/Set color to be used in future draw operations.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_setcolor (unsigned char color);/
<tag/Description/Set color to be used in future draw operations.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/<verb>
tgi_setcolor(COLOR_BLACK);
tgi_bar(0,0,30,30);
tgi_setcolor(COLOR_WHITE);
tgi_bar(10,10,20,20);
</verb>
</descrip>
</quote>
<sect1>tgi_setdrawpage<label id="tgi_setdrawpage"><p>
<quote>
<descrip>
<tag/Function/Set the page for drawing.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_setdrawpage (unsigned char page);/
<tag/Description/If the drawpage and the viewpage are the same then all drawing
is seen immediately as it is drawn. For double buffered games you can set the
drawpage to a different page than the viewpage. This lets you draw the next
screen in the background and when the screen is ready you display it.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/<verb>
tgi_setdrawpage(1);
tgi_outtextxy(10, 10, "Hello World");
tgi_setviewpage(1); // Show page 1
tgi_setdrawpage(0);
tgi_outtextxy(10, 10, "Creating next frame");
...
tgi_setviewpage(0); // Show page 0
</verb>
</descrip>
</quote>
<sect1>tgi_setpalette<label id="tgi_setpalette"><p>
<quote>
<descrip>
<tag/Function/Set the palette (not available with all drivers/hardware).
Palette is a pointer to as many entries as there are colors.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_setpalette (const unsigned char* palette);/
<tag/Description/Set the palette (not available with all drivers/hardware).
Palette is a pointer to as many entries as there are colors.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_setpixel<label id="tgi_setpixel"><p>
<quote>
<descrip>
<tag/Function/Plot a pixel on the drawpage with the current color.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_setpixel (int x, int y);/
<tag/Description/Plot a pixel on the drawpage with the current color.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_setviewpage<label id="tgi_setviewpage"><p>
<quote>
<descrip>
<tag/Function/Set page to be visible on screen.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_setviewpage (unsigned char page);/
<tag/Description/If the drawpage and the viewpage are the same then all drawing
is seen immediately as it is drawn. For double buffered games you can set the
drawpage to a different page than the viewpage. This lets you draw the next
screen in the background and when the screen is ready you display it.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/<verb>
tgi_setdrawpage(1);
tgi_outtextxy(10, 10, "Hello World");
tgi_setviewpage(1); // Show page 1
tgi_setdrawpage(0);
tgi_outtextxy(10, 10, "Creating next frame");
...
tgi_setviewpage(0); // Show page 0
</verb>
</descrip>
</quote>
<sect1>tgi_textheight<label id="tgi_textheight"><p>
<quote>
<descrip>
<tag/Function/Calculate the height of the text in pixels according to
the current text style.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_textheight (const char* s);/
<tag/Description/Calculate the height of the text in pixels according to
the current text style.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_textstyle<label id="tgi_textstyle"><p>
<quote>
<descrip>
<tag/Function/Set the style for text output.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_textstyle (unsigned char magx, unsigned char magy, unsigned char dir);/
<tag/Description/Set the style for text output.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_textwidth<label id="tgi_textwidth"><p>
<quote>
<descrip>
<tag/Function/Calculate the width of the text in pixels according to the current text style.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/unsigned __fastcall__ tgi_textwidth (const char* s);/
<tag/Function/Calculate the width of the text in pixels according to the current text style.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Description/Calculate the width of the text in pixels according to the current text style.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_uninstall<label id="tgi_uninstall"><p>
<quote>
<descrip>
<tag/Function/Uninstall the currently loaded driver but do not unload it.
Will call tgi_done if necessary.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_uninstall (void);/
<tag/Description/Uninstall the currently loaded driver but do not unload it.
Will call tgi_done if necessary.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_unload<label id="tgi_unload"><p>
<quote>
<descrip>
<tag/Function/Uninstall, then unload the currently loaded driver.
Will call tgi_done if necessary.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_unload (void);/
<tag/Description/Uninstall, then unload the currently loaded driver.
Will call tgi_done if necessary.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>time<label id="time"><p>
<quote>

View File

@ -46,8 +46,7 @@ that shows how to create a complete bootable Lynx cart.
<sect>Memory layout<p>
cc65 generated programs with the default setup run with the I/O area and the
kernal enabled, which gives a usable memory range of &dollar;400 - &dollar;BE3F.
All boot ROM entry points may be called directly without additional code.
kernal enabled, which gives a usable memory range of &dollar;400 - &dollar;C038.
Special locations:
@ -63,7 +62,7 @@ Special locations:
'?' for all keys down at the same time.
<tag/Stack/
The C runtime stack is located at &dollar;BE3F and growing downwards.
The C runtime stack is located at &dollar;C037 and growing downwards.
<tag/Heap/
The C heap is located at the end of the program and grows towards the C
@ -81,7 +80,6 @@ Programs containing Lynx specific code may use the <tt/lynx.h/ header file.
<sect1>Lynx specific functions<p>
<itemize>
<item>lynx_change_framerate
<item>lynx_eeprom_erase
<item>lynx_eeprom_read
<item>lynx_eeprom_write
@ -120,8 +118,9 @@ available, but must be statically linked, because no file I/O is available.
See the documentation for the <htmlurl url="co65.html" name="co65 utility">
for information on how to do that.
The TGI driver is implemented as a dual buffering device. To use it as a
single-buffer device set draw page and view page to the same value 0 or 1;
The TGI driver is implemented as an interrupt driven dual buffering device.
To use it as a single-buffer device set draw page and view page to the same
value 0 or 1;
The TGI driver has a few Lynx-specific extensions.
@ -203,8 +202,13 @@ No mouse drivers are currently available for the Lynx.
</itemize>
The parity bit supports MARK and SPACE. It also supports EVEN and ODD parity
but the parity bit is included in the calculation. Most of us don't want it
this way. But there is nothing we can do about it. Just don't use EVEN or ODD
when communicating to other equipment than the Lynx.
this way. But there is nothing we can do about it.
The Lynx hardware will always check parity on incoming traffic. Currently
the driver cannot receive data from standard PC's due to this parity bug.
For working with Lynx to Lynx communication use EVEN parity.
To send data to standard PC's use MARK or SPACE as parity setting.
There is always only one stop bit. And the data length is always 8 bits.
@ -215,6 +219,7 @@ No mouse drivers are currently available for the Lynx.
area $200-$2ff for the transmit ring buffer and $300-$3ff for the receive
ring buffer. This area can not be used at startup for anything as the Lynx
ROM needs this area for decryption purposes.
</descrip><p>