]> git.sur5r.net Git - cc65/blobdiff - doc/funcref.sgml
reset_brk is not __fastcall__. By Stefan Haubenthal.
[cc65] / doc / funcref.sgml
index fa764129fb35a7d04c8ce06d667f7d7941c76cf1..efdc64963d1208a32146db152a4f2620950e4f56 100644 (file)
@@ -329,20 +329,21 @@ It does not declare any functions.
 
 <sect1><tt/serial.h/<label id="serial.h"><p>
 
-<!--
+The <tt/serial.h/ header file contains definitions for initializing serial
+communication.
+
 <itemize>
-<item><ref id="ser_load_driver" name="ser_load_driver">
-<item><ref id="ser_unload" name="ser_unload">
-<item><ref id="ser_install" name="ser_install">
-<item><ref id="ser_uninstall" name="ser_uninstall">
-<item><ref id="ser_open" name="ser_open">
 <item><ref id="ser_close" name="ser_close">
 <item><ref id="ser_get" name="ser_get">
+<item><ref id="ser_install" name="ser_install">
+<item><ref id="ser_ioctl" name="ser_ioctl">
+<item><ref id="ser_load_driver" name="ser_load_driver">
+<item><ref id="ser_open" name="ser_open">
 <item><ref id="ser_put" name="ser_put">
 <item><ref id="ser_status" name="ser_status">
-<item><ref id="ser_ioctl" name="ser_ioctl">
+<item><ref id="ser_uninstall" name="ser_uninstall">
+<item><ref id="ser_unload" name="ser_unload">
 </itemize>
--->
 
 (incomplete)
 
@@ -509,11 +510,12 @@ It does not declare any functions.
 <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">
@@ -530,18 +532,18 @@ It does not declare any functions.
 <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>
@@ -567,6 +569,7 @@ It does not declare any functions.
 
 <itemize>
 <!-- <item><ref id="chdir" name="chdir"> -->
+<item><ref id="exec" name="exec">
 <!-- <item><ref id="getcwd" name="getcwd"> -->
 <item><ref id="getopt" name="getopt">
 <!-- <item><ref id="lseek" name="lseek"> -->
@@ -2039,6 +2042,41 @@ evaluated or is ignored.
 </quote>
 
 
+<sect1>exec<label id="exec"><p>
+
+<quote>
+<descrip>
+<tag/Function/Execute a program file.
+<tag/Header/<tt/<ref id="unistd.h" name="unistd.h">/
+<tag/Declaration/<tt/int __fastcall__ exec (const char* progname, const char* cmdline);/
+<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,
+a <tt/NULL/ pointer may be passed as second parameter.
+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
+be used in presence of a prototype.
+<item>On most platforms, the function needs to copy a small stub loader to
+some memory area outside the program space. This may collide with other
+programs. See the platform specific docs on this.
+<item>Because it is necessary to terminate the running program before the
+memory can be reused to load the new one, there is a high chance that the
+function may not be able to return on errors.
+<item>The command line is passed to the new program in the same way as cc65
+programs expect the command line. If the new program is not a cc65 generated
+program, it may not be able to read it.
+</itemize>
+<tag/Availability/cc65
+<tag/See also/
+<ref id="exit" name="exit">
+<tag/Example/None.
+</descrip>
+</quote>
+
+
 <sect1>fast<label id="fast"><p>
 
 <quote>
@@ -2242,7 +2280,7 @@ be used in presence of a prototype.
 <tag/Header/<tt/<ref id="unistd.h" name="unistd.h">/
 <tag/Declaration/<tt/int __fastcall__ getopt (int argc, char* const* argv,
 const char* optstring);/
-<tag/Description/The function parses command line arguments, <tt/argc/ and 
+<tag/Description/The function parses command line arguments, <tt/argc/ and
 <tt/argv/ are the argument count and array passed to <tt/main/. <tt/optstring/
 is a string that contains command line option characters. If a character in
 <tt/optstring/ is followed by a colon, the option requires an argument. An
