]> git.sur5r.net Git - cc65/commitdiff
system vector interception fixes
authorizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 15 Aug 2003 23:17:11 +0000 (23:17 +0000)
committerizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 15 Aug 2003 23:17:11 +0000 (23:17 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2339 b7a2c559-68d2-44c3-8de9-860c34a00d81

doc/geos.sgml
samples/geos/vector-demo.c

index 0539e490b299cc34dad412479117561b72923e81..14acb7d481356196887cce8c926666cd4bca07d0 100644 (file)
@@ -1607,7 +1607,7 @@ void example = &lcub;
 <p>
 It is possible to intercept and hook in the GEOS Kernal using vectors. Here is a little example:
 <tscreen><verb>
-void (&ast;oldVector)(void);
+void_func oldVector;
 
 void NewVectorHandler(void) &lcub;
        // do something and at the end call the old vector routine
index a558e1f2a1ec8f931f6f031cf00203e16dc2825e..cddb943d28e5cd53f64e584337d114375bb74293 100644 (file)
@@ -5,8 +5,7 @@
 
 unsigned char x,y;
 
-void (*oldMouseVector)();
-void (*oldKeyVector)();
+void_func oldMouseVector, oldKeyVector;
 
 void foo1 (void) {
     // do something on mouse press/release
@@ -28,15 +27,15 @@ void foo2 (void) {
 
 void hook_into_system(void) {
     // hook into system vectors - preserve old value
-    oldMouseVector = (void (*)())mouseVector;
-    mouseVector = (int)foo1;
-    oldKeyVector = (void (*)())keyVector;
-    keyVector = (int)foo2;
+    oldMouseVector = mouseVector;
+    mouseVector = foo1;
+    oldKeyVector = keyVector;
+    keyVector = foo2;
 }
 
 void remove_hooks(void) {
-    mouseVector = (int)oldMouseVector;
-    keyVector = (int)oldKeyVector;
+    mouseVector = oldMouseVector;
+    keyVector = oldKeyVector;
 }
 
 int main(void) {