diff --git a/include/log_action.h b/include/log_action.h
index c8eec803d34247738eff6f69581adc07756f005e..d0a1bd00577819e64cb2e647e5051bc16aded123 100644
--- a/include/log_action.h
+++ b/include/log_action.h
@@ -115,45 +115,45 @@ typedef struct log_hooks_t
 	void (*redraw) ();   /*redraw drawing area*/
 	void (*redrawwindow) ();   /*redraw entire window*/
 	void (*change) (log_page *page);
-	void (*newgate) (log_grec **g, int gt);
+	void (*newgate) (log_grec **g, short gt);
 	void (*copygate) (log_grec *old, log_grec **g);
 	void (*disposegate) (log_grec **g);
-	void (*newnode) (log_nrec **n, int st);
+	void (*newnode) (log_nrec **n, uchar st);
 	void (*copynode) (log_nrec *old, log_nrec **n);
 	void (*disposenode) (log_nrec **n);
 	void (*switchnode) (log_nrec **n, log_nrec *n2);
 	void (*dumpnodes) ();
-	void (*readlnpass) (char *s, int mode);
+	void (*readlnpass) (char *s, short mode);
 	void (*clearfunc) ();
 	void (*refrfunc) ();
 	void (*assertfunc) (char *name);
-	void (*findobject) (int x, int y);
-	void (*findwire) (int x, int y);
+	void (*findobject) (short x, short y);
+	void (*findwire) (short x, short y);
 	void (*deletehw) (log_hwrec *hw);
 	void (*deletevw) (log_vwrec *vw);
 	void (*disconnectgate) (log_grec *g);
 	void (*deletegate) (log_grec *g);
-	void (*addhw) (int x1, int x2, int y);
-	void (*addvw) (int x, int y1, int y2);
+	void (*addhw) (short x1, short x2, short y);
+	void (*addvw) (short x, short y1, short y2);
 	void (*connectgate) (log_grec *g, int *success);
 	void (*waitnear) ();
-	void (*addgate) (int x, int y, int gtype);
-	void (*uaddgate) (int x, int y, int gtype);
+	void (*addgate) (short x, short y, short gtype);
+	void (*uaddgate) (short x, short y, short gtype);
 	void (*getgate) (char *name, short *gtype);
-	void (*realunit) (double r, int p, char *u, char *s);
-	void (*realunit2) (double r, int p, char *u, char *s);
+	void (*realunit) (double r, short p, char *u, char *s);
+	void (*realunit2) (double r, short p, char *u, char *s);
 	void (*addlabel) (log_lrec **l, char *s);
-	void (*getcolor) (char *name, short *val, int def);
-	void (*setcmap) (int n, int r, int g, int b);
+	void (*getcolor) (char *name, short *val, short def);
+	void (*setcmap) (short n, short r, short g, short b);
 	void (*parselabel) (strlist_t **lbl, short *numattrs, log_kattrrec **attr);
-	void (*editattrs) (log_gattrrec *gattr, int numattrs, log_kattrrec *kattr, strlist_t *lbl,
+	void (*editattrs) (log_gattrrec *gattr, short numattrs, log_kattrrec *kattr, strlist_t *lbl,
 			char *name, void (*proc) (), void (*chproc) (), void (*relproc) ());
-	void (*newattrs) (log_gattrrec **gattr, int numattrs, log_kattrrec *kattr);
-	void (*disposeattrs) (log_gattrrec **gattr, int numattrs, log_kattrrec *kattr);
-	void (*copyattrs) (log_gattrrec **gattr, log_gattrrec *oldattr, int numattrs, log_kattrrec *kattr);
+	void (*newattrs) (log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+	void (*disposeattrs) (log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+	void (*copyattrs) (log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr);
 	void (*initwindow) ();
 	void (*clearshowalpha) ();
-	void (*setupregion) (log_regrec **r, int pagenum);
+	void (*setupregion) (log_regrec **r, short pagenum);
 	void (*stamp) (long *i);
 	void (*noclip) ();
 } log_hooks_t;
@@ -161,17 +161,17 @@ typedef struct log_hooks_t
 typedef struct log_hook2_t
 {
 	void (*getnodeval) (log_nrec *n, double *val, char *opts);
-	void (*solderat) (int x, int y);
+	void (*solderat) (short x, short y);
 	void (*unsolderwires) (log_hwrec *hw, log_vwrec *vw);
 	void (*settofrom) (log_grec **g, char *name);
 	void (*findattrnum) (log_krec *k, char *name, char *kinds, short *num);
-	void (*findattrname) (log_krec *k, int num, char *name);
+	void (*findattrname) (log_krec *k, short num, char *name);
 	void (*findpinnum) (log_krec *k, char *name, short *num);
-	void (*findpinname) (log_krec *k, int num, char *name);
-	void (*setgattr) (log_grec *g, int num, char *value);
-	void (*setnattr) (log_nrec *n, int num, char *value);
-	void (*findpointmarker) (log_krec *k, int num, short *x, short *y);
-	void (*findboxmarker) (log_krec *k, int num, short *x1, short *y1, short *x2, short *y2);
+	void (*findpinname) (log_krec *k, short num, char *name);
+	void (*setgattr) (log_grec *g, short num, char *value);
+	void (*setnattr) (log_nrec *n, short num, char *value);
+	void (*findpointmarker) (log_krec *k, short num, short *x, short *y);
+	void (*findboxmarker) (log_krec *k, short num, short *x1, short *y1, short *x2, short *y2);
 	void (*send_general) (struct log_tool *sim, char *act);
 	void (*send_gennode) (log_nrec *n, char *act);
 	void (*send_genkind) (log_krec *k, char *act);
@@ -180,12 +180,12 @@ typedef struct log_hook2_t
 	void (*send_allnodes) (char *act);
 	void (*send_allkinds) (char *act);
 	void (*send_allgates) (char *act);
-	void (*addlabelat) (int x, int y, char *s);
-	void (*addboxat) (int x1, int y1, int x2, int y2);
+	void (*addlabelat) (short x, short y, char *s);
+	void (*addboxat) (short x1, short y1, short x2, short y2);
 	void (*plainxform) (log_grec *g, short *x, short *y);
-	void (*findattrnum2) (int numattrs, log_kattrrec *kattr, strlist_t *lbl, char *name, char *kinds, short *num);
-	void (*findattrname2) (int numattrs, log_kattrrec *kattr, strlist_t *lbl, int num, char *name);
-	void (*showpinname) (log_grec *g, int i, int c, char *name);
+	void (*findattrnum2) (short numattrs, log_kattrrec *kattr, strlist_t *lbl, char *name, char *kinds, short *num);
+	void (*findattrname2) (short numattrs, log_kattrrec *kattr, strlist_t *lbl, short num, char *name);
+	void (*showpinname) (log_grec *g, short i, short c, char *name);
 } log_hook2_t;
 
 typedef struct log_action_t