]> git.sur5r.net Git - cc65/commitdiff
Document pragma trampoline
authorLauri Kasanen <cand@gmx.com>
Mon, 1 May 2017 16:50:01 +0000 (19:50 +0300)
committerLauri Kasanen <cand@gmx.com>
Mon, 1 May 2017 18:08:03 +0000 (21:08 +0300)
doc/cc65.sgml

index 24b37133e2674895eb9b3c84dc9a501d6da907cd..99ddfc82d961065315261a2e3d1f82729c092c23 100644 (file)
@@ -1209,6 +1209,31 @@ parameter with the <tt/#pragma/.
   The <tt/#pragma/ understands the push and pop parameters as explained above.
 
 
+<sect1><tt>#pragma trampoline (&lt;push&rt;, &lt;name&gt;, &lt;value&gt;)</tt><label id="pragma-trampoline"><p>
+
+  This pragma sets a trampoline for functions. The name is either
+  a function returning void and taking no parameters, or the address
+  of an array in memory (for a RAM trampoline). The value is an
+  8-bit number that's set to tmp4.
+
+  The address of the function is passed in ptr4.
+
+  This is useful for example with banked memory, to automatically
+  switch banks to where this function resides, and then restore
+  the bank when it returns.
+
+  The <tt/#pragma/ requires the push and pop parameters as explained above.
+
+  Example:
+  <tscreen><verb>
+       void mytrampoline(void);
+
+        #pragma trampoline (push, mytrampoline, 0)
+        void somefunc(void);
+        #pragma trampoline (pop)
+  </verb></tscreen>
+
+
 <sect1><tt>#pragma warn (name, [push,] on|off)</tt><label id="pragma-warn"><p>
 
   Switch compiler warnings on or off. "name" is the name of a warning (see the