• Fichier: gamate.html
  • Path: /invader_nes/InvaderNES/build/cc65/html/gamate.html
  • File size: 6.02 KB
  • MIME-type: text/html
  • Charset: utf-8
 
Retour
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <LINK REL="stylesheet" TYPE="text/css" HREF="doc.css">
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.71">
 <TITLE>Gamate System specific information for cc65</TITLE>
</HEAD>
<BODY>
<H1>Gamate System specific information for cc65</H1>

<H2>
<A HREF="mailto:groepaz@gmx.net">Groepaz/Hitmen</A></H2>
<HR>
<EM>An overview over the Gamate runtime system as it is implemented for the
cc65 C compiler.</EM>
<HR>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="gamate.html#s1">Overview</A></H2>

<P>
<H2><A NAME="toc2">2.</A> <A HREF="gamate.html#s2">Binary format</A></H2>

<P>
<H2><A NAME="toc3">3.</A> <A HREF="gamate.html#s3">Platform specific header files</A></H2>

<UL>
<LI><A NAME="toc3.1">3.1</A> <A HREF="gamate.html#ss3.1">Gamate specific functions</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="gamate.html#s4">Loadable drivers</A></H2>

<UL>
<LI><A NAME="toc4.1">4.1</A> <A HREF="gamate.html#ss4.1">Graphics drivers</A>
<LI><A NAME="toc4.2">4.2</A> <A HREF="gamate.html#ss4.2">Extended memory drivers</A>
<LI><A NAME="toc4.3">4.3</A> <A HREF="gamate.html#ss4.3">Joystick drivers</A>
<LI><A NAME="toc4.4">4.4</A> <A HREF="gamate.html#ss4.4">Mouse drivers</A>
<LI><A NAME="toc4.5">4.5</A> <A HREF="gamate.html#ss4.5">RS232 device drivers</A>
</UL>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="gamate.html#s5">Limitations</A></H2>

<UL>
<LI><A NAME="toc5.1">5.1</A> <A HREF="gamate.html#ss5.1">Disk I/O</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="gamate.html#s6">Other hints</A></H2>

<P>
<H2><A NAME="toc7">7.</A> <A HREF="gamate.html#s7">License</A></H2>


<HR>
<H2><A NAME="s1">1.</A> <A HREF="#toc1">Overview</A></H2>


<P>This file contains an overview of the Gamate runtime system as it comes
with the cc65 C compiler. It describes the memory layout, Gamate specific header
files, available drivers, and any pitfalls specific to that platform.</P>
<P>Please note that Gamate specific functions are just mentioned here, they are
described in detail in the separate 
<A HREF="funcref.html">function reference</A>. Even functions marked as "platform dependent" may be available on
more than one platform. Please see the function reference for more
information.</P>


<H2><A NAME="s2">2.</A> <A HREF="#toc2">Binary format</A></H2>


<P>The standard binary output format generated by the linker for the Gamate target
is a cartridge image with header. It is of course possible to change this
behaviour by using a modified startup file and linker config.</P>
<P>Note: the first two bytes of the header contain a checksum that must be inserted
by an external program. Such an utility is provided in util/gamate/gamate-fixcart.c</P>

<H2><A NAME="s3">3.</A> <A HREF="#toc3">Platform specific header files</A></H2>


<P>Programs containing Gamate specific code may use the <CODE>gamate.h</CODE> header file.</P>


<H2><A NAME="ss3.1">3.1</A> <A HREF="#toc3.1">Gamate specific functions</A>
</H2>


<P>
<UL>
<LI>waitvsync</LI>
</UL>
</P>



<H2><A NAME="s4">4.</A> <A HREF="#toc4">Loadable drivers</A></H2>


<P>All drivers must be statically linked because no file I/O is available.
The names in the parentheses denote the symbols to be used for static linking of the drivers.</P>


<H2><A NAME="ss4.1">4.1</A> <A HREF="#toc4.1">Graphics drivers</A>
</H2>


<P>No TGI graphics drivers are currently available for the Gamate.</P>


<H2><A NAME="ss4.2">4.2</A> <A HREF="#toc4.2">Extended memory drivers</A>
</H2>


<P>No extended memory drivers are currently available for the Gamate.</P>


<H2><A NAME="ss4.3">4.3</A> <A HREF="#toc4.3">Joystick drivers</A>
</H2>


<P>
<DL>

<DT><B><CODE>gamate-stdjoy.joy (gamate_stdjoy)</CODE></B><DD>
<P>A joystick driver for the standard two buttons joypad is available.</P>

</DL>
</P>



<H2><A NAME="ss4.4">4.4</A> <A HREF="#toc4.4">Mouse drivers</A>
</H2>


<P>No mouse drivers are currently available for the Gamate.</P>


<H2><A NAME="ss4.5">4.5</A> <A HREF="#toc4.5">RS232 device drivers</A>
</H2>


<P>No serial drivers are currently available for the Gamate.</P>



<H2><A NAME="s5">5.</A> <A HREF="#toc5">Limitations</A></H2>


<P>
<UL>
<LI>When using the C-compiler, keep in mind that only 0x200 bytes RAM in total
can be used for variables and the runtime stack.</LI>
</UL>
</P>

<H2><A NAME="ss5.1">5.1</A> <A HREF="#toc5.1">Disk I/O</A>
</H2>


<P>The existing library for the Gamate doesn't implement C file
I/O. There are no hacks for the <CODE>read()</CODE> and <CODE>write()</CODE> routines.</P>
<P>To be more concrete, this limitation means that you cannot use any of the
following functions (and a few others):</P>
<P>
<UL>
<LI>printf</LI>
<LI>fclose</LI>
<LI>fopen</LI>
<LI>fread</LI>
<LI>fprintf</LI>
<LI>fputc</LI>
<LI>fscanf</LI>
<LI>fwrite</LI>
<LI>...</LI>
</UL>
</P>

<H2><A NAME="s6">6.</A> <A HREF="#toc6">Other hints</A></H2>


<P>
<UL>
<LI>The Gamate is emulated by MESS (
<A HREF="http://www.mess.org/">http://www.mess.org/</A>),
run like this: <CODE>mess gamate -debug -window -skip_gameinfo -cart test.bin</CODE></LI>
</UL>
</P>
<P>some resources on the Gamate:</P>
<P>
<UL>
<LI>
<A HREF="http://en.wikipedia.org/wiki/Gamate">http://en.wikipedia.org/wiki/Gamate</A></LI>
</UL>
</P>

<H2><A NAME="s7">7.</A> <A HREF="#toc7">License</A></H2>


<P>This software is provided 'as-is', without any expressed or implied
warranty.  In no event will the authors be held liable for any damages
arising from the use of this software.</P>
<P>Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:</P>
<P>
<OL>
<LI>  The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.</LI>
<LI>  Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.</LI>
<LI>  This notice may not be removed or altered from any source
distribution.</LI>
</OL>
</P>

</BODY>
</HTML>