<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_done" name="tgi_done">
+<item><ref id="tgi_ellipse" name="tgi_ellipse">
+<item><ref id="tgi_getaspectratio" name="tgi_getaspectratio">
<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_ellipse" name="tgi_ellipse">
<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_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_setaspectratio" name="tgi_setaspectratio">
<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_gettextheight" name="tgi_gettextheight">
+<item><ref id="tgi_settextstyle" name="tgi_settextstyle">
+<item><ref id="tgi_gettextwidth" name="tgi_gettextwidth">
<item><ref id="tgi_uninstall" name="tgi_uninstall">
<item><ref id="tgi_unload" name="tgi_unload">
</itemize>
<tag/Description/<tt/exec/ replaces the currently running program by a new one.
Calling <tt/exec()/ is identical to calling <tt/<ref id="exit" name="exit()">/,
then loading and starting the program named in the first argument, passing
-the command line specified as second argument. Instead of an empty string,
+the command line specified as second argument. Instead of an empty string,
a <tt/NULL/ pointer may be passed as second parameter.
-On success, the function does not return. On failure, -1 is returned and
+On success, the function does not return. On failure, -1 is returned and
<tt/errno/ contains an error code.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
<tag/Example/
<verb>
#include <serial.h>
-
+
extern char comlynx[];
-
+
static void initialize(){
struct ser_params params = {
SER_BAUD_9600,
<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
<tag/Declaration/<tt/void __fastcall__ ser_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 just load the driver and check if loading was successful.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
<tag/Example/
<verb>
#include <serial.h>
-
+
extern char comlynx[];
-
+
static void initialize(){
struct ser_params params = {
SER_BAUD_9600,
<descrip>
<tag/Function/Clear the drawpage
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
-<tag/Declaration/<tt/void __fastcall__ tgi_clear (void);/
+<tag/Declaration/<tt/void tgi_clear (void);/
<tag/Description/Clear the drawpage
-<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.
<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/Declaration/<tt/void 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.
</quote>
+<sect1>tgi_getaspectratio<label id="tgi_getaspectratio"><p>
+
+<quote> <descrip> <tag/Function/Return the pixel aspect ratio.
+<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
+<tag/Declaration/<tt/unsigned tgi_getaspectratio (void);/
+<tag/Description/The function returns the pixel aspect ratio for the current
+driver and display as an 8.8 fixed point value. It may be used to correct
+geometric shapes so they look correct on the display. As an example, a circle
+with a radius of 100 pixels may look elliptic on some driver/display
+combinations if the aspect ratio is not 1.00.
+<tag/Limits/<itemize>
+<item>The aspect ratio is encoded in the TGI driver which assumes a "standard"
+monitor for the given platform. The aspect ratio may be wrong if another
+monitor is used.
+<item>No TGI function will use the aspect ratio. It is up to the programmer to
+make use of it.
+<item>The <ref id="tgi_setaspectratio" name="tgi_setaspectratio"> function can
+be used to change the aspect ratio for a loaded driver. The value is not reset
+by <ref id="tgi_init" name="tgi_init">, so if a driver is linked statically to
+an application, switching into and out of graphics mode will not restore the
+original aspect ratio.
+</itemize>
+<tag/Availability/cc65
+<tag/See also/
+<ref id="tgi_setaspectratio" name="tgi_setaspectratio">
+<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/Declaration/<tt/unsigned char 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 TGI_COLOR_BLACK and TGI_COLOR_WHITE. But some
platforms have many more predefined colors. If you paint using TGI_COLOR_GREEN
and then you change the green of the palette to blue using tgi_setpalette then
after this painting in TGI_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>
</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/Declaration/<tt/unsigned char 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>
</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/Declaration/<tt/const unsigned char* tgi_getdefpalette (void);/
<tag/Description/The tgi driver has a default palette that is active at startup.
The named colors TGI_COLOR_BLACK, TGI_COLOR_WHITE, TGI_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>
<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/Declaration/<tt/unsigned char 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>
</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/Declaration/<tt/unsigned char 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/Declaration/<tt/unsigned 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/Declaration/<tt/unsigned 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/Declaration/<tt/unsigned 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">,
</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/Declaration/<tt/const unsigned char* 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>
</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/Declaration/<tt/unsigned 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/Declaration/<tt/unsigned 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>
</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/Declaration/<tt/void tgi_init (void);/
<tag/Description/The tgi_init function will set the default palette to the
hardware.
<tag/Limits/<itemize>
-<item>The function is only available as fastcall function, so it may only
-be used in presence of a prototype.
<item><tt/tgi_init/ will not clear the screen. This allows switching between
text and graphics mode on platforms that have separate memory areas for the
screens. If you want the screen cleared, call <tt/<ref id="tgi_clear"
</descrip>
</quote>
+
<sect1>tgi_install<label id="tgi_install"><p>
<quote>
</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/Function/Load and install the given driver.
<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 just load the driver and check if loading was successful.
Will not switch to graphics mode.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
</quote>
+<sect1>tgi_setaspectratio<label id="tgi_setaspectratio"><p>
+
+<quote> <descrip> <tag/Function/Set the pixel aspect ratio.
+<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
+<tag/Declaration/<tt/void __fastcall__ tgi_setaspectratio (unsigned ratio);/
+<tag/Description/The function sets the pixel aspect ratio for the current
+driver and display. The argument is an 8.8 fixed point value. The aspect ratio
+may be used to correct geometric shapes so they look correct on a given
+display. As an example, a circle with a radius of 100 pixels may look elliptic
+on some driver/display combinations if the aspect ratio is not 1.00.
+<tag/Limits/<itemize>
+<item>The aspect ratio is encoded in the TGI driver which assumes a "standard"
+monitor for the given platform. The aspect ratio may be wrong if another
+monitor is used.
+<item>No TGI function will use the aspect ratio. It is up to the programmer to
+make use of it.
+<item>The <tt/tgi_setaspectratio/ function can be used to change the aspect
+ratio for a loaded driver. The value is not reset by <ref id="tgi_init"
+name="tgi_init">, so if a driver is linked statically to an application,
+switching into and out of graphics mode will not restore the original aspect
+ratio.
+</itemize>
+<tag/Availability/cc65
+<tag/See also/
+<ref id="tgi_getaspectratio" name="tgi_getaspectratio">
+<tag/Example/None.
+</descrip>
+</quote>
+
+
<sect1>tgi_setcolor<label id="tgi_setcolor"><p>
<quote>
</descrip>
</quote>
-<sect1>tgi_textheight<label id="tgi_textheight"><p>
+<sect1>tgi_gettextheight<label id="tgi_gettextheight"><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/Declaration/<tt/unsigned __fastcall__ tgi_gettextheight (const char* s);/
<tag/Description/Calculate the height of the text in pixels according to
the current text style.
<tag/Limits/<itemize>
</descrip>
</quote>
-<sect1>tgi_textstyle<label id="tgi_textstyle"><p>
+<sect1>tgi_settextstyle<label id="tgi_settextstyle"><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/Declaration/<tt/void __fastcall__ tgi_settextstyle (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
</descrip>
</quote>
-<sect1>tgi_textwidth<label id="tgi_textwidth"><p>
+<sect1>tgi_gettextwidth<label id="tgi_gettextwidth"><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/Declaration/<tt/unsigned __fastcall__ tgi_gettextwidth (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/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/Declaration/<tt/void 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.
<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/Declaration/<tt/void 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.