@@ -4064,7 +4102,7 @@ if (rename (OLDNAME, NEWNAME) == 0) {
 <descrip>
 <tag/Function/Resets the break vector to its original value.
 <tag/Header/<tt/<ref id="6502.h" name="6502.h">/
-<tag/Declaration/<tt/void __fastcall__ reset_brk (void);/
+<tag/Declaration/<tt/void reset_brk (void);/
 <tag/Description/<tt/reset_brk/ resets the break vector to the value it had
 before a call to <tt/set_brk/.
 <tag/Limits/
@@ -4129,6 +4167,256 @@ be used in presence of a prototype.
 </quote>
 
 
+<sect1>ser_close<label id="ser_close"><p>
+
+<quote>
+<descrip>
+<tag/Function/Close the port and disable interrupts
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_close (const struct ser_params* params);/
+<tag/Description/Open the port by setting the port parameters and enable interrupts.
+<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 serial functions.
+<tag/Example/
+<verb>
+#include <serial.h>
+
+extern char comlynx[];
+
+static void initialize(){
+  struct ser_params params = {
+    SER_BAUD_9600,
+    SER_BITS_8,
+    SER_STOP_1,
+    SER_PAR_MARK,
+    SER_HS_NONE
+  };
+  ser_install(&amp;comlynx); // This will activate the ComLynx
+  CLI();
+  ser_open(&amp;params);
+}
+</verb>
+</descrip>
+</quote>
+
+
+<sect1>ser_get<label id="ser_get"><p>
+
+<quote>
+<descrip>
+<tag/Function/Read a character from serial port.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_get (char* b);/
+<tag/Description/Get a character from the serial port. If no characters are
+available, the function will return SER_ERR_NO_DATA, so this is not a fatal
+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 serial functions.
+<tag/Example/
+Wait for a character to be available from a serial port.
+<verb>
+char ch;
+while (ser_get(&amp;ch) == SER_ERR_NO_DATA)
+  ;
+</verb>
+</descrip>
+</quote>
+
+
+<sect1>ser_install<label id="ser_install"><p>
+
+<quote>
+<descrip>
+<tag/Function/Install an already loaded driver and return an error code.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_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/SER_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="ser_load_driver" name="ser_load_driver">,
+<ref id="ser_uninstall" name="ser_uninstall">,
+<ref id="ser_unload" name="ser_unload">
+<tag/Example/<verb>
+extern char lynxser[]; //Include the driver statically instead of loading it.
+
+ser_install(&amp;lynxser);
+</verb>
+</descrip>
+</quote>
+
+
+<sect1>ser_ioctl<label id="ser_ioctl"><p>
+
+<quote>
+<descrip>
+<tag/Function/Platform dependent code extensions.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned __fastcall__ ser_ioctl (unsigned char code, void* data);/
+<tag/Description/Some platforms have extra serial functions that are not
+supported by standard serial driver functions. You can extend the driver to support
+this extra functionality bt using ser_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 serial functions.
+<tag/Example/None
+</descrip>
+</quote>
+
+<sect1>ser_load_driver<label id="ser_load_driver"><p>
+
+<quote>
+<descrip>
+<tag/Function/Load and install a serial driver.
+<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 successful.
+<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 serial functions.
+<tag/Example/None.
+</descrip>
+</quote>
+
+
+<sect1>ser_open<label id="ser_open"><p>
+
+<quote>
+<descrip>
+<tag/Function/Open the port by setting the port parameters and enable interrupts
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_open (const struct ser_params* params);/
+<tag/Description/Open the port by setting the port parameters and enable interrupts.
+<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 serial functions.
+<tag/Example/
+<verb>
+#include <serial.h>
+
+extern char comlynx[];
+
+static void initialize(){
+  struct ser_params params = {
+    SER_BAUD_9600,
+    SER_BITS_8,
+    SER_STOP_1,
+    SER_PAR_MARK,
+    SER_HS_NONE
+  };
+  ser_install(&amp;comlynx); // This will activate the ComLynx
+  CLI();
+  ser_open(&amp;params);
+}
+</verb>
+</descrip>
+</quote>
+
+
+<sect1>ser_put<label id="ser_put"><p>
+
+<quote>
+<descrip>
+<tag/Function/Write a character to a serial port.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_put (char b);/
+<tag/Description/Send a character via the serial port. There is a transmit
+buffer, but transmitting is not done via interrupt. The function returns
+SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
+<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 serial functions.
+<tag/Example/
+<verb>
+ser_put('A');
+</verb>
+</descrip>
+</quote>
+
+
+<sect1>ser_status<label id="ser_status"><p>
+
+<quote>
+<descrip>
+<tag/Function/Return the serial port status.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/unsigned char __fastcall__ ser_put (unsigned char* status);/
+<tag/Description/Return the serial port status.
+<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 serial functions.
+<tag/Example/None
+</descrip>
+</quote>
+
+
+<sect1>ser_uninstall<label id="ser_uninstall"><p>
+
+<quote>
+<descrip>
+<tag/Function/Uninstall the currently loaded driver but do not unload it.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/void __fastcall__ ser_uninstall (void);/
+<tag/Description/Uninstall the currently loaded driver but do not unload 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 serial functions.
+<tag/Example/None.
+</descrip>
+</quote>
+
+<sect1>ser_unload<label id="ser_unload"><p>
+
+<quote>
+<descrip>
+<tag/Function/Uninstall, then unload the currently loaded driver.
+<tag/Header/<tt/<ref id="serial.h" name="serial.h">/
+<tag/Declaration/<tt/void __fastcall__ ser_unload (void);/
+<tag/Description/Uninstall, then unload the currently loaded 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 serial functions.
+<tag/Example/None.
+</descrip>
+</quote>
+
+
 <sect1>set_brk<label id="set_brk"><p>
 
 <quote>
@@ -4995,12 +5283,8 @@ tgi_circle(50, 40, 40);
 <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.
@@ -5015,13 +5299,9 @@ be used in presence of a prototype.
 <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.
@@ -5057,23 +5337,49 @@ tgi_ellipse (50, 40, 40, 20);
 </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>
@@ -5082,19 +5388,16 @@ color = tgi_getcolor();
 </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>
@@ -5105,26 +5408,24 @@ if (tgi_getcolorcount() == 2) {
 </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>
@@ -5132,19 +5433,16 @@ be used in presence of a prototype.
 <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>
@@ -5163,73 +5461,60 @@ be used in presence of a prototype.
 </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">,
@@ -5238,24 +5523,22 @@ be used in presence of a prototype.
 </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>
@@ -5274,44 +5557,39 @@ be used in presence of a prototype.
 </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>
@@ -5330,18 +5608,17 @@ be used in presence of a prototype.
 </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"
@@ -5357,6 +5634,7 @@ tgi_init(); //Set up the default palette and clear the screen.
 </descrip>
 </quote>
 
+
 <sect1>tgi_install<label id="tgi_install"><p>
 
 <quote>
@@ -5463,38 +5741,15 @@ be used in presence of a prototype.
 </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
@@ -5583,6 +5838,36 @@ tgi_pieslice (50, 50, 40, 20, 0, 180);
 </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>
@@ -5702,14 +5987,14 @@ tgi_setviewpage(0); // Show page 0
 </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>
@@ -5722,13 +6007,13 @@ be used in presence of a prototype.
 </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
@@ -5740,13 +6025,13 @@ be used in presence of a prototype.
 </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.
@@ -5768,13 +6053,9 @@ be used in presence of a prototype.
 <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.
@@ -5788,13 +6069,9 @@ be used in presence of a prototype.
 <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.