diff options
-rw-r--r-- | Makefile | 2096 | ||||
-rw-r--r-- | gemma.c | 1018 | ||||
-rw-r--r-- | gemma.glade | 422 | ||||
-rw-r--r-- | gemma.gladep | 11 | ||||
-rw-r--r-- | gemma.h | 56 | ||||
-rw-r--r-- | gtkutil.c | 220 | ||||
-rw-r--r-- | gtkutil.h | 66 | ||||
-rw-r--r-- | runall | 4 | ||||
-rw-r--r-- | zexall.com | bin | 0 -> 8587 bytes | |||
-rw-r--r-- | zexall.z80 | 1535 | ||||
-rw-r--r-- | zexdoc.z80 | 1535 |
11 files changed, 7 insertions, 6956 deletions
@@ -34,16 +34,9 @@ CFLAGS = -g -w -Wsequence-point -O2 -finline-functions # Decide on what to build. Options are: # emma - Simple 'breadboard' computer. -# gemma - Simple 'breadboard' computer with a GUI. -# test - Tests built from source using tpasm. +# test - Test support # -TARGETS = emma -TARGETS += gemma -TARGETS += tests - -# If you're building GEMMA, you need this. -# -CFLAGS += `pkg-config --cflags gtk+-2.0` +TARGETS = emma test # Remove the following to disable the use of readline in EMMA # @@ -65,9 +58,7 @@ SOURCE = z80.c \ main.c \ support.c \ callbacks.c \ - interface.c \ - gtkutil.c \ - gemma.c + interface.c BASE_O = z80.o \ z80_decode.o \ @@ -76,2092 +67,15 @@ BASE_O = z80.o \ EMMA_O = emma.o -GEMMA_O = main.o \ - support.o \ - callbacks.o \ - interface.o \ - gtkutil.o \ - gemma.o - all: $(TARGETS) emma: $(BASE_O) $(EMMA_O) cc -o emma $(BASE_O) $(EMMA_O) $(LIBS) -gemma: $(BASE_O) $(GEMMA_O) - cc -o gemma $(BASE_O) $(GEMMA_O) `pkg-config --libs gtk+-2.0` - -tests: emucpm.hex zexdoc.hex zexall.hex test.hex +test: emucpm.hex emucpm.hex: emucpm.z80 tpasm -P Z80 -o intel emucpm.hex emucpm.z80 -zexdoc.hex: zexdoc.z80 - tpasm -P Z80 -o text _tmp -o intel zexdoc.hex zexdoc.z80 - tail +4 _tmp | awk '{printf("%s 0x%s\n",$$2,$$1);}' > zexdoc.lbl - rm -f _tmp - -zexall.hex: zexall.z80 - tpasm -P Z80 -o text _tmp -o intel zexall.hex zexall.z80 - tail +4 _tmp | awk '{printf("%s 0x%s\n",$$2,$$1);}' > zexall.lbl - rm -f _tmp - -test.hex: test.z80 - tpasm -P Z80 -o intel test.hex test.z80 - -test.z80: - if [ ! -e test.z80 ] ; then touch test.z80 ; fi - clean: - rm -f emma gemma $(BASE_O) $(EMMA_O) $(GEMMA_O) core *.hex *.lbl - -depend: - makedepend -- $(CFLAGS) -- $(SOURCE) - if test -e Makefile ; then rm -f Makefile.bak ; fi - -# DO NOT DELETE THIS LINE -- make depend depends on it - -z80.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h -z80.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -z80.o: /usr/include/machine/_types.h /usr/include/string.h -z80.o: /usr/include/strings.h z80.h z80_private.h -z80_decode.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h -z80_decode.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -z80_decode.o: /usr/include/machine/_types.h /usr/include/limits.h -z80_decode.o: /usr/include/sys/limits.h /usr/include/machine/_limits.h -z80_decode.o: /usr/include/sys/syslimits.h z80.h z80_private.h -z80_dis.o: /usr/include/stdio.h /usr/include/sys/cdefs.h -z80_dis.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -z80_dis.o: /usr/include/machine/_types.h /usr/include/string.h -z80_dis.o: /usr/include/strings.h /usr/include/stdarg.h z80.h z80_private.h -expr.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h -expr.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -expr.o: /usr/include/machine/_types.h /usr/include/stdio.h -expr.o: /usr/include/string.h /usr/include/strings.h /usr/include/ctype.h -expr.o: /usr/include/_ctype.h /usr/include/runetype.h -emma.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h -emma.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -emma.o: /usr/include/machine/_types.h /usr/include/stdio.h -emma.o: /usr/include/string.h /usr/include/strings.h /usr/include/ctype.h -emma.o: /usr/include/_ctype.h /usr/include/runetype.h /usr/include/signal.h -emma.o: /usr/include/sys/signal.h /usr/include/sys/_sigset.h -emma.o: /usr/include/machine/signal.h /usr/include/machine/trap.h -emma.o: /usr/include/stdarg.h /usr/include/readline/readline.h -emma.o: /usr/include/readline/rlstdc.h /usr/include/readline/rltypedefs.h -emma.o: /usr/include/readline/keymaps.h /usr/include/readline/chardefs.h -emma.o: /usr/include/readline/tilde.h /usr/include/readline/history.h -emma.o: /usr/include/time.h /usr/include/sys/timespec.h z80.h expr.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtk.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -main.o: /usr/local/include/cairo/cairo.h -main.o: /usr/local/include/cairo/cairo-features.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -main.o: /usr/local/include/glib-2.0/glib.h -main.o: /usr/local/include/glib-2.0/glib/galloca.h -main.o: /usr/local/include/glib-2.0/glib/gtypes.h -main.o: /usr/local/include/glib-2.0/glibconfig.h -main.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -main.o: /usr/include/sys/cdefs.h /usr/include/sys/_null.h -main.o: /usr/include/sys/_types.h /usr/include/machine/_types.h -main.o: /usr/include/limits.h /usr/include/sys/limits.h -main.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -main.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -main.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -main.o: /usr/local/include/glib-2.0/glib/gthread.h -main.o: /usr/local/include/glib-2.0/glib/gerror.h -main.o: /usr/local/include/glib-2.0/glib/gquark.h -main.o: /usr/local/include/glib-2.0/glib/gatomic.h -main.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -main.o: /usr/local/include/glib-2.0/glib/gcache.h -main.o: /usr/local/include/glib-2.0/glib/glist.h -main.o: /usr/local/include/glib-2.0/glib/gmem.h -main.o: /usr/local/include/glib-2.0/glib/gslice.h -main.o: /usr/local/include/glib-2.0/glib/gcompletion.h -main.o: /usr/local/include/glib-2.0/glib/gconvert.h -main.o: /usr/local/include/glib-2.0/glib/gdataset.h -main.o: /usr/local/include/glib-2.0/glib/gdate.h /usr/include/time.h -main.o: /usr/include/sys/timespec.h /usr/local/include/glib-2.0/glib/gdir.h -main.o: /usr/local/include/glib-2.0/glib/gfileutils.h -main.o: /usr/local/include/glib-2.0/glib/ghash.h -main.o: /usr/local/include/glib-2.0/glib/ghook.h -main.o: /usr/local/include/glib-2.0/glib/giochannel.h -main.o: /usr/local/include/glib-2.0/glib/gmain.h -main.o: /usr/local/include/glib-2.0/glib/gslist.h -main.o: /usr/local/include/glib-2.0/glib/gstring.h -main.o: /usr/local/include/glib-2.0/glib/gunicode.h -main.o: /usr/local/include/glib-2.0/glib/gutils.h /usr/include/stdarg.h -main.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -main.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -main.o: /usr/local/include/glib-2.0/glib/gmarkup.h -main.o: /usr/local/include/glib-2.0/glib/gmessages.h -main.o: /usr/local/include/glib-2.0/glib/gnode.h -main.o: /usr/local/include/glib-2.0/glib/goption.h -main.o: /usr/local/include/glib-2.0/glib/gpattern.h -main.o: /usr/local/include/glib-2.0/glib/gprimes.h -main.o: /usr/local/include/glib-2.0/glib/gqsort.h -main.o: /usr/local/include/glib-2.0/glib/gqueue.h -main.o: /usr/local/include/glib-2.0/glib/grand.h -main.o: /usr/local/include/glib-2.0/glib/grel.h -main.o: /usr/local/include/glib-2.0/glib/gscanner.h -main.o: /usr/local/include/glib-2.0/glib/gshell.h -main.o: /usr/local/include/glib-2.0/glib/gspawn.h -main.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -main.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -main.o: /usr/local/include/glib-2.0/glib/gtimer.h -main.o: /usr/local/include/glib-2.0/glib/gtree.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -main.o: /usr/local/include/glib-2.0/glib-object.h -main.o: /usr/local/include/glib-2.0/gobject/gboxed.h -main.o: /usr/local/include/glib-2.0/gobject/gtype.h -main.o: /usr/local/include/glib-2.0/gobject/genums.h -main.o: /usr/local/include/glib-2.0/gobject/gobject.h -main.o: /usr/local/include/glib-2.0/gobject/gvalue.h -main.o: /usr/local/include/glib-2.0/gobject/gparam.h -main.o: /usr/local/include/glib-2.0/gobject/gclosure.h -main.o: /usr/local/include/glib-2.0/gobject/gsignal.h -main.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -main.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -main.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -main.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -main.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -main.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -main.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -main.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -main.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -main.o: /usr/include/stdio.h /usr/local/include/glib-2.0/gmodule.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -main.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -main.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -main.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -main.o: /usr/local/include/atk-1.0/atk/atkobject.h -main.o: /usr/local/include/atk-1.0/atk/atkstate.h -main.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -main.o: /usr/local/include/atk-1.0/atk/atk.h -main.o: /usr/local/include/atk-1.0/atk/atkaction.h -main.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -main.o: /usr/local/include/atk-1.0/atk/atkutil.h -main.o: /usr/local/include/atk-1.0/atk/atkdocument.h -main.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -main.o: /usr/local/include/atk-1.0/atk/atktext.h -main.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -main.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -main.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -main.o: /usr/local/include/atk-1.0/atk/atkimage.h -main.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -main.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -main.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -main.o: /usr/local/include/atk-1.0/atk/atkregistry.h -main.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -main.o: /usr/local/include/atk-1.0/atk/atkrelation.h -main.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -main.o: /usr/local/include/atk-1.0/atk/atkselection.h -main.o: /usr/local/include/atk-1.0/atk/atkstateset.h -main.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -main.o: /usr/local/include/atk-1.0/atk/atktable.h -main.o: /usr/local/include/atk-1.0/atk/atkvalue.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -main.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h interface.h support.h -main.o: gtkutil.h gemma.h z80.h -support.o: /usr/include/sys/types.h /usr/include/sys/cdefs.h -support.o: /usr/include/machine/endian.h /usr/include/sys/_types.h -support.o: /usr/include/machine/_types.h /usr/include/sys/_pthreadtypes.h -support.o: /usr/include/sys/select.h /usr/include/sys/_sigset.h -support.o: /usr/include/sys/_timeval.h /usr/include/sys/timespec.h -support.o: /usr/include/sys/stat.h /usr/include/sys/time.h -support.o: /usr/include/time.h /usr/include/sys/_null.h /usr/include/unistd.h -support.o: /usr/include/sys/unistd.h /usr/include/string.h -support.o: /usr/include/strings.h /usr/include/stdio.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtk.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -support.o: /usr/local/include/cairo/cairo.h -support.o: /usr/local/include/cairo/cairo-features.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -support.o: /usr/local/include/glib-2.0/glib.h -support.o: /usr/local/include/glib-2.0/glib/galloca.h -support.o: /usr/local/include/glib-2.0/glib/gtypes.h -support.o: /usr/local/include/glib-2.0/glibconfig.h -support.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -support.o: /usr/include/limits.h /usr/include/sys/limits.h -support.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -support.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -support.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -support.o: /usr/local/include/glib-2.0/glib/gthread.h -support.o: /usr/local/include/glib-2.0/glib/gerror.h -support.o: /usr/local/include/glib-2.0/glib/gquark.h -support.o: /usr/local/include/glib-2.0/glib/gatomic.h -support.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -support.o: /usr/local/include/glib-2.0/glib/gcache.h -support.o: /usr/local/include/glib-2.0/glib/glist.h -support.o: /usr/local/include/glib-2.0/glib/gmem.h -support.o: /usr/local/include/glib-2.0/glib/gslice.h -support.o: /usr/local/include/glib-2.0/glib/gcompletion.h -support.o: /usr/local/include/glib-2.0/glib/gconvert.h -support.o: /usr/local/include/glib-2.0/glib/gdataset.h -support.o: /usr/local/include/glib-2.0/glib/gdate.h -support.o: /usr/local/include/glib-2.0/glib/gdir.h -support.o: /usr/local/include/glib-2.0/glib/gfileutils.h -support.o: /usr/local/include/glib-2.0/glib/ghash.h -support.o: /usr/local/include/glib-2.0/glib/ghook.h -support.o: /usr/local/include/glib-2.0/glib/giochannel.h -support.o: /usr/local/include/glib-2.0/glib/gmain.h -support.o: /usr/local/include/glib-2.0/glib/gslist.h -support.o: /usr/local/include/glib-2.0/glib/gstring.h -support.o: /usr/local/include/glib-2.0/glib/gunicode.h -support.o: /usr/local/include/glib-2.0/glib/gutils.h /usr/include/stdarg.h -support.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -support.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -support.o: /usr/local/include/glib-2.0/glib/gmarkup.h -support.o: /usr/local/include/glib-2.0/glib/gmessages.h -support.o: /usr/local/include/glib-2.0/glib/gnode.h -support.o: /usr/local/include/glib-2.0/glib/goption.h -support.o: /usr/local/include/glib-2.0/glib/gpattern.h -support.o: /usr/local/include/glib-2.0/glib/gprimes.h -support.o: /usr/local/include/glib-2.0/glib/gqsort.h -support.o: /usr/local/include/glib-2.0/glib/gqueue.h -support.o: /usr/local/include/glib-2.0/glib/grand.h -support.o: /usr/local/include/glib-2.0/glib/grel.h -support.o: /usr/local/include/glib-2.0/glib/gscanner.h -support.o: /usr/local/include/glib-2.0/glib/gshell.h -support.o: /usr/local/include/glib-2.0/glib/gspawn.h -support.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -support.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -support.o: /usr/local/include/glib-2.0/glib/gtimer.h -support.o: /usr/local/include/glib-2.0/glib/gtree.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -support.o: /usr/local/include/glib-2.0/glib-object.h -support.o: /usr/local/include/glib-2.0/gobject/gboxed.h -support.o: /usr/local/include/glib-2.0/gobject/gtype.h -support.o: /usr/local/include/glib-2.0/gobject/genums.h -support.o: /usr/local/include/glib-2.0/gobject/gobject.h -support.o: /usr/local/include/glib-2.0/gobject/gvalue.h -support.o: /usr/local/include/glib-2.0/gobject/gparam.h -support.o: /usr/local/include/glib-2.0/gobject/gclosure.h -support.o: /usr/local/include/glib-2.0/gobject/gsignal.h -support.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -support.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -support.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -support.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -support.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -support.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -support.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -support.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -support.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -support.o: /usr/local/include/glib-2.0/gmodule.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -support.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -support.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -support.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -support.o: /usr/local/include/atk-1.0/atk/atkobject.h -support.o: /usr/local/include/atk-1.0/atk/atkstate.h -support.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -support.o: /usr/local/include/atk-1.0/atk/atk.h -support.o: /usr/local/include/atk-1.0/atk/atkaction.h -support.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -support.o: /usr/local/include/atk-1.0/atk/atkutil.h -support.o: /usr/local/include/atk-1.0/atk/atkdocument.h -support.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -support.o: /usr/local/include/atk-1.0/atk/atktext.h -support.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -support.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -support.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -support.o: /usr/local/include/atk-1.0/atk/atkimage.h -support.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -support.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -support.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -support.o: /usr/local/include/atk-1.0/atk/atkregistry.h -support.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -support.o: /usr/local/include/atk-1.0/atk/atkrelation.h -support.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -support.o: /usr/local/include/atk-1.0/atk/atkselection.h -support.o: /usr/local/include/atk-1.0/atk/atkstateset.h -support.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -support.o: /usr/local/include/atk-1.0/atk/atktable.h -support.o: /usr/local/include/atk-1.0/atk/atkvalue.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -support.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h support.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtk.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -callbacks.o: /usr/local/include/cairo/cairo.h -callbacks.o: /usr/local/include/cairo/cairo-features.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -callbacks.o: /usr/local/include/glib-2.0/glib.h -callbacks.o: /usr/local/include/glib-2.0/glib/galloca.h -callbacks.o: /usr/local/include/glib-2.0/glib/gtypes.h -callbacks.o: /usr/local/include/glib-2.0/glibconfig.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -callbacks.o: /usr/include/sys/cdefs.h /usr/include/sys/_null.h -callbacks.o: /usr/include/sys/_types.h /usr/include/machine/_types.h -callbacks.o: /usr/include/limits.h /usr/include/sys/limits.h -callbacks.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -callbacks.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -callbacks.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -callbacks.o: /usr/local/include/glib-2.0/glib/gthread.h -callbacks.o: /usr/local/include/glib-2.0/glib/gerror.h -callbacks.o: /usr/local/include/glib-2.0/glib/gquark.h -callbacks.o: /usr/local/include/glib-2.0/glib/gatomic.h -callbacks.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -callbacks.o: /usr/local/include/glib-2.0/glib/gcache.h -callbacks.o: /usr/local/include/glib-2.0/glib/glist.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmem.h -callbacks.o: /usr/local/include/glib-2.0/glib/gslice.h -callbacks.o: /usr/local/include/glib-2.0/glib/gcompletion.h -callbacks.o: /usr/local/include/glib-2.0/glib/gconvert.h -callbacks.o: /usr/local/include/glib-2.0/glib/gdataset.h -callbacks.o: /usr/local/include/glib-2.0/glib/gdate.h /usr/include/time.h -callbacks.o: /usr/include/sys/timespec.h -callbacks.o: /usr/local/include/glib-2.0/glib/gdir.h -callbacks.o: /usr/local/include/glib-2.0/glib/gfileutils.h -callbacks.o: /usr/local/include/glib-2.0/glib/ghash.h -callbacks.o: /usr/local/include/glib-2.0/glib/ghook.h -callbacks.o: /usr/local/include/glib-2.0/glib/giochannel.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmain.h -callbacks.o: /usr/local/include/glib-2.0/glib/gslist.h -callbacks.o: /usr/local/include/glib-2.0/glib/gstring.h -callbacks.o: /usr/local/include/glib-2.0/glib/gunicode.h -callbacks.o: /usr/local/include/glib-2.0/glib/gutils.h /usr/include/stdarg.h -callbacks.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmarkup.h -callbacks.o: /usr/local/include/glib-2.0/glib/gmessages.h -callbacks.o: /usr/local/include/glib-2.0/glib/gnode.h -callbacks.o: /usr/local/include/glib-2.0/glib/goption.h -callbacks.o: /usr/local/include/glib-2.0/glib/gpattern.h -callbacks.o: /usr/local/include/glib-2.0/glib/gprimes.h -callbacks.o: /usr/local/include/glib-2.0/glib/gqsort.h -callbacks.o: /usr/local/include/glib-2.0/glib/gqueue.h -callbacks.o: /usr/local/include/glib-2.0/glib/grand.h -callbacks.o: /usr/local/include/glib-2.0/glib/grel.h -callbacks.o: /usr/local/include/glib-2.0/glib/gscanner.h -callbacks.o: /usr/local/include/glib-2.0/glib/gshell.h -callbacks.o: /usr/local/include/glib-2.0/glib/gspawn.h -callbacks.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -callbacks.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -callbacks.o: /usr/local/include/glib-2.0/glib/gtimer.h -callbacks.o: /usr/local/include/glib-2.0/glib/gtree.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -callbacks.o: /usr/local/include/glib-2.0/glib-object.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gboxed.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gtype.h -callbacks.o: /usr/local/include/glib-2.0/gobject/genums.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gobject.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gvalue.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gparam.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gclosure.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gsignal.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -callbacks.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -callbacks.o: /usr/include/stdio.h /usr/local/include/glib-2.0/gmodule.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -callbacks.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkobject.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkstate.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -callbacks.o: /usr/local/include/atk-1.0/atk/atk.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkaction.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkutil.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkdocument.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -callbacks.o: /usr/local/include/atk-1.0/atk/atktext.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkimage.h -callbacks.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -callbacks.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkregistry.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkrelation.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkselection.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkstateset.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -callbacks.o: /usr/local/include/atk-1.0/atk/atktable.h -callbacks.o: /usr/local/include/atk-1.0/atk/atkvalue.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -callbacks.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h callbacks.h -callbacks.o: interface.h support.h gtkutil.h gemma.h z80.h -interface.o: /usr/include/sys/types.h /usr/include/sys/cdefs.h -interface.o: /usr/include/machine/endian.h /usr/include/sys/_types.h -interface.o: /usr/include/machine/_types.h /usr/include/sys/_pthreadtypes.h -interface.o: /usr/include/sys/select.h /usr/include/sys/_sigset.h -interface.o: /usr/include/sys/_timeval.h /usr/include/sys/timespec.h -interface.o: /usr/include/sys/stat.h /usr/include/sys/time.h -interface.o: /usr/include/time.h /usr/include/sys/_null.h -interface.o: /usr/include/unistd.h /usr/include/sys/unistd.h -interface.o: /usr/include/string.h /usr/include/strings.h -interface.o: /usr/include/stdio.h /usr/X11R6/include/gtk-2.0/gdk/gdkkeysyms.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtk.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -interface.o: /usr/local/include/cairo/cairo.h -interface.o: /usr/local/include/cairo/cairo-features.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -interface.o: /usr/local/include/glib-2.0/glib.h -interface.o: /usr/local/include/glib-2.0/glib/galloca.h -interface.o: /usr/local/include/glib-2.0/glib/gtypes.h -interface.o: /usr/local/include/glib-2.0/glibconfig.h -interface.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -interface.o: /usr/include/limits.h /usr/include/sys/limits.h -interface.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -interface.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -interface.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -interface.o: /usr/local/include/glib-2.0/glib/gthread.h -interface.o: /usr/local/include/glib-2.0/glib/gerror.h -interface.o: /usr/local/include/glib-2.0/glib/gquark.h -interface.o: /usr/local/include/glib-2.0/glib/gatomic.h -interface.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -interface.o: /usr/local/include/glib-2.0/glib/gcache.h -interface.o: /usr/local/include/glib-2.0/glib/glist.h -interface.o: /usr/local/include/glib-2.0/glib/gmem.h -interface.o: /usr/local/include/glib-2.0/glib/gslice.h -interface.o: /usr/local/include/glib-2.0/glib/gcompletion.h -interface.o: /usr/local/include/glib-2.0/glib/gconvert.h -interface.o: /usr/local/include/glib-2.0/glib/gdataset.h -interface.o: /usr/local/include/glib-2.0/glib/gdate.h -interface.o: /usr/local/include/glib-2.0/glib/gdir.h -interface.o: /usr/local/include/glib-2.0/glib/gfileutils.h -interface.o: /usr/local/include/glib-2.0/glib/ghash.h -interface.o: /usr/local/include/glib-2.0/glib/ghook.h -interface.o: /usr/local/include/glib-2.0/glib/giochannel.h -interface.o: /usr/local/include/glib-2.0/glib/gmain.h -interface.o: /usr/local/include/glib-2.0/glib/gslist.h -interface.o: /usr/local/include/glib-2.0/glib/gstring.h -interface.o: /usr/local/include/glib-2.0/glib/gunicode.h -interface.o: /usr/local/include/glib-2.0/glib/gutils.h /usr/include/stdarg.h -interface.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -interface.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -interface.o: /usr/local/include/glib-2.0/glib/gmarkup.h -interface.o: /usr/local/include/glib-2.0/glib/gmessages.h -interface.o: /usr/local/include/glib-2.0/glib/gnode.h -interface.o: /usr/local/include/glib-2.0/glib/goption.h -interface.o: /usr/local/include/glib-2.0/glib/gpattern.h -interface.o: /usr/local/include/glib-2.0/glib/gprimes.h -interface.o: /usr/local/include/glib-2.0/glib/gqsort.h -interface.o: /usr/local/include/glib-2.0/glib/gqueue.h -interface.o: /usr/local/include/glib-2.0/glib/grand.h -interface.o: /usr/local/include/glib-2.0/glib/grel.h -interface.o: /usr/local/include/glib-2.0/glib/gscanner.h -interface.o: /usr/local/include/glib-2.0/glib/gshell.h -interface.o: /usr/local/include/glib-2.0/glib/gspawn.h -interface.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -interface.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -interface.o: /usr/local/include/glib-2.0/glib/gtimer.h -interface.o: /usr/local/include/glib-2.0/glib/gtree.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -interface.o: /usr/local/include/glib-2.0/glib-object.h -interface.o: /usr/local/include/glib-2.0/gobject/gboxed.h -interface.o: /usr/local/include/glib-2.0/gobject/gtype.h -interface.o: /usr/local/include/glib-2.0/gobject/genums.h -interface.o: /usr/local/include/glib-2.0/gobject/gobject.h -interface.o: /usr/local/include/glib-2.0/gobject/gvalue.h -interface.o: /usr/local/include/glib-2.0/gobject/gparam.h -interface.o: /usr/local/include/glib-2.0/gobject/gclosure.h -interface.o: /usr/local/include/glib-2.0/gobject/gsignal.h -interface.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -interface.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -interface.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -interface.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -interface.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -interface.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -interface.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -interface.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -interface.o: /usr/local/include/glib-2.0/gmodule.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -interface.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -interface.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -interface.o: /usr/local/include/atk-1.0/atk/atkobject.h -interface.o: /usr/local/include/atk-1.0/atk/atkstate.h -interface.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -interface.o: /usr/local/include/atk-1.0/atk/atk.h -interface.o: /usr/local/include/atk-1.0/atk/atkaction.h -interface.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -interface.o: /usr/local/include/atk-1.0/atk/atkutil.h -interface.o: /usr/local/include/atk-1.0/atk/atkdocument.h -interface.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -interface.o: /usr/local/include/atk-1.0/atk/atktext.h -interface.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -interface.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -interface.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -interface.o: /usr/local/include/atk-1.0/atk/atkimage.h -interface.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -interface.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -interface.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -interface.o: /usr/local/include/atk-1.0/atk/atkregistry.h -interface.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -interface.o: /usr/local/include/atk-1.0/atk/atkrelation.h -interface.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -interface.o: /usr/local/include/atk-1.0/atk/atkselection.h -interface.o: /usr/local/include/atk-1.0/atk/atkstateset.h -interface.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -interface.o: /usr/local/include/atk-1.0/atk/atktable.h -interface.o: /usr/local/include/atk-1.0/atk/atkvalue.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -interface.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h callbacks.h -interface.o: interface.h support.h -gtkutil.o: /usr/include/stdio.h /usr/include/sys/cdefs.h -gtkutil.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -gtkutil.o: /usr/include/machine/_types.h /usr/include/string.h -gtkutil.o: /usr/include/strings.h /usr/include/stdarg.h gtkutil.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtk.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -gtkutil.o: /usr/local/include/cairo/cairo.h -gtkutil.o: /usr/local/include/cairo/cairo-features.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -gtkutil.o: /usr/local/include/glib-2.0/glib.h -gtkutil.o: /usr/local/include/glib-2.0/glib/galloca.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gtypes.h -gtkutil.o: /usr/local/include/glib-2.0/glibconfig.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -gtkutil.o: /usr/include/limits.h /usr/include/sys/limits.h -gtkutil.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -gtkutil.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gthread.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gerror.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gquark.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gatomic.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gcache.h -gtkutil.o: /usr/local/include/glib-2.0/glib/glist.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmem.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gslice.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gcompletion.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gconvert.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gdataset.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gdate.h /usr/include/time.h -gtkutil.o: /usr/include/sys/timespec.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gdir.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gfileutils.h -gtkutil.o: /usr/local/include/glib-2.0/glib/ghash.h -gtkutil.o: /usr/local/include/glib-2.0/glib/ghook.h -gtkutil.o: /usr/local/include/glib-2.0/glib/giochannel.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmain.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gslist.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gstring.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gunicode.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gutils.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmarkup.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gmessages.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gnode.h -gtkutil.o: /usr/local/include/glib-2.0/glib/goption.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gpattern.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gprimes.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gqsort.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gqueue.h -gtkutil.o: /usr/local/include/glib-2.0/glib/grand.h -gtkutil.o: /usr/local/include/glib-2.0/glib/grel.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gscanner.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gshell.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gspawn.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gtimer.h -gtkutil.o: /usr/local/include/glib-2.0/glib/gtree.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -gtkutil.o: /usr/local/include/glib-2.0/glib-object.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gboxed.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gtype.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/genums.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gobject.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gvalue.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gparam.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gclosure.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gsignal.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -gtkutil.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -gtkutil.o: /usr/local/include/glib-2.0/gmodule.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -gtkutil.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkobject.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkstate.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atk.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkaction.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkutil.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkdocument.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atktext.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkimage.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkregistry.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkrelation.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkselection.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkstateset.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atktable.h -gtkutil.o: /usr/local/include/atk-1.0/atk/atkvalue.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -gtkutil.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h -gemma.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h -gemma.o: /usr/include/sys/_null.h /usr/include/sys/_types.h -gemma.o: /usr/include/machine/_types.h /usr/include/stdio.h -gemma.o: /usr/include/signal.h /usr/include/sys/signal.h -gemma.o: /usr/include/sys/_sigset.h /usr/include/machine/signal.h -gemma.o: /usr/include/machine/trap.h /usr/include/string.h -gemma.o: /usr/include/strings.h /usr/include/ctype.h /usr/include/_ctype.h -gemma.o: /usr/include/runetype.h gemma.h /usr/X11R6/include/gtk-2.0/gtk/gtk.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdk.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcairo.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcolor.h -gemma.o: /usr/local/include/cairo/cairo.h -gemma.o: /usr/local/include/cairo/cairo-features.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdktypes.h -gemma.o: /usr/local/include/glib-2.0/glib.h -gemma.o: /usr/local/include/glib-2.0/glib/galloca.h -gemma.o: /usr/local/include/glib-2.0/glib/gtypes.h -gemma.o: /usr/local/include/glib-2.0/glibconfig.h -gemma.o: /usr/local/include/glib-2.0/glib/gmacros.h /usr/include/stddef.h -gemma.o: /usr/include/limits.h /usr/include/sys/limits.h -gemma.o: /usr/include/machine/_limits.h /usr/include/sys/syslimits.h -gemma.o: /usr/include/float.h /usr/local/include/glib-2.0/glib/garray.h -gemma.o: /usr/local/include/glib-2.0/glib/gasyncqueue.h -gemma.o: /usr/local/include/glib-2.0/glib/gthread.h -gemma.o: /usr/local/include/glib-2.0/glib/gerror.h -gemma.o: /usr/local/include/glib-2.0/glib/gquark.h -gemma.o: /usr/local/include/glib-2.0/glib/gatomic.h -gemma.o: /usr/local/include/glib-2.0/glib/gbacktrace.h -gemma.o: /usr/local/include/glib-2.0/glib/gcache.h -gemma.o: /usr/local/include/glib-2.0/glib/glist.h -gemma.o: /usr/local/include/glib-2.0/glib/gmem.h -gemma.o: /usr/local/include/glib-2.0/glib/gslice.h -gemma.o: /usr/local/include/glib-2.0/glib/gcompletion.h -gemma.o: /usr/local/include/glib-2.0/glib/gconvert.h -gemma.o: /usr/local/include/glib-2.0/glib/gdataset.h -gemma.o: /usr/local/include/glib-2.0/glib/gdate.h /usr/include/time.h -gemma.o: /usr/include/sys/timespec.h /usr/local/include/glib-2.0/glib/gdir.h -gemma.o: /usr/local/include/glib-2.0/glib/gfileutils.h -gemma.o: /usr/local/include/glib-2.0/glib/ghash.h -gemma.o: /usr/local/include/glib-2.0/glib/ghook.h -gemma.o: /usr/local/include/glib-2.0/glib/giochannel.h -gemma.o: /usr/local/include/glib-2.0/glib/gmain.h -gemma.o: /usr/local/include/glib-2.0/glib/gslist.h -gemma.o: /usr/local/include/glib-2.0/glib/gstring.h -gemma.o: /usr/local/include/glib-2.0/glib/gunicode.h -gemma.o: /usr/local/include/glib-2.0/glib/gutils.h /usr/include/stdarg.h -gemma.o: /usr/local/include/glib-2.0/glib/gkeyfile.h -gemma.o: /usr/local/include/glib-2.0/glib/gmappedfile.h -gemma.o: /usr/local/include/glib-2.0/glib/gmarkup.h -gemma.o: /usr/local/include/glib-2.0/glib/gmessages.h -gemma.o: /usr/local/include/glib-2.0/glib/gnode.h -gemma.o: /usr/local/include/glib-2.0/glib/goption.h -gemma.o: /usr/local/include/glib-2.0/glib/gpattern.h -gemma.o: /usr/local/include/glib-2.0/glib/gprimes.h -gemma.o: /usr/local/include/glib-2.0/glib/gqsort.h -gemma.o: /usr/local/include/glib-2.0/glib/gqueue.h -gemma.o: /usr/local/include/glib-2.0/glib/grand.h -gemma.o: /usr/local/include/glib-2.0/glib/grel.h -gemma.o: /usr/local/include/glib-2.0/glib/gscanner.h -gemma.o: /usr/local/include/glib-2.0/glib/gshell.h -gemma.o: /usr/local/include/glib-2.0/glib/gspawn.h -gemma.o: /usr/local/include/glib-2.0/glib/gstrfuncs.h -gemma.o: /usr/local/include/glib-2.0/glib/gthreadpool.h -gemma.o: /usr/local/include/glib-2.0/glib/gtimer.h -gemma.o: /usr/local/include/glib-2.0/glib/gtree.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-attributes.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-font.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-coverage.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-types.h -gemma.o: /usr/local/include/glib-2.0/glib-object.h -gemma.o: /usr/local/include/glib-2.0/gobject/gboxed.h -gemma.o: /usr/local/include/glib-2.0/gobject/gtype.h -gemma.o: /usr/local/include/glib-2.0/gobject/genums.h -gemma.o: /usr/local/include/glib-2.0/gobject/gobject.h -gemma.o: /usr/local/include/glib-2.0/gobject/gvalue.h -gemma.o: /usr/local/include/glib-2.0/gobject/gparam.h -gemma.o: /usr/local/include/glib-2.0/gobject/gclosure.h -gemma.o: /usr/local/include/glib-2.0/gobject/gsignal.h -gemma.o: /usr/local/include/glib-2.0/gobject/gmarshal.h -gemma.o: /usr/local/include/glib-2.0/gobject/gparamspecs.h -gemma.o: /usr/local/include/glib-2.0/gobject/gsourceclosure.h -gemma.o: /usr/local/include/glib-2.0/gobject/gtypemodule.h -gemma.o: /usr/local/include/glib-2.0/gobject/gtypeplugin.h -gemma.o: /usr/local/include/glib-2.0/gobject/gvaluearray.h -gemma.o: /usr/local/include/glib-2.0/gobject/gvaluetypes.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-break.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-item.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-context.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-fontmap.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-fontset.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-engine.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-script.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-enum-types.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-layout.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-glyph-item.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-tabs.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pango-renderer.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdkconfig.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixbuf.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkrgb.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h -gemma.o: /usr/local/include/glib-2.0/gmodule.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h -gemma.o: /usr/X11R6/include/pango-1.0/pango/pangocairo.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkcursor.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplay.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkevents.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdnd.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkinput.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdrawable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkgc.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkenumtypes.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkfont.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkimage.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkkeys.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkdisplaymanager.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpango.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkpixmap.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkproperty.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkregion.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkscreen.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkselection.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkspawn.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkvisual.h -gemma.o: /usr/X11R6/include/gtk-2.0/gdk/gdkwindow.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaboutdialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwindow.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelgroup.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkenums.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbin.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcontainer.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkwidget.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkobject.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypeutils.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktypebuiltins.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdebug.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkadjustment.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstyle.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtksettings.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrc.h -gemma.o: /usr/local/include/atk-1.0/atk/atkobject.h -gemma.o: /usr/local/include/atk-1.0/atk/atkstate.h -gemma.o: /usr/local/include/atk-1.0/atk/atkrelationtype.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccellabel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtklabel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmisc.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenushell.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccelmap.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaccessible.h -gemma.o: /usr/local/include/atk-1.0/atk/atk.h -gemma.o: /usr/local/include/atk-1.0/atk/atkaction.h -gemma.o: /usr/local/include/atk-1.0/atk/atkcomponent.h -gemma.o: /usr/local/include/atk-1.0/atk/atkutil.h -gemma.o: /usr/local/include/atk-1.0/atk/atkdocument.h -gemma.o: /usr/local/include/atk-1.0/atk/atkeditabletext.h -gemma.o: /usr/local/include/atk-1.0/atk/atktext.h -gemma.o: /usr/local/include/atk-1.0/atk/atkgobjectaccessible.h -gemma.o: /usr/local/include/atk-1.0/atk/atkhyperlink.h -gemma.o: /usr/local/include/atk-1.0/atk/atkhypertext.h -gemma.o: /usr/local/include/atk-1.0/atk/atkimage.h -gemma.o: /usr/local/include/atk-1.0/atk/atknoopobject.h -gemma.o: /usr/local/include/atk-1.0/atk/atknoopobjectfactory.h -gemma.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -gemma.o: /usr/local/include/atk-1.0/atk/atkregistry.h -gemma.o: /usr/local/include/atk-1.0/atk/atkobjectfactory.h -gemma.o: /usr/local/include/atk-1.0/atk/atkrelation.h -gemma.o: /usr/local/include/atk-1.0/atk/atkrelationset.h -gemma.o: /usr/local/include/atk-1.0/atk/atkselection.h -gemma.o: /usr/local/include/atk-1.0/atk/atkstateset.h -gemma.o: /usr/local/include/atk-1.0/atk/atkstreamablecontent.h -gemma.o: /usr/local/include/atk-1.0/atk/atktable.h -gemma.o: /usr/local/include/atk-1.0/atk/atkvalue.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaction.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkactiongroup.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitemfactory.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkalignment.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkarrow.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkaspectframe.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkframe.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbindings.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimage.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcalendar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtksignal.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmarshal.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelllayout.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderer.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcelleditable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeviewcolumn.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreesortable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderercombo.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertext.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrendererprogress.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellrenderertoggle.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcellview.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktogglebutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcheckmenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclipboard.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkselection.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkclist.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscrollbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrollbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkrange.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscrollbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorsel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcolorseldialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombo.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcombobox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeview.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdnd.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcomboboxentry.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkctree.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkcurve.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkdrawingarea.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeditable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentry.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontext.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkentrycompletion.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkliststore.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelfilter.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkeventbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkexpander.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilesel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfixed.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilefilter.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserdialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooser.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfilechooserwidget.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkfontsel.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgamma.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkgc.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhandlebox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhbbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhpaned.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpaned.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhruler.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkruler.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhscale.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscale.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkhseparator.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparator.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconfactory.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkicontheme.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkiconview.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimagemenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimcontextsimple.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkimmulticontext.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinputdialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkinvisible.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtklayout.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtklist.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtklistitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmain.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenubar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenutoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmenu.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktooltips.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmessagedialog.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkmodules.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtknotebook.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoldeditable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkoptionmenu.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpixmap.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkplug.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtksocket.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkpreview.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogress.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkprogressbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradioaction.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggleaction.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiobutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiomenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkradiotoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkscrolledwindow.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkviewport.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatormenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkseparatortoolitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtksizegroup.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkspinbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstatusbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkstock.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktearoffmenuitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktext.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextbuffer.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttagtable.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktexttag.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextiter.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextchild.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextmark.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktextview.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktipsquery.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoggletoolbutton.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolbar.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktoolitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktree.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreednd.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeitem.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreemodelsort.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreeselection.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtktreestore.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkuimanager.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvbbox.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkversion.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvpaned.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvruler.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvscale.h -gemma.o: /usr/X11R6/include/gtk-2.0/gtk/gtkvseparator.h z80.h expr.h -gemma.o: gtkutil.h support.h + rm -f emma $(BASE_O) $(EMMA_O) core *.hex *.lbl diff --git a/gemma.c b/gemma.c deleted file mode 100644 index ec05b5d..0000000 --- a/gemma.c +++ /dev/null @@ -1,1018 +0,0 @@ -/* - - GEMMA - Z80 testbed - - Copyright (C) 2006 Ian Cowburn (ianc@noddybox.demon.co.uk) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - ------------------------------------------------------------------------- - -*/ -static const char id[]="$Id$"; - -#include <stdlib.h> -#include <stdio.h> -#include <signal.h> -#include <string.h> -#include <ctype.h> - -#include "gemma.h" -#include "expr.h" -#include "gtkutil.h" -#include "support.h" - -#define HI(w) (((w)&0xff00)>>8) -#define LO(w) ((w)&0xff) -#define MK(h,l) (((Z80Word)(h)<<8)|(l)) - -/* ---------------------------------------- GLOBALS -*/ -static Z80 *z80; -Z80Byte Z80_MEMORY[0x10000]; - -static sig_atomic_t stop=FALSE; - -static Z80Label *label=NULL; - -static GtkWidget *run_button; -static GtkWidget *step_button; -static GtkWidget *step_over_button; -static GtkWidget *stop_button; -static GtkWidget *run_until_button; - -static GtkWidget *breakpoint_text; - -static GtkWidget *top_window; -static GtkWidget *regview; -static GtkWidget *memview; -static GtkWidget *viewreg; -static GtkWidget *logview; -static GtkWidget *assemview; - -static GtkWidget *memview_combo; -static GtkWidget *memview_check; - -#define RUNNING(t) gtk_widget_set_sensitive(run_button,!t); \ - gtk_widget_set_sensitive(step_button,!t); \ - gtk_widget_set_sensitive(step_over_button,!t); \ - gtk_widget_set_sensitive(run_until_button,!t); \ - gtk_widget_set_sensitive(stop_button,t); - - -/* ---------------------------------------- PROTOS -*/ -static void Log(const char *format, ...); -static Z80Word Address(const char *p); -static void *Malloc(size_t len); -static void *Realloc(void *p, size_t len); - - -/* ---------------------------------------- PC BUFFER -*/ -#define PC_BUFFER 100 -static Z80Word pc_buffer[PC_BUFFER]={0}; -static int pc_head=0; - -static Z80Word Get_PC(int back) -{ - return pc_buffer[(pc_head+back+1)%PC_BUFFER]; -} - -static void Step(void) -{ - pc_buffer[pc_head]=z80->PC; - - if (pc_head) - pc_head--; - else - pc_head=PC_BUFFER-1; - - Z80SingleStep(z80); -} - -/* ---------------------------------------- DYNAMIC STRINGS -*/ - -typedef struct -{ - size_t len; - char *text; -} *DString; - - -#define BLOCKSIZE 512 - - -DString DSInit(void) -{ - DString ds; - - ds=Malloc(sizeof *ds); - - ds->len=0; - ds->text=Malloc(BLOCKSIZE); - ds->text[0]=0; - - return ds; -} - - -void DSFree(DString ds) -{ - if (ds) - { - free(ds->text); - free(ds); - } -} - - -DString DSAddChar(DString to, char c) -{ - if (((to->len+2)%BLOCKSIZE)==0) - { - to->text=Realloc(to->text,(((to->len+2)/BLOCKSIZE)+1)*BLOCKSIZE); - } - - to->text[to->len++]=c; - to->text[to->len]=0; - - return to; -} - - -DString DSAdd(DString to, const char *from) -{ - to->len+=strlen(from); - to->text=Realloc(to->text,(((to->len+1)/BLOCKSIZE)+1)*BLOCKSIZE); - - strcat(to->text,from); - - return to; -} - - -/* ---------------------------------------- PRIVATE FUNCTIONS -*/ -static void Log(const char *format, ...) -{ - static char buff[4096]; - va_list va; - - va_start(va,format); - vsprintf(buff,format,va); - va_end(va); - - AppendText(logview,buff); -} - - -static int StrEq(const char *a, const char *b) -{ - while(*a && *b && tolower(*a)==tolower(*b)) - { - a++; - b++; - } - - if (*a || *b) - return FALSE; - else - return TRUE; -} - - -static int Expand(void *client, const char *p, long *res) -{ - int ok=TRUE; - - if (StrEq(p,"AF")) - *res=z80->AF.w; - else if (StrEq(p,"BC")) - *res=z80->BC.w; - else if (StrEq(p,"DE")) - *res=z80->DE.w; - else if (StrEq(p,"HL")) - *res=z80->HL.w; - else if (StrEq(p,"IX")) - *res=z80->IX.w; - else if (StrEq(p,"IY")) - *res=z80->IY.w; - else if (StrEq(p,"SP")) - *res=z80->SP; - else if (StrEq(p,"PC")) - *res=z80->PC; - else if (StrEq(p,"A")) - *res=HI(z80->AF.w); - else if (StrEq(p,"F")) - *res=LO(z80->AF.w); - else if (StrEq(p,"B")) - *res=HI(z80->BC.w); - else if (StrEq(p,"C")) - *res=LO(z80->BC.w); - else if (StrEq(p,"D")) - *res=HI(z80->DE.w); - else if (StrEq(p,"E")) - *res=LO(z80->DE.w); - else if (StrEq(p,"H")) - *res=HI(z80->HL.w); - else if (StrEq(p,"L")) - *res=LO(z80->HL.w); - else if (StrEq(p,"AF_")) - *res=z80->AF_; - else if (StrEq(p,"BC_")) - *res=z80->BC_; - else if (StrEq(p,"DE_")) - *res=z80->DE_; - else if (StrEq(p,"HL_")) - *res=z80->HL_; - else if (StrEq(p,"A_")) - *res=HI(z80->AF_); - else if (StrEq(p,"F_")) - *res=LO(z80->AF_); - else if (StrEq(p,"B_")) - *res=HI(z80->BC_); - else if (StrEq(p,"C_")) - *res=LO(z80->BC_); - else if (StrEq(p,"D_")) - *res=HI(z80->DE_); - else if (StrEq(p,"E_")) - *res=LO(z80->DE_); - else if (StrEq(p,"H_")) - *res=HI(z80->HL_); - else if (StrEq(p,"L_")) - *res=LO(z80->HL_); - else if (StrEq(p,"IM")) - *res=z80->IM; - else if (StrEq(p,"R")) - *res=z80->R; - else if (StrEq(p,"IFF1")) - *res=z80->IFF1; - else if (StrEq(p,"IFF2")) - *res=z80->IFF2; - else if (p[0]=='@') - { - Z80Word n; - - n=Address(p+1); - *res=Z80_MEMORY[n]; - } - else if (p[0]=='#') - { - Z80Word n; - - n=Address(p+1); - *res=MK(Z80_MEMORY[n+1],Z80_MEMORY[n]); - } - else /* Check for labels */ - { - int f; - - ok=FALSE; - - for(f=0;label && label[f].label;f++) - { - if (StrEq(p,label[f].label)) - { - *res=label[f].address; - ok=TRUE; - break; - } - } - } - - return ok; -} - - -static Z80Word Address(const char *p) -{ - long e=0; - - if (!ExprEval(p,&e,Expand,z80)) - Log("%s\n",ExprError()); - - return (Z80Word)e; -} - - -static void *Malloc(size_t len) -{ - void *n; - - n=malloc(len); - - if (!n) - { - fprintf(stderr,"malloc failed\n"); - exit(EXIT_FAILURE); - } - - return n; -} - -static void *Realloc(void *p, size_t len) -{ - void *n; - - n=realloc(p,len); - - if (!n) - { - fprintf(stderr,"realloc failed\n"); - exit(EXIT_FAILURE); - } - - return n; -} - -static char *StrCopy(const char *p) -{ - return strcpy(Malloc(strlen(p)+1),p); -} - -static const int ToHex(char c) -{ - c=toupper(c); - - if (c>='0' && c<='9') - return c-'0'; - - if (c>='A' && c<='F') - return c-'A'+10; - - return 0; -} - -static void FlagString(DString s, Z80Byte flag, Z80Byte last) -{ - static char *c[]={"S","Z","5","H","3","P","N","C"}; - int f; - - DSAdd(s,"Flags: "); - - for(f=0;f<8;f++) - { - int b=1<<(7-f); - - if ((last&b)!=(flag&b)) - { - DSAdd(s,"<span foreground=\"white\" background=\"black\">"); - } - - if (flag&b) - { - DSAdd(s,c[f]); - } - else - { - DSAdd(s,"-"); - } - - if ((last&b)!=(flag&b)) - { - DSAdd(s,"</span>"); - } - } -} - - -static void DisplayState(DString s, const char *label, - int width, Z80Val val, Z80Val last) -{ - static char buff[128]; - - sprintf(buff,"%s: %s%*.*lX</span>", - label, - (last==val) ? - "<span>" : - "<span foreground=\"white\" background=\"black\">", - width,width, - val); - - DSAdd(s,buff); -} - - -/* ---------------------------------------- MEMORY -*/ -#ifndef ENABLE_ARRAY_MEMORY -static Z80Byte Peek(Z80 *z80, Z80Word addr) -{ - return Z80_MEMORY[addr]; -} - -static void Poke(Z80 *z80, Z80Word addr, Z80Byte b) -{ - Z80_MEMORY[addr]=b; -} -#endif - -static Z80Byte ReadPort(Z80 *z80, Z80Word addr) -{ - Z80Byte b=0xff; - Z80Word ptr; - char expr[1024]; - char *p; - - switch(addr&0xff) - { - case 0x80: - ptr=MK(Z80_MEMORY[1],Z80_MEMORY[0]); - - p=expr; - - while(Z80_MEMORY[ptr]) - *p++=Z80_MEMORY[ptr++]; - - *p=0; - - b=(Z80Byte)Address(expr); - - /* Log("%s -> %u\n",expr,b); */ - - break; - - case 0x81: - ptr=z80->DE.w; - - p=expr; - - while(Z80_MEMORY[ptr]) - *p++=Z80_MEMORY[ptr++]; - - *p=0; - - b=(Z80Byte)Address(expr); - - break; - - default: - Log("Read from port 0x%4.4x\n",(int)addr); - break; - } - - return b; -} - - -static void WritePort(Z80 *z80, Z80Word addr, Z80Byte val) -{ - Z80Word de; - - de=z80->DE.w; - - switch(addr&0xff) - { - case 0x80: - Log("%c",val); - fflush(stdout); - break; - - case 0x81: - Log("Stop requested\n"); - stop=TRUE; - break; - - case 0x82: - while(Z80_MEMORY[de]!='$') - { - if (isspace(Z80_MEMORY[de]) || - isprint(Z80_MEMORY[de])) - Log("%c",Z80_MEMORY[de]); - - de++; - } - fflush(stdout); - break; - - case 0x83: - while(Z80_MEMORY[de]) - { - Log("%c",Z80_MEMORY[de]); - de++; - } - fflush(stdout); - break; - - default: - Log("Wrote 0x%2.2x to port 0x%4.4x\n",(int)val,(int)addr); - break; - } -} - - -static int Halt(Z80 *z80, Z80Val v) -{ - - Log("**** Processor halted\n"); - DialogOK("Processor halted\n"); - stop=TRUE; - return FALSE; -} - - -/* ---------------------------------------- EXPORTED FUNCTIONS -*/ -void GEMMA_UpdateDisplay(GEMMA_View view) -{ - if (view&UPDATE_ASSEM_VIEW) - { - Z80Word pc; - DString ds; - char buff[10]; - int f; - - ds=DSInit(); - DSAdd(ds,"<tt><small>"); - - for(f=10;f>=0;f--) - { - pc=Get_PC(f); - - sprintf(buff,"%4.4X: ",pc); - DSAdd(ds,buff); - DSAdd(ds,Z80Disassemble(z80,&pc)); - DSAddChar(ds,'\n'); - } - - pc=z80->PC; - - for(f=0;f<12;f++) - { - if (f==0) - { - DSAdd(ds,"<span foreground=\"white\" background=\"black\">"); - } - - sprintf(buff,"%4.4X: ",pc); - DSAdd(ds,buff); - - DSAdd(ds,Z80Disassemble(z80,&pc)); - - if (f==0) - { - DSAdd(ds,"</span>"); - } - - DSAddChar(ds,'\n'); - } - - DSAdd(ds,"</small></tt>"); - gtk_label_set_markup(GTK_LABEL(assemview),ds->text); - - DSFree(ds); - } - - if (view&UPDATE_REG_VIEW) - { - static int reg_once=FALSE; - static Z80 last_reg; - DString ds; - - ds=DSInit(); - - if (!reg_once) - { - last_reg=*z80; - reg_once=TRUE; - } - - DSAdd(ds,"<tt>"); - - DisplayState(ds,"A ",2,HI(z80->AF.w),HI(last_reg.AF.w)); - DSAdd(ds," "); - FlagString(ds,LO(z80->AF.w),LO(last_reg.AF.w)); - DSAdd(ds,"\n"); - - DisplayState(ds,"BC ",4,z80->BC.w,last_reg.BC.w); - DSAdd(ds," "); - DisplayState(ds,"DE ",4,z80->DE.w,last_reg.DE.w); - DSAdd(ds," "); - DisplayState(ds,"HL ",4,z80->HL.w,last_reg.HL.w); - DSAdd(ds,"\n"); - - DisplayState(ds,"SP ",4,z80->SP,last_reg.SP); - DSAdd(ds," "); - DisplayState(ds,"IX ",4,z80->IX.w,last_reg.IX.w); - DSAdd(ds," "); - DisplayState(ds,"IY ",4,z80->IY.w,last_reg.IY.w); - DSAdd(ds,"\n\n"); - - DisplayState(ds,"A' ",2,HI(z80->AF_),HI(last_reg.AF_)); - DSAdd(ds," "); - FlagString(ds,LO(z80->AF_),LO(last_reg.AF_)); - DSAdd(ds,"\n"); - - DisplayState(ds,"BC'",4,z80->BC_,last_reg.BC_); - DSAdd(ds," "); - DisplayState(ds,"DE'",4,z80->DE_,last_reg.DE_); - DSAdd(ds," "); - DisplayState(ds,"HL'",4,z80->HL_,last_reg.HL_); - DSAdd(ds,"\n\n"); - - DisplayState(ds,"PC ",4,z80->PC,last_reg.PC); - DSAdd(ds," "); - DisplayState(ds,"CYCLE",8,Z80Cycles(z80),0); - DSAdd(ds,"\n\n"); - - DisplayState(ds,"R ",2,z80->R,last_reg.R); - DSAdd(ds," "); - DisplayState(ds,"IFF1",1,z80->IFF1,last_reg.IFF1); - DSAdd(ds," "); - DisplayState(ds,"IFF2",1,z80->IFF2,last_reg.IFF2); - DSAdd(ds,"\n"); - - DisplayState(ds,"IM ",1,z80->IM,last_reg.IM); - DSAdd(ds," "); - DisplayState(ds,"I",1,z80->I,last_reg.I); - DSAdd(ds,"\n"); - - DSAdd(ds,"</tt>"); - - gtk_label_set_markup(GTK_LABEL(regview),ds->text); - - DSFree(ds); - - last_reg=*z80; - } - - if (view&UPDATE_MEM_VIEW) - { - Z80Word addr; - Z80Word orig; - DString ds; - int f; - gboolean as_words; - - ds=DSInit(); - - as_words=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(memview_check)); - - switch(gtk_combo_box_get_active(GTK_COMBO_BOX(memview_combo))) - { - case 0: - addr=z80->HL.w; - break; - case 1: - addr=z80->SP; - as_words=TRUE; - break; - case 2: - addr=z80->IX.w; - break; - case 3: - addr=z80->IY.w; - break; - case 4: - addr=z80->BC.w; - break; - case 5: - addr=z80->DE.w; - break; - default: - addr=z80->PC; - break; - } - - DSAdd(ds,"<tt><small>"); - - orig=addr; - addr-=6*8; - - for(f=0;f<13;f++) - { - DString asc; - char buff[10]; - Z80Word off; - - asc=DSInit(); - - sprintf(buff,"%4.4X: ",addr); - DSAdd(ds,buff); - - for(off=0;off<8;off++) - { - gchar *p; - p=g_markup_printf_escaped - ("%c",isprint(Z80_MEMORY[addr+off]) ? Z80_MEMORY[addr+off] : '.'); - DSAdd(asc,p); - g_free(p); - } - - for(off=0;off<8;off+=(as_words ? 2:1)) - { - Z80Word a; - - a=addr+off; - - if (a==orig) - { - DSAdd(ds,"<span foreground=\"white\" " - "background=\"black\">"); - } - - if (as_words) - { - sprintf(buff,"%4.4X ",MK(Z80_MEMORY[a+1],Z80_MEMORY[a])); - } - else - { - sprintf(buff,"%2.2X ",Z80_MEMORY[a]); - } - - DSAdd(ds,buff); - - if (a==orig) - { - DSAdd(ds,"</span>"); - } - } - - DSAdd(ds," "); - DSAdd(ds,asc->text); - DSAdd(ds,"\n"); - - DSFree(asc); - - addr+=8; - } - - DSAdd(ds,"</small></tt>"); - - gtk_label_set_markup(GTK_LABEL(memview),ds->text); - - DSFree(ds); - } -} - - -void GEMMA_LoadHEX(const char *path) -{ - FILE *fp; - char buff[1024]; - int done=FALSE; - - if (!(fp=fopen(path,"r"))) - { - Log("Failed to open %s\n",path); - return; - } - - while(!done) - { - if (!fgets(buff,sizeof buff,fp)) - { - Log("Missing EOF record\n"); - done=TRUE; - } - - if (!done && buff[0]!=':') - { - Log("Invalid Intel HEX file\n"); - done=TRUE; - } - - if (!done && buff[8]=='1') - { - Log("<EOF>\n"); - done=TRUE; - } - - if (!done) - { - Z80Word addr; - int len; - int f; - - len=ToHex(buff[1])<<4|ToHex(buff[2]); - - addr=ToHex(buff[3])<<12|ToHex(buff[4])<<8| - ToHex(buff[5])<<4|ToHex(buff[6]); - - Log("Segment of 0x%2.2x bytes at address 0x%4.4x\n",len,addr); - - for(f=0;f<len;f++) - { - Z80Byte b; - - b=ToHex(buff[f*2+9])<<4|ToHex(buff[f*2+10]); - Z80_MEMORY[addr++]=b; - } - } - } - - fclose(fp); - - GEMMA_UpdateDisplay(UPDATE_ALL_VIEWS); -} - - -void GEMMA_LoadLabels(const char *path) -{ - FILE *fp; - int f; - char buff[512]; - - if (!(fp=fopen(path,"r"))) - { - Log("Failed to open %s\n",path); - return; - } - - for(f=0;label && label[f].label;f++) - free((void *)label[f].label); - - free(label); - label=NULL; - f=0; - - while(fgets(buff,sizeof buff,fp)) - { - char *name=NULL; - char *addr=NULL; - - if (strlen(buff) && buff[strlen(buff)-1]=='\n') - buff[strlen(buff)-1]=0; - - name=strtok(buff," \t"); - - if (name) - addr=strtok(NULL," \t"); - - if (name && addr) - { - label=Realloc(label,sizeof(*label)*(f+2)); - - label[f].label=StrCopy(name); - label[f].address=Address(addr); - - f++; - } - } - - if (label) - label[f].label=NULL; - - Z80SetLabels(label); - - fclose(fp); -} - - -void GEMMA_Step(void) -{ - Step(); - GEMMA_UpdateDisplay(UPDATE_ALL_VIEWS); -} - - -void GEMMA_StepOver(void) -{ - Z80Word next; - - stop=FALSE; - - next=z80->PC; - Z80Disassemble(z80,&next); - - RUNNING(TRUE); - - while(z80->PC!=next && !stop) - { - Step(); - gtk_main_iteration_do(FALSE); - } - - GEMMA_UpdateDisplay(UPDATE_ALL_VIEWS); - - RUNNING(FALSE); -} - - -void GEMMA_Run(void) -{ - stop=FALSE; - - RUNNING(TRUE); - - while(!stop) - { - GEMMA_Step(); - gtk_main_iteration_do(FALSE); - } - - RUNNING(FALSE); -} - - -void GEMMA_RunUntil(void) -{ - char *expr; - - expr=StrCopy(gtk_entry_get_text(GTK_ENTRY(breakpoint_text))); - - stop=FALSE; - - RUNNING(TRUE); - - while(!stop) - { - long e; - - if (!ExprEval(expr,&e,Expand,z80)) - { - DialogOK("Error evaluating express:\n%s",ExprError()); - stop=TRUE; - continue; - } - - if (e) - { - DialogOK("%s TRUE",expr); - stop=TRUE; - continue; - } - - GEMMA_Step(); - gtk_main_iteration_do(FALSE); - } - - free(expr); - - RUNNING(FALSE); -} - - -void GEMMA_Stop(void) -{ - stop=TRUE; -} - - -void GEMMA_Init(GtkWidget *top) -{ -#ifdef ENABLE_ARRAY_MEMORY - z80=Z80Init(ReadPort,WritePort); -#else - z80=Z80Init(Peek,Poke,ReadPort,WritePort,Peek); -#endif - z80->PC=0x100; - - if (!z80) - { - fprintf(stderr,"Failed to initialise Z80\n"); - exit(EXIT_FAILURE); - } - - Z80LodgeCallback(z80,eZ80_Halt,Halt); - - top_window=top; - regview=lookup_widget(top_window,"register_view"); - memview=lookup_widget(top_window,"memory_view"); - viewreg=lookup_widget(top_window,"memory_view_choice"); - logview=lookup_widget(top_window,"log_view"); - assemview=lookup_widget(top_window,"assem_view"); - - memview_combo=lookup_widget(top_window,"memory_view_choice"); - memview_check=lookup_widget(top_window,"viewmode_check"); - - breakpoint_text=lookup_widget(top_window,"breakpoint_text"); - - run_button=lookup_widget(top_window,"run_button"); - step_button=lookup_widget(top_window,"step_button"); - step_over_button=lookup_widget(top_window,"step_over_button"); - stop_button=lookup_widget(top_window,"stop_button"); - run_until_button=lookup_widget(top_window,"run_until_button"); - - gtk_combo_box_set_active(GTK_COMBO_BOX(memview_combo),0); -} - - -void GEMMA_Interrupt(int nmi) -{ - if (nmi) - { - Z80NMI(z80); - } - else - { - Z80Interrupt(z80,0); - } -} - - -/* END OF FILE */ diff --git a/gemma.glade b/gemma.glade deleted file mode 100644 index 59201da..0000000 --- a/gemma.glade +++ /dev/null @@ -1,422 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> - -<widget class="GtkWindow" id="top_window"> - <property name="width_request">900</property> - <property name="height_request">600</property> - <property name="visible">True</property> - <property name="title" translatable="yes">GEMMA</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="default_width">800</property> - <property name="default_height">600</property> - <property name="resizable">False</property> - <property name="destroy_with_parent">True</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <signal name="destroy" handler="CloseApplication" last_modification_time="Wed, 30 Aug 2006 22:25:44 GMT"/> - - <child> - <widget class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="assem_view"> - <property name="width_request">550</property> - <property name="height_request">80</property> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Assembler View</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.0299999993294</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="register_view"> - <property name="width_request">350</property> - <property name="height_request">80</property> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Register View</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="height_request">1</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkVBox" id="vbox5"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHBox" id="hbox3"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkComboBox" id="memory_view_choice"> - <property name="visible">True</property> - <property name="items" translatable="yes">HL -SP -IX -IY -BC -DE -PC</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <signal name="changed" handler="OnMemoryViewChoice" last_modification_time="Tue, 29 Aug 2006 23:31:24 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkCheckButton" id="viewmode_check"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">View as Words</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="OnViewMode" last_modification_time="Thu, 31 Aug 2006 22:47:09 GMT"/> - </widget> - <packing> - <property name="padding">3</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="memory_view"> - <property name="height_request">200</property> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Memory View</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.0299999993294</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTextView" id="log_view"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="overwrite">False</property> - <property name="accepts_tab">True</property> - <property name="justification">GTK_JUSTIFY_LEFT</property> - <property name="wrap_mode">GTK_WRAP_CHAR</property> - <property name="cursor_visible">False</property> - <property name="pixels_above_lines">0</property> - <property name="pixels_below_lines">0</property> - <property name="pixels_inside_wrap">0</property> - <property name="left_margin">0</property> - <property name="right_margin">0</property> - <property name="indent">0</property> - <property name="text" translatable="yes"></property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox4"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="label" translatable="yes">Run Until Expression:</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">8</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="breakpoint_text"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHButtonBox" id="hbuttonbox1"> - <property name="border_width">4</property> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_SPREAD</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkButton" id="run_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Run</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnRun" last_modification_time="Mon, 28 Aug 2006 20:30:42 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="step_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Step</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnStep" last_modification_time="Mon, 28 Aug 2006 20:30:34 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="step_over_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Step Over</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnStepOver" last_modification_time="Mon, 28 Aug 2006 20:30:21 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="stop_button"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Stop</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnStop" last_modification_time="Mon, 28 Aug 2006 20:30:16 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="load_hex_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Load HEX</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnLoadHEX" last_modification_time="Wed, 30 Aug 2006 22:29:04 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="load_labels_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Load Labels</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnLoadLabels" last_modification_time="Mon, 28 Aug 2006 20:30:05 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="run_until_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Run Until...</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnRunUntil" last_modification_time="Mon, 28 Aug 2006 20:30:00 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkButton" id="quit_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Quit</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="OnQuit" last_modification_time="Mon, 28 Aug 2006 20:29:15 GMT"/> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/gemma.gladep b/gemma.gladep deleted file mode 100644 index 1e7dfaf..0000000 --- a/gemma.gladep +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd"> - -<glade-project> - <name>GEMMA</name> - <program_name>gemma</program_name> - <source_directory>.</source_directory> - <gnome_support>FALSE</gnome_support> - <output_build_files>FALSE</output_build_files> - <backup_source_files>FALSE</backup_source_files> -</glade-project> diff --git a/gemma.h b/gemma.h deleted file mode 100644 index be0698f..0000000 --- a/gemma.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - - GEMMA - Z80 testbed - - Copyright (C) 2006 Ian Cowburn (ianc@noddybox.demon.co.uk) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - ------------------------------------------------------------------------- - - $Id$ - -*/ - -#ifndef GEMMA_H -#define GEMMA_H "$Id$" - -#include <gtk/gtk.h> -#include "z80.h" - -typedef enum -{ - UPDATE_ASSEM_VIEW=0x01, - UPDATE_REG_VIEW=0x02, - UPDATE_MEM_VIEW=0x04, - UPDATE_ALL_VIEWS=UPDATE_ASSEM_VIEW|UPDATE_REG_VIEW|UPDATE_MEM_VIEW -} GEMMA_View; - -void GEMMA_Init(GtkWidget *top); -void GEMMA_LoadHEX(const char *path); -void GEMMA_LoadLabels(const char *path); -void GEMMA_UpdateDisplay(GEMMA_View view); -void GEMMA_Step(void); -void GEMMA_StepOver(void); -void GEMMA_Run(void); -void GEMMA_RunUntil(void); -void GEMMA_Stop(void); -void GEMMA_Interrupt(int nmi); - -#endif - -/* END OF FILE */ - - diff --git a/gtkutil.c b/gtkutil.c deleted file mode 100644 index cbcf2f4..0000000 --- a/gtkutil.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - - z80 - Z80 Emulation - - Copyright (C) 2006 Ian Cowburn (ianc@noddybox.demon.co.uk) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - ------------------------------------------------------------------------- - - Simple dialogs - - $Id$ - -*/ - -/* ---------------------------------------- INCLUDES -*/ -#include <stdio.h> -#include <string.h> -#include <stdarg.h> - -#include "gtkutil.h" - - -/* ---------------------------------------- CONSTS -*/ - -/* ---------------------------------------- GLOBALS -*/ -static GtkWidget *parent; -static GtkWidget *dialog; - -static int dial_done=FALSE; -static int selected=FALSE; - - -/* ---------------------------------------- PRIVATE FUNCTIONS -*/ -static void Callback(GtkWidget *w, gpointer data) -{ - dial_done=TRUE; - selected=(int)data; - gtk_widget_destroy(dialog); -} - - -static gint DestroyCB(GtkWidget *w, GdkEvent *ev, gpointer data) -{ - Callback(w,data); - return TRUE; -} - - -/* ---------------------------------------- EXPORTED FUNCTIONS -*/ -void DialogParent(GtkWidget *w) -{ - parent=w; -} - - -void DialogOK(const char *format, ...) -{ - va_list va; - char text[1024]; - GtkWidget *button; - GtkWidget *label; - - va_start(va,format); - vsnprintf(text,sizeof text,format,va); - va_end(va); - - dialog=gtk_dialog_new(); - gtk_window_set_title (GTK_WINDOW (dialog), "GEMMA -- Alert"); - button=gtk_button_new_with_label("OK"); - label=gtk_label_new(text); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), - button,TRUE,TRUE,0); - - gtk_container_set_border_width(GTK_CONTAINER(dialog),10); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), - label,TRUE,TRUE,0); - - gtk_signal_connect_object(GTK_OBJECT (button),"clicked", - GTK_SIGNAL_FUNC (gtk_widget_destroy), - GTK_OBJECT (dialog)); - - gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(parent)); - gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); - gtk_window_set_position(GTK_WINDOW(dialog),GTK_WIN_POS_CENTER_ON_PARENT); - - gtk_widget_show(button); - gtk_widget_show(label); - gtk_widget_show(dialog); -} - - -int DialogYesNo(const char *format, ...) -{ - va_list va; - char text[1024]; - GtkWidget *yes; - GtkWidget *no; - GtkWidget *label; - - va_start(va,format); - vsnprintf(text,sizeof text,format,va); - va_end(va); - - dialog=gtk_dialog_new(); - gtk_window_set_title (GTK_WINDOW (dialog), "GEMMA -- Question"); - yes=gtk_button_new_with_label("Yes"); - no=gtk_button_new_with_label("No"); - label=gtk_label_new(text); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), - yes,TRUE,TRUE,0); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), - no,TRUE,TRUE,0); - - gtk_container_set_border_width(GTK_CONTAINER(dialog),10); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), - label,TRUE,TRUE,0); - - gtk_signal_connect(GTK_OBJECT (yes),"clicked", - GTK_SIGNAL_FUNC (Callback), - (gpointer)1); - - gtk_signal_connect(GTK_OBJECT (no),"clicked", - GTK_SIGNAL_FUNC (Callback), - (gpointer)0); - - gtk_signal_connect(GTK_OBJECT(dialog), "delete_event", - GTK_SIGNAL_FUNC(DestroyCB), (gpointer)0); - - gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(parent)); - gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); - gtk_window_set_position(GTK_WINDOW(dialog),GTK_WIN_POS_CENTER_ON_PARENT); - /* gtk_object_set(GTK_OBJECT(dialog),"type",GTK_WINDOW_POPUP,NULL); */ - - gtk_widget_show(yes); - gtk_widget_show(no); - gtk_widget_show(label); - gtk_widget_show(dialog); - - dial_done=FALSE; - - while(!dial_done) - gtk_main_iteration(); - - return selected; -} - - -int DialogFSelect(const char *title, const char *filter_name, - const char *filter, char path[]) -{ - GtkWidget *fsel; - int ret=FALSE; - - fsel=gtk_file_chooser_dialog_new(title, - GTK_WINDOW(parent), - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - - if (path[0]) - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(fsel),path); - - if (filter_name && filter) - { - GtkFileFilter *f=gtk_file_filter_new(); - gtk_file_filter_set_name(GTK_FILE_FILTER(f),filter_name); - gtk_file_filter_add_pattern(GTK_FILE_FILTER(f),filter); - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(fsel), - GTK_FILE_FILTER(f)); - } - - if (gtk_dialog_run(GTK_DIALOG(fsel))==GTK_RESPONSE_ACCEPT) - { - strcpy(path,gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fsel))); - ret=TRUE; - } - - gtk_widget_destroy(fsel); - - return ret; -} - - -void AppendText(GtkWidget *w, const char *text) -{ - GtkTextBuffer *buff; - GtkTextIter end; - - buff=gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)); - gtk_text_buffer_get_end_iter(buff,&end); - gtk_text_buffer_insert(buff,&end,text,-1); -} - - -/* END OF FILE */ diff --git a/gtkutil.h b/gtkutil.h deleted file mode 100644 index e1ea3fd..0000000 --- a/gtkutil.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - - z80 - Z80 Emulation - - Copyright (C) 2006 Ian Cowburn (ianc@noddybox.demon.co.uk) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - ------------------------------------------------------------------------- - - Dialogs - - $Id$ - -*/ - -#ifndef GEMMA_GTKUTIL_H - -#include <gtk/gtk.h> - -#define GEMMA_GTKUTIL_H - - -/* Sets the parent widget for displayed dialogs -*/ -void DialogParent(GtkWidget *parent); - - -/* Displays a simple dialog with the passed label and an OK button -*/ -void DialogOK(const char *format, ...); - - -/* Displays a simple Yes/No dialog with the passed label. - Returns TRUE if yes selected. -*/ -int DialogYesNo(const char *format, ...); - - -/* Selects a file. The current file is taken from path which should be - MAX_PATH long. If the user selects a file, TRUE is returned and the - filename copied to path. -*/ -int DialogFSelect(const char *title, const char *filter_name, - const char *filter, char path[]); - -/* Append text to a text view -*/ -void AppendText(GtkWidget *w, const char *text); - - -#endif - -/* END OF FILE */ @@ -1,5 +1,5 @@ i emucpm.hex -i zexall.hex -D zexall.lbl +l zexall.com 0x100 +#D zexall.lbl s r 0x100 diff --git a/zexall.com b/zexall.com Binary files differnew file mode 100644 index 0000000..33f553c --- /dev/null +++ b/zexall.com diff --git a/zexall.z80 b/zexall.z80 deleted file mode 100644 index d3fcaeb..0000000 --- a/zexall.z80 +++ /dev/null @@ -1,1535 +0,0 @@ -; zexlax.z80 - Z80 instruction set exerciser -; Copyright (C) 1994 Frank D. Cringle -; -; This program is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License -; as published by the Free Software Foundation; either version 2 -; of the License, or (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; if not, write to the Free Software -; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - org 100h - - jp start - -; machine state before test (needs to be at predictably constant address) -msbt: ds 14 -spbt: ds 2 -msbthi equ msbt / 0100h -msbtlo equ msbt & 0ffh - - -; For the purposes of this test program, the machine state consists of: -; a 2 byte memory operand, followed by -; the registers iy,ix,hl,de,bc,af,sp -; for a total of 16 bytes. - -; The program tests instructions (or groups of similar instructions) -; by cycling through a sequence of machine states, executing the test -; instruction for each one and running a 32-bit crc over the resulting -; machine states. At the end of the sequence the crc is compared to -; an expected value that was found empirically on a real Z80. - -; A test case is defined by a descriptor which consists of: -; a flag mask byte, -; the base case, -; the incement vector, -; the shift vector, -; the expected crc, -; a short descriptive message. -; -; The flag mask byte is used to prevent undefined flag bits from -; influencing the results. Documented flags are as per Mostek Z80 -; Technical Manual. -; -; The next three parts of the descriptor are 20 byte vectors -; corresponding to a 4 byte instruction and a 16 byte machine state. -; The first part is the base case, which is the first test case of -; the sequence. This base is then modified according to the next 2 -; vectors. Each 1 bit in the increment vector specifies a bit to be -; cycled in the form of a binary counter. For instance, if the byte -; corresponding to the accumulator is set to 0ffh in the increment -; vector, the test will be repeated for all 256 values of the -; accumulator. Note that 1 bits don't have to be contiguous. The -; number of test cases 'caused' by the increment vector is equal to -; 2^(number of 1 bits). The shift vector is similar, but specifies a -; set of bits in the test case that are to be successively inverted. -; Thus the shift vector 'causes' a number of test cases equal to the -; number of 1 bits in it. - -; The total number of test cases is the product of those caused by the -; counter and shift vectors and can easily become unweildy. Each -; individual test case can take a few milliseconds to execute, due to -; the overhead of test setup and crc calculation, so test design is a -; compromise between coverage and execution time. - -; This program is designed to detect differences between -; implementations and is not ideal for diagnosing the causes of any -; discrepancies. However, provided a reference implementation (or -; real system) is available, a failing test case can be isolated by -; hand using a binary search of the test space. - - -start: ld hl,(6) - ld sp,hl - ld de,msg1 - ld c,9 - call bdos - - ld hl,tests ; first test case -loop: ld a,(hl) ; end of list ? - inc hl - or (hl) - jp z,done - dec hl - call stt - jp loop - -done: ld de,msg2 - ld c,9 - call bdos - jp 0 ; warm boot - -tests: - dw adc16 - dw add16 - dw add16x - dw add16y - dw alu8i - dw alu8r - dw alu8rx - dw alu8x - dw bitx - dw bitz80 - dw cpd1 - dw cpi1 - dw daaop - dw inca - dw incb - dw incbc - dw incc - dw incd - dw incde - dw ince - dw inch - dw inchl - dw incix - dw inciy - dw incl - dw incm - dw incsp - dw incx - dw incxh - dw incxl - dw incyh - dw incyl - dw ld161 - dw ld162 - dw ld163 - dw ld164 - dw ld165 - dw ld166 - dw ld167 - dw ld168 - dw ld16im - dw ld16ix - dw ld8bd - dw ld8im - dw ld8imx - dw ld8ix1 - dw ld8ix2 - dw ld8ix3 - dw ld8ixy - dw ld8rr - dw ld8rrx - dw lda - dw ldd1 - dw ldd2 - dw ldi1 - dw ldi2 - dw negop - dw rldop - dw rot8080 - dw rotxy - dw rotz80 - dw srz80 - dw srzx - dw st8ix1 - dw st8ix2 - dw st8ix3 - dw stabd - dw 0 - -tstr macro insn1,insn2,insn3,insn4,memop,riy,rix,rhl,rde,rbc,flags,acc,rsp -.lab: db insn1,insn2,insn3,insn4 - dw memop,riy,rix,rhl,rde,rbc - db flags - db acc - dw rsp - endm - -tmsg: macro m - db m - db '$' - endm - -; <adc,sbc> hl,<bc,de,hl,sp> (38,912 cycles) -adc16: db 0ffh ; flag mask - tstr 0edh,042h,0,0,0832ch,04f88h,0f22bh,0b339h,07e1fh,01563h,0d3h,089h,0465eh - tstr 0,038h,0,0,0,0,0,0f821h,0,0,0,0,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,-1,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0d4h,08ah,0d5h,019h ; expected crc - tmsg "<adc,sbc> hl,<bc,de,hl,sp>..." - -; add hl,<bc,de,hl,sp> (19,456 cycles) -add16: db 0ffh ; flag mask - tstr 9,0,0,0,0c4a5h,0c4c7h,0d226h,0a050h,058eah,08566h,0c6h,0deh,09bc9h - tstr 030h,0,0,0,0,0,0,0f821h,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,-1,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0d9h,0a4h,0cah,005h ; expected crc - tmsg "add hl,<bc,de,hl,sp>........." - -; add ix,<bc,de,ix,sp> (19,456 cycles) -add16x: db 0ffh ; flag mask - tstr 0ddh,9,0,0,0ddach,0c294h,0635bh,033d3h,06a76h,0fa20h,094h,068h,036f5h - tstr 0,030h,0,0,0,0,0f821h,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,-1,0,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0b1h,0dfh,08eh,0c0h ; expected crc - tmsg "add ix,<bc,de,ix,sp>........." - -; add iy,<bc,de,iy,sp> (19,456 cycles) -add16y: db 0ffh ; flag mask - tstr 0fdh,9,0,0,0c7c2h,0f407h,051c1h,03e96h,00bf4h,0510fh,092h,01eh,071eah - tstr 0,030h,0,0,0,0f821h,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,-1,0,0,-1,-1,0d7h,0,-1 ; (38 cycles) - db 039h,0c8h,058h,09bh ; expected crc - tmsg "add iy,<bc,de,iy,sp>........." - -; aluop a,nn (28,672 cycles) -alu8i: db 0ffh ; flag mask - tstr 0c6h,0,0,0,009140h,07e3ch,07a67h,0df6dh,05b61h,00b29h,010h,066h,085b2h - tstr 038h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (2048 cycles) - tstr 0,-1,0,0,0,0,0,0,0,0,0d7h,0,0 ; (14 cycles) - db 051h,0c1h,09ch,02eh ; expected crc - tmsg "aluop a,nn..................." - -; aluop a,<b,c,d,e,h,l,(hl),a> (753,664 cycles) -alu8r: db 0ffh ; flag mask - tstr 080h,0,0,0,0c53eh,0573ah,04c4dh,msbt,0e309h,0a666h,0d0h,03bh,0adbbh - tstr 03fh,0,0,0,0,0,0,0,0,0,0,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,0,0 ; (46 cycles) - db 006h,0c7h,0aah,08eh ; expected crc - tmsg "aluop a,<b,c,d,e,h,l,(hl),a>." - -; aluop a,<ixh,ixl,iyh,iyl> (376,832 cycles) -alu8rx: db 0ffh ; flag mask - tstr 0ddh,084h,0,0,0d6f7h,0c76eh,0accfh,02847h,022ddh,0c035h,0c5h,038h,0234bh - tstr 020h,039h,0,0,0,0,0,0,0,0,0,-1,0 ; (8,192 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,0,0 ; (46 cycles) - db 0a8h,086h,0cch,044h ; expected crc - tmsg "aluop a,<ixh,ixl,iyh,iyl>...." - -; aluop a,(<ix,iy>+1) (229,376 cycles) -alu8x: db 0ffh ; flag mask - tstr 0ddh,086h,1,0,090b7h,msbt-1,msbt-1,032fdh,0406eh,0c1dch,045h,06eh,0e5fah - tstr 020h,038h,0,0,0,1,1,0,0,0,0,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,0,0 ; (14 cycles) - db 0d3h,0f2h,0d7h,04ah ; expected crc - tmsg "aluop a,(<ix,iy>+1).........." - -; bit n,(<ix,iy>+1) (2048 cycles) -bitx: db 0ffh ; flag mask - tstr 0ddh,0cbh,1,046h,02075h,msbt-1,msbt-1,03cfch,0a79ah,03d74h,051h,027h,0ca14h - tstr 020h,0,0,038h,0,0,0,0,0,0,053h,0,0 ; (256 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0,0,0 ; (8 cycles) - db 083h,053h,04eh,0e1h ; expected crc - tmsg "bit n,(<ix,iy>+1)............" - -; bit n,<b,c,d,e,h,l,(hl),a> (49,152 cycles) -bitz80: db 0ffh ; flag mask - tstr 0cbh,040h,0,0,03ef1h,09dfch,07acch,msbt,0be61h,07a86h,050h,024h,01998h - tstr 0,03fh,0,0,0,0,0,0,0,0,053h,0,0 ; (1024 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0,-1,0 ; (48 cycles) - db 05eh,002h,00eh,098h ; expected crc - tmsg "bit n,<b,c,d,e,h,l,(hl),a>..." - -; cpd<r> (1) (6144 cycles) -cpd1: db 0ffh ; flag mask - tstr 0edh,0a9h,0,0,0c7b6h,072b4h,018f6h,msbt+17,08dbdh,1,0c0h,030h,094a3h - tstr 0,010h,0,0,0,0,0,0,0,010,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 013h,04bh,062h,02dh ; expected crc - tmsg "cpd<r>......................." - -; cpi<r> (1) (6144 cycles) -cpi1: db 0ffh ; flag mask - tstr 0edh,0a1h,0,0,04d48h,0af4ah,0906bh,msbt,04e71h,1,093h,06ah,0907ch - tstr 0,010h,0,0,0,0,0,0,0,010,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 02dh,0a4h,02dh,019h ; expected crc - tmsg "cpi<r>......................." - -; <daa,cpl,scf,ccf> -daaop: db 0ffh ; flag mask - tstr 027h,0,0,0,02141h,009fah,01d60h,0a559h,08d5bh,09079h,004h,08eh,0299dh - tstr 018h,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (65,536 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - db 06dh,02dh,0d2h,013h ; expected crc - tmsg "<daa,cpl,scf,ccf>............" - -; <inc,dec> a (3072 cycles) -inca: db 0ffh ; flag mask - tstr 03ch,0,0,0,04adfh,0d5d8h,0e598h,08a2bh,0a7b0h,0431bh,044h,05ah,0d030h - tstr 001h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 081h,0fah,081h,000h ; expected crc - tmsg "<inc,dec> a.................." - -; <inc,dec> b (3072 cycles) -incb: db 0ffh ; flag mask - tstr 004h,0,0,0,0d623h,0432dh,07a61h,08180h,05a86h,01e85h,086h,058h,09bbbh - tstr 001h,0,0,0,0,0,0,0,0,0ff00h,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 077h,0f3h,05ah,073h ; expected crc - tmsg "<inc,dec> b.................." - -; <inc,dec> bc (1536 cycles) -incbc: db 0ffh ; flag mask - tstr 003h,0,0,0,0cd97h,044abh,08dc9h,0e3e3h,011cch,0e8a4h,002h,049h,02a4dh - tstr 008h,0,0,0,0,0,0,0,0,0f821h,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0d2h,0aeh,03bh,0ech ; expected crc - tmsg "<inc,dec> bc................." - -; <inc,dec> c (3072 cycles) -incc: db 0ffh ; flag mask - tstr 00ch,0,0,0,0d789h,00935h,0055bh,09f85h,08b27h,0d208h,095h,005h,00660h - tstr 001h,0,0,0,0,0,0,0,0,0ffh,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 01ah,0f6h,012h,0a7h ; expected crc - tmsg "<inc,dec> c.................." - -; <inc,dec> d (3072 cycles) -incd: db 0ffh ; flag mask - tstr 014h,0,0,0,0a0eah,05fbah,065fbh,0981ch,038cch,0debch,043h,05ch,003bdh - tstr 001h,0,0,0,0,0,0,0,0ff00h,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0d1h,046h,0bfh,051h ; expected crc - tmsg "<inc,dec> d.................." - -; <inc,dec> de (1536 cycles) -incde: db 0ffh ; flag mask - tstr 013h,0,0,0,0342eh,0131dh,028c9h,00acah,09967h,03a2eh,092h,0f6h,09d54h - tstr 008h,0,0,0,0,0,0,0,0f821h,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0aeh,0c6h,0d4h,02ch ; expected crc - tmsg "<inc,dec> de................." - -; <inc,dec> e (3072 cycles) -ince: db 0ffh ; flag mask - tstr 01ch,0,0,0,0602fh,04c0dh,02402h,0e2f5h,0a0f4h,0a10ah,013h,032h,05925h - tstr 001h,0,0,0,0,0,0,0,0ffh,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0cah,08ch,06ah,0c2h ; expected crc - tmsg "<inc,dec> e.................." - -; <inc,dec> h (3072 cycles) -inch: db 0ffh ; flag mask - tstr 024h,0,0,0,01506h,0f2ebh,0e8ddh,0262bh,011a6h,0bc1ah,017h,006h,02818h - tstr 001h,0,0,0,0,0,0,0ff00h,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 056h,00fh,095h,05eh ; expected crc - tmsg "<inc,dec> h.................." - -; <inc,dec> hl (1536 cycles) -inchl: db 0ffh ; flag mask - tstr 023h,0,0,0,0c3f4h,007a5h,01b6dh,04f04h,0e2c2h,0822ah,057h,0e0h,0c3e1h - tstr 008h,0,0,0,0,0,0,0f821h,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0fch,00dh,06dh,04ah ; expected crc - tmsg "<inc,dec> hl................." - -; <inc,dec> ix (1536 cycles) -incix: db 0ffh ; flag mask - tstr 0ddh,023h,0,0,0bc3ch,00d9bh,0e081h,0adfdh,09a7fh,096e5h,013h,085h,00be2h - tstr 0,8,0,0,0,0,0f821h,0,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0a5h,04dh,0beh,031h ; expected crc - tmsg "<inc,dec> ix................." - -; <inc,dec> iy (1536 cycles) -inciy: db 0ffh ; flag mask - tstr 0fdh,023h,0,0,09402h,0637ah,03182h,0c65ah,0b2e9h,0abb4h,016h,0f2h,06d05h - tstr 0,8,0,0,0,0f821h,0,0,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 050h,05dh,051h,0a3h ; expected crc - tmsg "<inc,dec> iy................." - -; <inc,dec> l (3072 cycles) -incl: db 0ffh ; flag mask - tstr 02ch,0,0,0,08031h,0a520h,04356h,0b409h,0f4c1h,0dfa2h,0d1h,03ch,03ea2h - tstr 001h,0,0,0,0,0,0,0ffh,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0a0h,0a1h,0b4h,09fh ; expected crc - tmsg "<inc,dec> l.................." - -; <inc,dec> (hl) (3072 cycles) -incm: db 0ffh ; flag mask - tstr 034h,0,0,0,0b856h,00c7ch,0e53eh,msbt,0877eh,0da58h,015h,05ch,01f37h - tstr 001h,0,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 028h,029h,05eh,0ceh ; expected crc - tmsg "<inc,dec> (hl)..............." - -; <inc,dec> sp (1536 cycles) -incsp: db 0ffh ; flag mask - tstr 033h,0,0,0,0346fh,0d482h,0d169h,0deb6h,0a494h,0f476h,053h,002h,0855bh - tstr 008h,0,0,0,0,0,0,0,0,0,0,0,0f821h ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 05dh,0ach,0d5h,027h ; expected crc - tmsg "<inc,dec> sp................." - -; <inc,dec> (<ix,iy>+1) (6144 cycles) -incx: db 0ffh ; flag mask - tstr 0ddh,034h,1,0,0fa6eh,msbt-1,msbt-1,02c28h,08894h,05057h,016h,033h,0286fh - tstr 020h,1,0,0,0ffh,0,0,0,0,0,0,0,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 00bh,095h,0a8h,0eah ; expected crc - tmsg "<inc,dec> (<ix,iy>+1)........" - -; <inc,dec> ixh (3072 cycles) -incxh: db 0ffh ; flag mask - tstr 0ddh,024h,0,0,0b838h,0316ch,0c6d4h,03e01h,08358h,015b4h,081h,0deh,04259h - tstr 0,1,0,0,0,0ff00h,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 06fh,046h,036h,062h ; expected crc - tmsg "<inc,dec> ixh................" - -; <inc,dec> ixl (3072 cycles) -incxl: db 0ffh ; flag mask - tstr 0ddh,02ch,0,0,04d14h,07460h,076d4h,006e7h,032a2h,0213ch,0d6h,0d7h,099a5h - tstr 0,1,0,0,0,0ffh,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 002h,07bh,0efh,02ch ; expected crc - tmsg "<inc,dec> ixl................" - -; <inc,dec> iyh (3072 cycles) -incyh: db 0ffh ; flag mask - tstr 0ddh,024h,0,0,02836h,09f6fh,09116h,061b9h,082cbh,0e219h,092h,073h,0a98ch - tstr 0,1,0,0,0ff00h,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 02dh,096h,06ch,0f3h ; expected crc - tmsg "<inc,dec> iyh................" - -; <inc,dec> iyl (3072 cycles) -incyl: db 0ffh ; flag mask - tstr 0ddh,02ch,0,0,0d7c6h,062d5h,0a09eh,07039h,03e7eh,09f12h,090h,0d9h,0220fh - tstr 0,1,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 036h,0c1h,01eh,075h ; expected crc - tmsg "<inc,dec> iyl................" - -; ld <bc,de>,(nnnn) (32 cycles) -ld161: db 0ffh ; flag mask - tstr 0edh,04bh,msbtlo,msbthi,0f9a8h,0f559h,093a4h,0f5edh,06f96h,0d968h,086h,0e6h,04bd8h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 04dh,045h,0a9h,0ach ; expected crc - tmsg "ld <bc,de>,(nnnn)............" - -; ld hl,(nnnn) (16 cycles) -ld162: db 0ffh ; flag mask - tstr 02ah,msbtlo,msbthi,0,09863h,07830h,02077h,0b1feh,0b9fah,0abb8h,004h,006h,06015h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 05fh,097h,024h,087h ; expected crc - tmsg "ld hl,(nnnn)................." - -; ld sp,(nnnn) (16 cycles) -ld163: db 0ffh ; flag mask - tstr 0edh,07bh,msbtlo,msbthi,08dfch,057d7h,02161h,0ca18h,0c185h,027dah,083h,01eh,0f460h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 07ah,0ceh,0a1h,01bh ; expected crc - tmsg "ld sp,(nnnn)................." - -; ld <ix,iy>,(nnnn) (32 cycles) -ld164: db 0ffh ; flag mask - tstr 0ddh,02ah,msbtlo,msbthi,0ded7h,0a6fah,0f780h,0244ch,087deh,0bcc2h,016h,063h,04c96h - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 085h,08bh,0f1h,06dh ; expected crc - tmsg "ld <ix,iy>,(nnnn)............" - -; ld (nnnn),<bc,de> (64 cycles) -ld165: db 0ffh ; flag mask - tstr 0edh,043h,msbtlo,msbthi,01f98h,0844dh,0e8ach,0c9edh,0c95dh,08f61h,080h,03fh,0c7bfh - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0,0,0,0,-1,-1,0,0,0 ; (32 cycles) - db 064h,01eh,087h,015h ; expected crc - tmsg "ld (nnnn),<bc,de>............" - -; ld (nnnn),hl (16 cycles) -ld166: db 0ffh ; flag mask - tstr 022h,msbtlo,msbthi,0,0d003h,07772h,07f53h,03f72h,064eah,0e180h,010h,02dh,035e9h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,0,0,0,-1,0,0,0,0,0 ; (16 cycles) - db 0a3h,060h,08bh,047h ; expected crc - tmsg "ld (nnnn),hl................." - -; ld (nnnn),sp (16 cycles) -ld167: db 0ffh ; flag mask - tstr 0edh,073h,msbtlo,msbthi,0c0dch,0d1d6h,0ed5ah,0f356h,0afdah,06ca7h,044h,09fh,03f0ah - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,-1 ; (16 cycles) - db 016h,058h,05fh,0d7h ; expected crc - tmsg "ld (nnnn),sp................." - -; ld (nnnn),<ix,iy> (64 cycles) -ld168: db 0ffh ; flag mask - tstr 0ddh,022h,msbtlo,msbthi,06cc3h,00d91h,06900h,08ef8h,0e3d6h,0c3f7h,0c6h,0d9h,0c2dfh - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0,-1,-1,0,0,0,0,0,0 ; (32 cycles) - db 0bah,010h,02ah,06bh ; expected crc - tmsg "ld (nnnn),<ix,iy>............" - -; ld <bc,de,hl,sp>,nnnn (64 cycles) -ld16im: db 0ffh ; flag mask - tstr 1,0,0,0,05c1ch,02d46h,08eb9h,06078h,074b1h,0b30eh,046h,0d1h,030cch - tstr 030h,0,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0ffh,0ffh,0,0,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0deh,039h,019h,069h ; expected crc - tmsg "ld <bc,de,hl,sp>,nnnn........" - -; ld <ix,iy>,nnnn (32 cycles) -ld16ix: db 0ffh ; flag mask - tstr 0ddh,021h,0,0,087e8h,02006h,0bd12h,0b69bh,07253h,0a1e5h,051h,013h,0f1bdh - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0ffh,0ffh,0,0,0,0,0,0,0,0,0 ; (16 cycles) - db 022h,07dh,0d5h,025h ; expected crc - tmsg "ld <ix,iy>,nnnn.............." - -; ld a,<(bc),(de)> (44 cycles) -ld8bd: db 0ffh ; flag mask - tstr 00ah,0,0,0,0b3a8h,01d2ah,07f8eh,042ach,msbt,msbt,0c6h,0b1h,0ef8eh - tstr 010h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,-1,0 ; (22 cycles) - db 0b0h,081h,089h,035h ; expected crc - tmsg "ld a,<(bc),(de)>............." - -; ld <b,c,d,e,h,l,(hl),a>,nn (64 cycles) -ld8im: db 0ffh ; flag mask - tstr 6,0,0,0,0c407h,0f49dh,0d13dh,00339h,0de89h,07455h,053h,0c0h,05509h - tstr 038h,0,0,0,0,0,0,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 0f1h,0dah,0b5h,056h ; expected crc - tmsg "ld <b,c,d,e,h,l,(hl),a>,nn..." - -; ld (<ix,iy>+1),nn (32 cycles) -ld8imx: db 0ffh ; flag mask - tstr 0ddh,036h,1,0,01b45h,msbt-1,msbt-1,0d5c1h,061c7h,0bdc4h,0c0h,085h,0cd16h - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,-1,0,0,0,0,0,0,0,-1,0 ; (16 cycles) - db 026h,0dbh,047h,07eh ; expected crc - tmsg "ld (<ix,iy>+1),nn............" - -; ld <b,c,d,e>,(<ix,iy>+1) (512 cycles) -ld8ix1: db 0ffh ; flag mask - tstr 0ddh,046h,1,0,0d016h,msbt-1,msbt-1,04260h,07f39h,00404h,097h,04ah,0d085h - tstr 020h,018h,0,0,0,1,1,0,0,0,0,0,0 ; (32 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0cch,011h,006h,0a8h ; expected crc - tmsg "ld <b,c,d,e>,(<ix,iy>+1)....." - -; ld <h,l>,(<ix,iy>+1) (256 cycles) -ld8ix2: db 0ffh ; flag mask - tstr 0ddh,066h,1,0,084e0h,msbt-1,msbt-1,09c52h,0a799h,049b6h,093h,000h,0eeadh - tstr 020h,008h,0,0,0,1,1,0,0,0,0,0,0 ; (16 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0fah,02ah,04dh,003h ; expected crc - tmsg "ld <h,l>,(<ix,iy>+1)........." - -; ld a,(<ix,iy>+1) (128 cycles) -ld8ix3: db 0ffh ; flag mask - tstr 0ddh,07eh,1,0,0d8b6h,msbt-1,msbt-1,0c612h,0df07h,09cd0h,043h,0a6h,0a0e5h - tstr 020h,0,0,0,0,1,1,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0a5h,0e9h,0ach,064h ; expected crc - tmsg "ld a,(<ix,iy>+1)............." - -; ld <ixh,ixl,iyh,iyl>,nn (32 cycles) -ld8ixy: db 0ffh ; flag mask - tstr 0ddh,026h,0,0,03c53h,04640h,0e179h,07711h,0c107h,01afah,081h,0adh,05d9bh - tstr 020h,8,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 024h,0e8h,082h,08bh ; expected crc - tmsg "ld <ixh,ixl,iyh,iyl>,nn......" - -; ld <b,c,d,e,h,l,a>,<b,c,d,e,h,l,a> (3456 cycles) -ld8rr: db 0ffh ; flag mask - tstr 040h,0,0,0,072a4h,0a024h,061ach,msbt,082c7h,0718fh,097h,08fh,0ef8eh - tstr 03fh,0,0,0,0,0,0,0,0,0,0,0,0 ; (64 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (54 cycles) - db 074h,04bh,001h,018h ; expected crc - tmsg "ld <bcdehla>,<bcdehla>......." - -; ld <b,c,d,e,ixy,a>,<b,c,d,e,ixy,a> (6912 cycles) -ld8rrx: db 0ffh ; flag mask - tstr 0ddh,040h,0,0,0bcc5h,msbt,msbt,msbt,02fc2h,098c0h,083h,01fh,03bcdh - tstr 020h,03fh,0,0,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (54 cycles) - db 047h,08bh,0a3h,06bh ; expected crc - tmsg "ld <bcdexya>,<bcdexya>......." - -; ld a,(nnnn) / ld (nnnn),a (44 cycles) -lda: db 0ffh ; flag mask - tstr 032h,msbtlo,msbthi,0,0fd68h,0f4ech,044a0h,0b543h,00653h,0cdbah,0d2h,04fh,01fd8h - tstr 008h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycle) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,-1,0 ; (22 cycles) - db 0c9h,026h,02dh,0e5h ; expected crc - tmsg "ld a,(nnnn) / ld (nnnn),a...." - -; ldd<r> (1) (44 cycles) -ldd1: db 0ffh ; flag mask - tstr 0edh,0a8h,0,0,09852h,068fah,066a1h,msbt+3,msbt+1,1,0c1h,068h,020b7h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 094h,0f4h,027h,069h ; expected crc - tmsg "ldd<r> (1)..................." - -; ldd<r> (2) (44 cycles) -ldd2: db 0ffh ; flag mask - tstr 0edh,0a8h,0,0,0f12eh,0eb2ah,0d5bah,msbt+3,msbt+1,2,047h,0ffh,0fbe4h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 039h,0ddh,03dh,0e1h ; expected crc - tmsg "ldd<r> (2)..................." - -; ldi<r> (1) (44 cycles) -ldi1: db 0ffh ; flag mask - tstr 0edh,0a0h,0,0,0fe30h,003cdh,06058h,msbt+2,msbt,1,004h,060h,02688h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 0f7h,082h,0b0h,0d1h ; expected crc - tmsg "ldi<r> (1)..................." - -; ldi<r> (2) (44 cycles) -ldi2: db 0ffh ; flag mask - tstr 0edh,0a0h,0,0,04aceh,0c26eh,0b188h,msbt+2,msbt,2,014h,02dh,0a39fh - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 0e9h,0eah,0d0h,0aeh ; expected crc - tmsg "ldi<r> (2)..................." - -; neg (16,384 cycles) -negop: db 0ffh ; flag mask - tstr 0edh,044h,0,0,038a2h,05f6bh,0d934h,057e4h,0d2d6h,04642h,043h,05ah,009cch - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - db 0d6h,038h,0ddh,06ah ; expected crc - tmsg "neg.........................." - -; <rld,rrd> (7168 cycles) -rldop: db 0ffh ; flag mask - tstr 0edh,067h,0,0,091cbh,0c48bh,0fa62h,msbt,0e720h,0b479h,040h,006h,08ae2h - tstr 0,8,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (14 cycles) - db 0ffh,082h,03eh,077h ; expected crc - tmsg "<rrd,rld>...................." - -; <rlca,rrca,rla,rra> (6144 cycles) -rot8080: db 0ffh ; flag mask - tstr 7,0,0,0,0cb92h,06d43h,00a90h,0c284h,00c53h,0f50eh,091h,0ebh,040fch - tstr 018h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 09bh,0a3h,080h,07ch ; expected crc - tmsg "<rlca,rrca,rla,rra>.........." - -; shift/rotate (<ix,iy>+1) (416 cycles) -rotxy: db 0ffh ; flag mask - tstr 0ddh,0cbh,1,6,0ddafh,msbt-1,msbt-1,0ff3ch,0dbf6h,094f4h,082h,080h,061d9h - tstr 020h,0,0,038h,0,0,0,0,0,0,080h,0,0 ; (32 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,057h,0,0 ; (13 cycles) - db 071h,000h,034h,0cbh ; expected crc - tmsg "shf/rot (<ix,iy>+1).........." - -; shift/rotate <b,c,d,e,h,l,(hl),a> (6784 cycles) -rotz80: db 0ffh ; flag mask - tstr 0cbh,0,0,0,0ccebh,05d4ah,0e007h,msbt,01395h,030eeh,043h,078h,03dadh - tstr 0,03fh,0,0,0,0,0,0,0,0,080h,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,057h,-1,0 ; (53 cycles) - db 0a4h,025h,058h,033h ; expected crc - tmsg "shf/rot <b,c,d,e,h,l,(hl),a>." - -; <set,res> n,<b,c,d,e,h,l,(hl),a> (7936 cycles) -srz80: db 0ffh ; flag mask - tstr 0cbh,080h,0,0,02cd5h,097abh,039ffh,msbt,0d14bh,06ab2h,053h,027h,0b538h - tstr 0,07fh,0,0,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (62 cycles) - db 08bh,057h,0f0h,008h ; expected crc - tmsg "<set,res> n,<bcdehl(hl)a>...." - -; <set,res> n,(<ix,iy>+1) (1792 cycles) -srzx: db 0ffh ; flag mask - tstr 0ddh,0cbh,1,086h,0fb44h,msbt-1,msbt-1,0ba09h,068beh,032d8h,010h,05eh,0a867h - tstr 020h,0,0,078h,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,0,0 ;(14 cycles) - db 0cch,063h,0f9h,08ah ; expected crc - tmsg "<set,res> n,(<ix,iy>+1)......" - -; ld (<ix,iy>+1),<b,c,d,e> (1024 cycles) -st8ix1: db 0ffh ; flag mask - tstr 0ddh,070h,1,0,0270dh,msbt-1,msbt-1,0b73ah,0887bh,099eeh,086h,070h,0ca07h - tstr 020h,003h,0,0,0,1,1,0,0,0,0,0,0 ; (32 cycles) - tstr 0,0,0,0,0,0,0,0,-1,-1,0,0,0 ; (32 cycles) - db 004h,062h,06ah,0bfh ; expected crc - tmsg "ld (<ix,iy>+1),<b,c,d,e>....." - -; ld (<ix,iy>+1),<h,l> (256 cycles) -st8ix2: db 0ffh ; flag mask - tstr 0ddh,074h,1,0,0b664h,msbt-1,msbt-1,0e8ach,0b5f5h,0aafeh,012h,010h,09566h - tstr 020h,001h,0,0,0,1,1,0,0,0,0,0,0 ; (16 cycles) - tstr 0,0,0,0,0,0,0,-1,0,0,0,0,0 ; (32 cycles) - db 06ah,01ah,088h,031h ; expected crc - tmsg "ld (<ix,iy>+1),<h,l>........." - -; ld (<ix,iy>+1),a (64 cycles) -st8ix3: db 0ffh ; flag mask - tstr 0ddh,077h,1,0,067afh,msbt-1,msbt-1,04f13h,00644h,0bcd7h,050h,0ach,05fafh - tstr 020h,0,0,0,0,1,1,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 0cch,0beh,05ah,096h ; expected crc - tmsg "ld (<ix,iy>+1),a............." - -; ld (<bc,de>),a (96 cycles) -stabd: db 0ffh ; flag mask - tstr 2,0,0,0,00c3bh,0b592h,06cffh,0959eh,msbt,msbt+1,0c1h,021h,0bde7h - tstr 018h,0,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,-1,0 ; (24 cycles) - db 07ah,04ch,011h,04fh ; expected crc - tmsg "ld (<bc,de>),a..............." - -; start test pointed to by (hl) -stt: push hl - ld a,(hl) ; get pointer to test - inc hl - ld h,(hl) - ld l,a - ld a,(hl) ; flag mask - ld (flgmsk+1),a - inc hl - push hl - ld de,20 - add hl,de ; point to incmask - ld de,counter - call initmask - pop hl - push hl - ld de,20+20 - add hl,de ; point to scanmask - ld de,shifter - call initmask - ld hl,shifter - ld (hl),1 ; first bit - pop hl - push hl - ld de,iut ; copy initial instruction under test - ld bc,4 - ldir - ld de,msbt ; copy initial machine state - ld bc,16 - ldir - ld de,20+20+4 ; skip incmask, scanmask and expcrc - add hl,de - ex de,hl - ld c,9 - call bdos ; show test name - call initcrc ; initialise crc -; test loop -tlp: ld a,(iut) - cp 076h ; pragmatically avoid halt intructions - jp z,tlp2 - and 0dfh - cp 0ddh - jp nz,tlp1 - ld a,(iut+1) - cp 076h -tlp1: call nz,test ; execute the test instruction -tlp2: call count ; increment the counter - call nz,shift ; shift the scan bit - pop hl ; pointer to test case - jp z,tlp3 ; done if shift returned NZ - ld de,20+20+20 - add hl,de ; point to expected crc - call cmpcrc - ld de,okmsg - jp z,tlpok - ld de,ermsg1 - ld c,9 - call bdos - call phex8 - ld de,ermsg2 - ld c,9 - call bdos - ld hl,crcval - call phex8 - ld de,crlf -tlpok: ld c,9 - call bdos - pop hl - inc hl - inc hl - ret - -tlp3: push hl - ld a,1 ; initialise count and shift scanners - ld (cntbit),a - ld (shfbit),a - ld hl,counter - ld (cntbyt),hl - ld hl,shifter - ld (shfbyt),hl - - ld b,4 ; bytes in iut field - pop hl ; pointer to test case - push hl - ld de,iut - call setup ; setup iut - ld b,16 ; bytes in machine state - ld de,msbt - call setup ; setup machine state - jp tlp - -; setup a field of the test case -; b = number of bytes -; hl = pointer to base case -; de = destination -setup: call subyte - inc hl - dec b - jp nz,setup - ret - -subyte: push bc - push de - push hl - ld c,(hl) ; get base byte - ld de,20 - add hl,de ; point to incmask - ld a,(hl) - cp 0 - jp z,subshf - ld b,8 ; 8 bits -subclp: rrca - push af - ld a,0 - call c,nxtcbit ; get next counter bit if mask bit was set - xor c ; flip bit if counter bit was set - rrca - ld c,a - pop af - dec b - jp nz,subclp - ld b,8 -subshf: ld de,20 - add hl,de ; point to shift mask - ld a,(hl) - cp 0 - jp z,substr - ld b,8 ; 8 bits -sbshf1: rrca - push af - ld a,0 - call c,nxtsbit ; get next shifter bit if mask bit was set - xor c ; flip bit if shifter bit was set - rrca - ld c,a - pop af - dec b - jp nz,sbshf1 -substr: pop hl - pop de - ld a,c - ld (de),a ; mangled byte to destination - inc de - pop bc - ret - -; get next counter bit in low bit of a -cntbit: ds 1 -cntbyt: ds 2 - -nxtcbit: push bc - push hl - ld hl,(cntbyt) - ld b,(hl) - ld hl,cntbit - ld a,(hl) - ld c,a - rlca - ld (hl),a - cp 1 - jp nz,ncb1 - ld hl,(cntbyt) - inc hl - ld (cntbyt),hl -ncb1: ld a,b - and c - pop hl - pop bc - ret z - ld a,1 - ret - -; get next shifter bit in low bit of a -shfbit: ds 1 -shfbyt: ds 2 - -nxtsbit: push bc - push hl - ld hl,(shfbyt) - ld b,(hl) - ld hl,shfbit - ld a,(hl) - ld c,a - rlca - ld (hl),a - cp 1 - jp nz,nsb1 - ld hl,(shfbyt) - inc hl - ld (shfbyt),hl -nsb1: ld a,b - and c - pop hl - pop bc - ret z - ld a,1 - ret - - -; clear memory at hl, bc bytes -clrmem: push af - push bc - push de - push hl - ld (hl),0 - ld d,h - ld e,l - inc de - dec bc - ldir - pop hl - pop de - pop bc - pop af - ret - -; initialise counter or shifter -; de = pointer to work area for counter or shifter -; hl = pointer to mask -initmask: - push de - ex de,hl - ld bc,20+20 - call clrmem ; clear work area - ex de,hl - ld b,20 ; byte counter - ld c,1 ; first bit - ld d,0 ; bit counter -imlp: ld e,(hl) -imlp1: ld a,e - and c - jp z,imlp2 - inc d -imlp2: ld a,c - rlca - ld c,a - cp 1 - jp nz,imlp1 - inc hl - dec b - jp nz,imlp -; got number of 1-bits in mask in reg d - ld a,d - and 0f8h - rrca - rrca - rrca ; divide by 8 (get byte offset) - ld l,a - ld h,0 - ld a,d - and 7 ; bit offset - inc a - ld b,a - ld a,080h -imlp3: rlca - dec b - jp nz,imlp3 - pop de - add hl,de - ld de,20 - add hl,de - ld (hl),a - ret - -; multi-byte counter -count: push bc - push de - push hl - ld hl,counter ; 20 byte counter starts here - ld de,20 ; somewhere in here is the stop bit - ex de,hl - add hl,de - ex de,hl -cntlp: inc (hl) - ld a,(hl) - cp 0 - jp z,cntlp1 ; overflow to next byte - ld b,a - ld a,(de) - and b ; test for terminal value - jp z,cntend - ld (hl),0 ; reset to zero -cntend: pop bc - pop de - pop hl - ret - -cntlp1: inc hl - inc de - jp cntlp - - -; multi-byte shifter -shift: push bc - push de - push hl - ld hl,shifter ; 20 byte shift register starts here - ld de,20 ; somewhere in here is the stop bit - ex de,hl - add hl,de - ex de,hl -shflp: ld a,(hl) - or a - jp z,shflp1 - ld b,a - ld a,(de) - and b - jp nz,shlpe - ld a,b - rlca - cp 1 - jp nz,shflp2 - ld (hl),0 - inc hl - inc de -shflp2: ld (hl),a - xor a ; set Z -shlpe: pop hl - pop de - pop bc - ret -shflp1: inc hl - inc de - jp shflp - -counter: ds 2*20 -shifter: ds 2*20 - -; test harness -test: push af - push bc - push de - push hl - if 0 - ld de,crlf - ld c,9 - call bdos - ld hl,iut - ld b,4 - call hexstr - ld e,' ' - ld c,2 - call bdos - ld b,16 - ld hl,msbt - call hexstr - endif - di ; disable interrupts - ld (spsav),sp ; save stack pointer - ld sp,msbt+2 ; point to test-case machine state - pop iy ; and load all regs - pop ix - pop hl - pop de - pop bc - pop af - ld sp,(spbt) -iut: ds 4 ; max 4 byte instruction under test - ld (spat),sp ; save stack pointer - ld sp,spat - push af ; save other registers - push bc - push de - push hl - push ix - push iy - ld sp,(spsav) ; restore stack pointer - ei ; enable interrupts - ld hl,(msbt) ; copy memory operand - ld (msat),hl - ld hl,flgsat ; flags after test - ld a,(hl) -flgmsk: and 0d7h ; mask-out irrelevant bits (self-modified code!) - ld (hl),a - ld b,16 ; total of 16 bytes of state - ld de,msat - ld hl,crcval -tcrc: ld a,(de) - inc de - call updcrc ; accumulate crc of this test case - dec b - jp nz,tcrc - if 0 - ld e,' ' - ld c,2 - call bdos - ld hl,crcval - call phex8 - ld de,crlf - ld c,9 - call bdos - ld hl,msat - ld b,16 - call hexstr - ld de,crlf - ld c,9 - call bdos - endif - pop hl - pop de - pop bc - pop af - ret - -; machine state after test -msat: ds 14 ; memop,iy,ix,hl,de,bc,af -spat: ds 2 ; stack pointer after test -flgsat: equ spat-2 ; flags - -spsav: ds 2 ; saved stack pointer - -; display hex string (pointer in hl, byte count in b) -hexstr: ld a,(hl) - call phex2 - inc hl - dec b - jp nz,hexstr - ret - -; display hex -; display the big-endian 32-bit value pointed to by hl -phex8: push af - push bc - push hl - ld b,4 -ph8lp: ld a,(hl) - call phex2 - inc hl - dec b - jp nz,ph8lp - pop hl - pop bc - pop af - ret - -; display byte in a -phex2: push af - rrca - rrca - rrca - rrca - call phex1 - pop af -; fall through - -; display low nibble in a -phex1: push af - push bc - push de - push hl - and 0fh - cp 10 - jp c,ph11 - add a,'a'-'9'-1 -ph11: add a,'0' - ld e,a - ld c,2 - call bdos - pop hl - pop de - pop bc - pop af - ret - -bdos push af - push bc - push de - push hl - call 5 - pop hl - pop de - pop bc - pop af - ret - -msg1: db "Z80 instruction exerciser (+undoc)",10,13,"$" -msg2: db "Tests complete$" -okmsg: db " OK",10,13,"$" -ermsg1: db " ERROR **** crc expected:$" -ermsg2: db " found:$" -crlf: db 10,13,'$' - -; compare crc -; hl points to value to compare to crcval -cmpcrc: push bc - push de - push hl - ld de,crcval - ld b,4 -cclp: ld a,(de) - cp (hl) - jp nz,cce - inc hl - inc de - dec b - jp nz,cclp -cce: pop hl - pop de - pop bc - ret - -; 32-bit crc routine -; entry: a contains next byte, hl points to crc -; exit: crc updated -updcrc: push af - push bc - push de - push hl - push hl - ld de,3 - add hl,de ; point to low byte of old crc - xor (hl) ; xor with new byte - ld l,a - ld h,0 - add hl,hl ; use result as index into table of 4 byte entries - add hl,hl - ex de,hl - ld hl,crctab - add hl,de ; point to selected entry in crctab - ex de,hl - pop hl - ld bc,4 ; c = byte count, b = accumulator -crclp: ld a,(de) - xor b - ld b,(hl) - ld (hl),a - inc de - inc hl - dec c - jp nz,crclp - if 0 - ld hl,crcval - call phex8 - ld de,crlf - ld c,9 - call bdos - endif - pop hl - pop de - pop bc - pop af - ret - -initcrc:push af - push bc - push hl - ld hl,crcval - ld a,0ffh - ld b,4 -icrclp: ld (hl),a - inc hl - dec b - jp nz,icrclp - pop hl - pop bc - pop af - ret - -crcval ds 4 - -crctab: db 000h,000h,000h,000h - db 077h,007h,030h,096h - db 0eeh,00eh,061h,02ch - db 099h,009h,051h,0bah - db 007h,06dh,0c4h,019h - db 070h,06ah,0f4h,08fh - db 0e9h,063h,0a5h,035h - db 09eh,064h,095h,0a3h - db 00eh,0dbh,088h,032h - db 079h,0dch,0b8h,0a4h - db 0e0h,0d5h,0e9h,01eh - db 097h,0d2h,0d9h,088h - db 009h,0b6h,04ch,02bh - db 07eh,0b1h,07ch,0bdh - db 0e7h,0b8h,02dh,007h - db 090h,0bfh,01dh,091h - db 01dh,0b7h,010h,064h - db 06ah,0b0h,020h,0f2h - db 0f3h,0b9h,071h,048h - db 084h,0beh,041h,0deh - db 01ah,0dah,0d4h,07dh - db 06dh,0ddh,0e4h,0ebh - db 0f4h,0d4h,0b5h,051h - db 083h,0d3h,085h,0c7h - db 013h,06ch,098h,056h - db 064h,06bh,0a8h,0c0h - db 0fdh,062h,0f9h,07ah - db 08ah,065h,0c9h,0ech - db 014h,001h,05ch,04fh - db 063h,006h,06ch,0d9h - db 0fah,00fh,03dh,063h - db 08dh,008h,00dh,0f5h - db 03bh,06eh,020h,0c8h - db 04ch,069h,010h,05eh - db 0d5h,060h,041h,0e4h - db 0a2h,067h,071h,072h - db 03ch,003h,0e4h,0d1h - db 04bh,004h,0d4h,047h - db 0d2h,00dh,085h,0fdh - db 0a5h,00ah,0b5h,06bh - db 035h,0b5h,0a8h,0fah - db 042h,0b2h,098h,06ch - db 0dbh,0bbh,0c9h,0d6h - db 0ach,0bch,0f9h,040h - db 032h,0d8h,06ch,0e3h - db 045h,0dfh,05ch,075h - db 0dch,0d6h,00dh,0cfh - db 0abh,0d1h,03dh,059h - db 026h,0d9h,030h,0ach - db 051h,0deh,000h,03ah - db 0c8h,0d7h,051h,080h - db 0bfh,0d0h,061h,016h - db 021h,0b4h,0f4h,0b5h - db 056h,0b3h,0c4h,023h - db 0cfh,0bah,095h,099h - db 0b8h,0bdh,0a5h,00fh - db 028h,002h,0b8h,09eh - db 05fh,005h,088h,008h - db 0c6h,00ch,0d9h,0b2h - db 0b1h,00bh,0e9h,024h - db 02fh,06fh,07ch,087h - db 058h,068h,04ch,011h - db 0c1h,061h,01dh,0abh - db 0b6h,066h,02dh,03dh - db 076h,0dch,041h,090h - db 001h,0dbh,071h,006h - db 098h,0d2h,020h,0bch - db 0efh,0d5h,010h,02ah - db 071h,0b1h,085h,089h - db 006h,0b6h,0b5h,01fh - db 09fh,0bfh,0e4h,0a5h - db 0e8h,0b8h,0d4h,033h - db 078h,007h,0c9h,0a2h - db 00fh,000h,0f9h,034h - db 096h,009h,0a8h,08eh - db 0e1h,00eh,098h,018h - db 07fh,06ah,00dh,0bbh - db 008h,06dh,03dh,02dh - db 091h,064h,06ch,097h - db 0e6h,063h,05ch,001h - db 06bh,06bh,051h,0f4h - db 01ch,06ch,061h,062h - db 085h,065h,030h,0d8h - db 0f2h,062h,000h,04eh - db 06ch,006h,095h,0edh - db 01bh,001h,0a5h,07bh - db 082h,008h,0f4h,0c1h - db 0f5h,00fh,0c4h,057h - db 065h,0b0h,0d9h,0c6h - db 012h,0b7h,0e9h,050h - db 08bh,0beh,0b8h,0eah - db 0fch,0b9h,088h,07ch - db 062h,0ddh,01dh,0dfh - db 015h,0dah,02dh,049h - db 08ch,0d3h,07ch,0f3h - db 0fbh,0d4h,04ch,065h - db 04dh,0b2h,061h,058h - db 03ah,0b5h,051h,0ceh - db 0a3h,0bch,000h,074h - db 0d4h,0bbh,030h,0e2h - db 04ah,0dfh,0a5h,041h - db 03dh,0d8h,095h,0d7h - db 0a4h,0d1h,0c4h,06dh - db 0d3h,0d6h,0f4h,0fbh - db 043h,069h,0e9h,06ah - db 034h,06eh,0d9h,0fch - db 0adh,067h,088h,046h - db 0dah,060h,0b8h,0d0h - db 044h,004h,02dh,073h - db 033h,003h,01dh,0e5h - db 0aah,00ah,04ch,05fh - db 0ddh,00dh,07ch,0c9h - db 050h,005h,071h,03ch - db 027h,002h,041h,0aah - db 0beh,00bh,010h,010h - db 0c9h,00ch,020h,086h - db 057h,068h,0b5h,025h - db 020h,06fh,085h,0b3h - db 0b9h,066h,0d4h,009h - db 0ceh,061h,0e4h,09fh - db 05eh,0deh,0f9h,00eh - db 029h,0d9h,0c9h,098h - db 0b0h,0d0h,098h,022h - db 0c7h,0d7h,0a8h,0b4h - db 059h,0b3h,03dh,017h - db 02eh,0b4h,00dh,081h - db 0b7h,0bdh,05ch,03bh - db 0c0h,0bah,06ch,0adh - db 0edh,0b8h,083h,020h - db 09ah,0bfh,0b3h,0b6h - db 003h,0b6h,0e2h,00ch - db 074h,0b1h,0d2h,09ah - db 0eah,0d5h,047h,039h - db 09dh,0d2h,077h,0afh - db 004h,0dbh,026h,015h - db 073h,0dch,016h,083h - db 0e3h,063h,00bh,012h - db 094h,064h,03bh,084h - db 00dh,06dh,06ah,03eh - db 07ah,06ah,05ah,0a8h - db 0e4h,00eh,0cfh,00bh - db 093h,009h,0ffh,09dh - db 00ah,000h,0aeh,027h - db 07dh,007h,09eh,0b1h - db 0f0h,00fh,093h,044h - db 087h,008h,0a3h,0d2h - db 01eh,001h,0f2h,068h - db 069h,006h,0c2h,0feh - db 0f7h,062h,057h,05dh - db 080h,065h,067h,0cbh - db 019h,06ch,036h,071h - db 06eh,06bh,006h,0e7h - db 0feh,0d4h,01bh,076h - db 089h,0d3h,02bh,0e0h - db 010h,0dah,07ah,05ah - db 067h,0ddh,04ah,0cch - db 0f9h,0b9h,0dfh,06fh - db 08eh,0beh,0efh,0f9h - db 017h,0b7h,0beh,043h - db 060h,0b0h,08eh,0d5h - db 0d6h,0d6h,0a3h,0e8h - db 0a1h,0d1h,093h,07eh - db 038h,0d8h,0c2h,0c4h - db 04fh,0dfh,0f2h,052h - db 0d1h,0bbh,067h,0f1h - db 0a6h,0bch,057h,067h - db 03fh,0b5h,006h,0ddh - db 048h,0b2h,036h,04bh - db 0d8h,00dh,02bh,0dah - db 0afh,00ah,01bh,04ch - db 036h,003h,04ah,0f6h - db 041h,004h,07ah,060h - db 0dfh,060h,0efh,0c3h - db 0a8h,067h,0dfh,055h - db 031h,06eh,08eh,0efh - db 046h,069h,0beh,079h - db 0cbh,061h,0b3h,08ch - db 0bch,066h,083h,01ah - db 025h,06fh,0d2h,0a0h - db 052h,068h,0e2h,036h - db 0cch,00ch,077h,095h - db 0bbh,00bh,047h,003h - db 022h,002h,016h,0b9h - db 055h,005h,026h,02fh - db 0c5h,0bah,03bh,0beh - db 0b2h,0bdh,00bh,028h - db 02bh,0b4h,05ah,092h - db 05ch,0b3h,06ah,004h - db 0c2h,0d7h,0ffh,0a7h - db 0b5h,0d0h,0cfh,031h - db 02ch,0d9h,09eh,08bh - db 05bh,0deh,0aeh,01dh - db 09bh,064h,0c2h,0b0h - db 0ech,063h,0f2h,026h - db 075h,06ah,0a3h,09ch - db 002h,06dh,093h,00ah - db 09ch,009h,006h,0a9h - db 0ebh,00eh,036h,03fh - db 072h,007h,067h,085h - db 005h,000h,057h,013h - db 095h,0bfh,04ah,082h - db 0e2h,0b8h,07ah,014h - db 07bh,0b1h,02bh,0aeh - db 00ch,0b6h,01bh,038h - db 092h,0d2h,08eh,09bh - db 0e5h,0d5h,0beh,00dh - db 07ch,0dch,0efh,0b7h - db 00bh,0dbh,0dfh,021h - db 086h,0d3h,0d2h,0d4h - db 0f1h,0d4h,0e2h,042h - db 068h,0ddh,0b3h,0f8h - db 01fh,0dah,083h,06eh - db 081h,0beh,016h,0cdh - db 0f6h,0b9h,026h,05bh - db 06fh,0b0h,077h,0e1h - db 018h,0b7h,047h,077h - db 088h,008h,05ah,0e6h - db 0ffh,00fh,06ah,070h - db 066h,006h,03bh,0cah - db 011h,001h,00bh,05ch - db 08fh,065h,09eh,0ffh - db 0f8h,062h,0aeh,069h - db 061h,06bh,0ffh,0d3h - db 016h,06ch,0cfh,045h - db 0a0h,00ah,0e2h,078h - db 0d7h,00dh,0d2h,0eeh - db 04eh,004h,083h,054h - db 039h,003h,0b3h,0c2h - db 0a7h,067h,026h,061h - db 0d0h,060h,016h,0f7h - db 049h,069h,047h,04dh - db 03eh,06eh,077h,0dbh - db 0aeh,0d1h,06ah,04ah - db 0d9h,0d6h,05ah,0dch - db 040h,0dfh,00bh,066h - db 037h,0d8h,03bh,0f0h - db 0a9h,0bch,0aeh,053h - db 0deh,0bbh,09eh,0c5h - db 047h,0b2h,0cfh,07fh - db 030h,0b5h,0ffh,0e9h - db 0bdh,0bdh,0f2h,01ch - db 0cah,0bah,0c2h,08ah - db 053h,0b3h,093h,030h - db 024h,0b4h,0a3h,0a6h - db 0bah,0d0h,036h,005h - db 0cdh,0d7h,006h,093h - db 054h,0deh,057h,029h - db 023h,0d9h,067h,0bfh - db 0b3h,066h,07ah,02eh - db 0c4h,061h,04ah,0b8h - db 05dh,068h,01bh,002h - db 02ah,06fh,02bh,094h - db 0b4h,00bh,0beh,037h - db 0c3h,00ch,08eh,0a1h - db 05ah,005h,0dfh,01bh - db 02dh,002h,0efh,08dh - diff --git a/zexdoc.z80 b/zexdoc.z80 deleted file mode 100644 index 8104d56..0000000 --- a/zexdoc.z80 +++ /dev/null @@ -1,1535 +0,0 @@ -; zexlax.z80 - Z80 instruction set exerciser -; Copyright (C) 1994 Frank D. Cringle -; -; This program is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License -; as published by the Free Software Foundation; either version 2 -; of the License, or (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; if not, write to the Free Software -; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - org 100h - - jp start - -; machine state before test (needs to be at predictably constant address) -msbt: ds 14 -spbt: ds 2 -msbthi equ msbt / 0100h -msbtlo equ msbt & 0ffh - - -; For the purposes of this test program, the machine state consists of: -; a 2 byte memory operand, followed by -; the registers iy,ix,hl,de,bc,af,sp -; for a total of 16 bytes. - -; The program tests instructions (or groups of similar instructions) -; by cycling through a sequence of machine states, executing the test -; instruction for each one and running a 32-bit crc over the resulting -; machine states. At the end of the sequence the crc is compared to -; an expected value that was found empirically on a real Z80. - -; A test case is defined by a descriptor which consists of: -; a flag mask byte, -; the base case, -; the incement vector, -; the shift vector, -; the expected crc, -; a short descriptive message. -; -; The flag mask byte is used to prevent undefined flag bits from -; influencing the results. Documented flags are as per Mostek Z80 -; Technical Manual. -; -; The next three parts of the descriptor are 20 byte vectors -; corresponding to a 4 byte instruction and a 16 byte machine state. -; The first part is the base case, which is the first test case of -; the sequence. This base is then modified according to the next 2 -; vectors. Each 1 bit in the increment vector specifies a bit to be -; cycled in the form of a binary counter. For instance, if the byte -; corresponding to the accumulator is set to 0ffh in the increment -; vector, the test will be repeated for all 256 values of the -; accumulator. Note that 1 bits don't have to be contiguous. The -; number of test cases 'caused' by the increment vector is equal to -; 2^(number of 1 bits). The shift vector is similar, but specifies a -; set of bits in the test case that are to be successively inverted. -; Thus the shift vector 'causes' a number of test cases equal to the -; number of 1 bits in it. - -; The total number of test cases is the product of those caused by the -; counter and shift vectors and can easily become unweildy. Each -; individual test case can take a few milliseconds to execute, due to -; the overhead of test setup and crc calculation, so test design is a -; compromise between coverage and execution time. - -; This program is designed to detect differences between -; implementations and is not ideal for diagnosing the causes of any -; discrepancies. However, provided a reference implementation (or -; real system) is available, a failing test case can be isolated by -; hand using a binary search of the test space. - - -start: ld hl,(6) - ld sp,hl - ld de,msg1 - ld c,9 - call bdos - - ld hl,tests ; first test case -loop: ld a,(hl) ; end of list ? - inc hl - or (hl) - jp z,done - dec hl - call stt - jp loop - -done: ld de,msg2 - ld c,9 - call bdos - jp 0 ; warm boot - -tests: - dw adc16 - dw add16 - dw add16x - dw add16y - dw alu8i - dw alu8r - dw alu8rx - dw alu8x - dw bitx - dw bitz80 - dw cpd1 - dw cpi1 - dw daaop - dw inca - dw incb - dw incbc - dw incc - dw incd - dw incde - dw ince - dw inch - dw inchl - dw incix - dw inciy - dw incl - dw incm - dw incsp - dw incx - dw incxh - dw incxl - dw incyh - dw incyl - dw ld161 - dw ld162 - dw ld163 - dw ld164 - dw ld165 - dw ld166 - dw ld167 - dw ld168 - dw ld16im - dw ld16ix - dw ld8bd - dw ld8im - dw ld8imx - dw ld8ix1 - dw ld8ix2 - dw ld8ix3 - dw ld8ixy - dw ld8rr - dw ld8rrx - dw lda - dw ldd1 - dw ldd2 - dw ldi1 - dw ldi2 - dw negop - dw rldop - dw rot8080 - dw rotxy - dw rotz80 - dw srz80 - dw srzx - dw st8ix1 - dw st8ix2 - dw st8ix3 - dw stabd - dw 0 - -tstr macro insn1,insn2,insn3,insn4,memop,riy,rix,rhl,rde,rbc,flags,acc,rsp -.lab: db insn1,insn2,insn3,insn4 - dw memop,riy,rix,rhl,rde,rbc - db flags - db acc - dw rsp - endm - -tmsg: macro m - db m - db '$' - endm - -; <adc,sbc> hl,<bc,de,hl,sp> (38,912 cycles) -adc16: db 0c7h ; flag mask - tstr 0edh,042h,0,0,0832ch,04f88h,0f22bh,0b339h,07e1fh,01563h,0d3h,089h,0465eh - tstr 0,038h,0,0,0,0,0,0f821h,0,0,0,0,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,-1,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0f8h,0b4h,0eah,0a9h ; expected crc - tmsg "<adc,sbc> hl,<bc,de,hl,sp>...." - -; add hl,<bc,de,hl,sp> (19,456 cycles) -add16: db 0c7h ; flag mask - tstr 9,0,0,0,0c4a5h,0c4c7h,0d226h,0a050h,058eah,08566h,0c6h,0deh,09bc9h - tstr 030h,0,0,0,0,0,0,0f821h,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,-1,-1,-1,0d7h,0,-1 ; (38 cycles) - db 089h,0fdh,0b6h,035h ; expected crc - tmsg "add hl,<bc,de,hl,sp>.........." - -; add ix,<bc,de,ix,sp> (19,456 cycles) -add16x: db 0c7h ; flag mask - tstr 0ddh,9,0,0,0ddach,0c294h,0635bh,033d3h,06a76h,0fa20h,094h,068h,036f5h - tstr 0,030h,0,0,0,0,0f821h,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,-1,0,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0c1h,033h,079h,00bh ; expected crc - tmsg "add ix,<bc,de,ix,sp>.........." - -; add iy,<bc,de,iy,sp> (19,456 cycles) -add16y: db 0c7h ; flag mask - tstr 0fdh,9,0,0,0c7c2h,0f407h,051c1h,03e96h,00bf4h,0510fh,092h,01eh,071eah - tstr 0,030h,0,0,0,0f821h,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,-1,0,0,-1,-1,0d7h,0,-1 ; (38 cycles) - db 0e8h,081h,07bh,09eh ; expected crc - tmsg "add iy,<bc,de,iy,sp>.........." - -; aluop a,nn (28,672 cycles) -alu8i: db 0d7h ; flag mask - tstr 0c6h,0,0,0,009140h,07e3ch,07a67h,0df6dh,05b61h,00b29h,010h,066h,085b2h - tstr 038h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (2048 cycles) - tstr 0,-1,0,0,0,0,0,0,0,0,0d7h,0,0 ; (14 cycles) - db 048h,079h,093h,060h ; expected crc - tmsg "aluop a,nn...................." - -; aluop a,<b,c,d,e,h,l,(hl),a> (753,664 cycles) -alu8r: db 0d7h ; flag mask - tstr 080h,0,0,0,0c53eh,0573ah,04c4dh,msbt,0e309h,0a666h,0d0h,03bh,0adbbh - tstr 03fh,0,0,0,0,0,0,0,0,0,0,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,0,0 ; (46 cycles) - db 0feh,043h,0b0h,016h ; expected crc - tmsg "aluop a,<b,c,d,e,h,l,(hl),a>.." - -; aluop a,<ixh,ixl,iyh,iyl> (376,832 cycles) -alu8rx: db 0d7h ; flag mask - tstr 0ddh,084h,0,0,0d6f7h,0c76eh,0accfh,02847h,022ddh,0c035h,0c5h,038h,0234bh - tstr 020h,039h,0,0,0,0,0,0,0,0,0,-1,0 ; (8,192 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,0,0 ; (46 cycles) - db 0a4h,002h,06dh,05ah ; expected crc - tmsg "aluop a,<ixh,ixl,iyh,iyl>....." - -; aluop a,(<ix,iy>+1) (229,376 cycles) -alu8x: db 0d7h ; flag mask - tstr 0ddh,086h,1,0,090b7h,msbt-1,msbt-1,032fdh,0406eh,0c1dch,045h,06eh,0e5fah - tstr 020h,038h,0,0,0,1,1,0,0,0,0,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,0,0 ; (14 cycles) - db 0e8h,049h,067h,06eh ; expected crc - tmsg "aluop a,(<ix,iy>+1)..........." - -; bit n,(<ix,iy>+1) (2048 cycles) -bitx: db 053h ; flag mask - tstr 0ddh,0cbh,1,046h,02075h,msbt-1,msbt-1,03cfch,0a79ah,03d74h,051h,027h,0ca14h - tstr 020h,0,0,038h,0,0,0,0,0,0,053h,0,0 ; (256 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0,0,0 ; (8 cycles) - db 0a8h,0eeh,008h,067h ; expected crc - tmsg "bit n,(<ix,iy>+1)............." - -; bit n,<b,c,d,e,h,l,(hl),a> (49,152 cycles) -bitz80: db 053h ; flag mask - tstr 0cbh,040h,0,0,03ef1h,09dfch,07acch,msbt,0be61h,07a86h,050h,024h,01998h - tstr 0,03fh,0,0,0,0,0,0,0,0,053h,0,0 ; (1024 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0,-1,0 ; (48 cycles) - db 07bh,055h,0e6h,0c8h ; expected crc - tmsg "bit n,<b,c,d,e,h,l,(hl),a>...." - -; cpd<r> (1) (6144 cycles) -cpd1: db 0d7h ; flag mask - tstr 0edh,0a9h,0,0,0c7b6h,072b4h,018f6h,msbt+17,08dbdh,1,0c0h,030h,094a3h - tstr 0,010h,0,0,0,0,0,0,0,010,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0a8h,07eh,06ch,0fah ; expected crc - tmsg "cpd<r>........................" - -; cpi<r> (1) (6144 cycles) -cpi1: db 0d7h ; flag mask - tstr 0edh,0a1h,0,0,04d48h,0af4ah,0906bh,msbt,04e71h,1,093h,06ah,0907ch - tstr 0,010h,0,0,0,0,0,0,0,010,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 006h,0deh,0b3h,056h ; expected crc - tmsg "cpi<r>........................" - -; <daa,cpl,scf,ccf> -daaop: db 0d7h ; flag mask - tstr 027h,0,0,0,02141h,009fah,01d60h,0a559h,08d5bh,09079h,004h,08eh,0299dh - tstr 018h,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (65,536 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - db 09bh,04bh,0a6h,075h ; expected crc - tmsg "<daa,cpl,scf,ccf>............." - -; <inc,dec> a (3072 cycles) -inca: db 0d7h ; flag mask - tstr 03ch,0,0,0,04adfh,0d5d8h,0e598h,08a2bh,0a7b0h,0431bh,044h,05ah,0d030h - tstr 001h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0d1h,088h,015h,0a4h ; expected crc - tmsg "<inc,dec> a..................." - -; <inc,dec> b (3072 cycles) -incb: db 0d7h ; flag mask - tstr 004h,0,0,0,0d623h,0432dh,07a61h,08180h,05a86h,01e85h,086h,058h,09bbbh - tstr 001h,0,0,0,0,0,0,0,0,0ff00h,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 05fh,068h,022h,064h ; expected crc - tmsg "<inc,dec> b..................." - -; <inc,dec> bc (1536 cycles) -incbc: db 0d7h ; flag mask - tstr 003h,0,0,0,0cd97h,044abh,08dc9h,0e3e3h,011cch,0e8a4h,002h,049h,02a4dh - tstr 008h,0,0,0,0,0,0,0,0,0f821h,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0d2h,0aeh,03bh,0ech ; expected crc - tmsg "<inc,dec> bc.................." - -; <inc,dec> c (3072 cycles) -incc: db 0d7h ; flag mask - tstr 00ch,0,0,0,0d789h,00935h,0055bh,09f85h,08b27h,0d208h,095h,005h,00660h - tstr 001h,0,0,0,0,0,0,0,0,0ffh,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0c2h,084h,055h,04ch ; expected crc - tmsg "<inc,dec> c..................." - -; <inc,dec> d (3072 cycles) -incd: db 0d7h ; flag mask - tstr 014h,0,0,0,0a0eah,05fbah,065fbh,0981ch,038cch,0debch,043h,05ch,003bdh - tstr 001h,0,0,0,0,0,0,0,0ff00h,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 045h,023h,0deh,010h ; expected crc - tmsg "<inc,dec> d..................." - -; <inc,dec> de (1536 cycles) -incde: db 0d7h ; flag mask - tstr 013h,0,0,0,0342eh,0131dh,028c9h,00acah,09967h,03a2eh,092h,0f6h,09d54h - tstr 008h,0,0,0,0,0,0,0,0f821h,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0aeh,0c6h,0d4h,02ch ; expected crc - tmsg "<inc,dec> de.................." - -; <inc,dec> e (3072 cycles) -ince: db 0d7h ; flag mask - tstr 01ch,0,0,0,0602fh,04c0dh,02402h,0e2f5h,0a0f4h,0a10ah,013h,032h,05925h - tstr 001h,0,0,0,0,0,0,0,0ffh,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0e1h,075h,0afh,0cch ; expected crc - tmsg "<inc,dec> e..................." - -; <inc,dec> h (3072 cycles) -inch: db 0d7h ; flag mask - tstr 024h,0,0,0,01506h,0f2ebh,0e8ddh,0262bh,011a6h,0bc1ah,017h,006h,02818h - tstr 001h,0,0,0,0,0,0,0ff00h,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 01ch,0edh,084h,07dh ; expected crc - tmsg "<inc,dec> h..................." - -; <inc,dec> hl (1536 cycles) -inchl: db 0d7h ; flag mask - tstr 023h,0,0,0,0c3f4h,007a5h,01b6dh,04f04h,0e2c2h,0822ah,057h,0e0h,0c3e1h - tstr 008h,0,0,0,0,0,0,0f821h,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0fch,00dh,06dh,04ah ; expected crc - tmsg "<inc,dec> hl.................." - -; <inc,dec> ix (1536 cycles) -incix: db 0d7h ; flag mask - tstr 0ddh,023h,0,0,0bc3ch,00d9bh,0e081h,0adfdh,09a7fh,096e5h,013h,085h,00be2h - tstr 0,8,0,0,0,0,0f821h,0,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0a5h,04dh,0beh,031h ; expected crc - tmsg "<inc,dec> ix.................." - -; <inc,dec> iy (1536 cycles) -inciy: db 0d7h ; flag mask - tstr 0fdh,023h,0,0,09402h,0637ah,03182h,0c65ah,0b2e9h,0abb4h,016h,0f2h,06d05h - tstr 0,8,0,0,0,0f821h,0,0,0,0,0,0,0 ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 050h,05dh,051h,0a3h ; expected crc - tmsg "<inc,dec> iy.................." - -; <inc,dec> l (3072 cycles) -incl: db 0d7h ; flag mask - tstr 02ch,0,0,0,08031h,0a520h,04356h,0b409h,0f4c1h,0dfa2h,0d1h,03ch,03ea2h - tstr 001h,0,0,0,0,0,0,0ffh,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 056h,0cdh,006h,0f3h ; expected crc - tmsg "<inc,dec> l..................." - -; <inc,dec> (hl) (3072 cycles) -incm: db 0d7h ; flag mask - tstr 034h,0,0,0,0b856h,00c7ch,0e53eh,msbt,0877eh,0da58h,015h,05ch,01f37h - tstr 001h,0,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0b8h,03ah,0dch,0efh ; expected crc - tmsg "<inc,dec> (hl)................" - -; <inc,dec> sp (1536 cycles) -incsp: db 0d7h ; flag mask - tstr 033h,0,0,0,0346fh,0d482h,0d169h,0deb6h,0a494h,0f476h,053h,002h,0855bh - tstr 008h,0,0,0,0,0,0,0,0,0,0,0,0f821h ; (256 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 05dh,0ach,0d5h,027h ; expected crc - tmsg "<inc,dec> sp.................." - -; <inc,dec> (<ix,iy>+1) (6144 cycles) -incx: db 0d7h ; flag mask - tstr 0ddh,034h,1,0,0fa6eh,msbt-1,msbt-1,02c28h,08894h,05057h,016h,033h,0286fh - tstr 020h,1,0,0,0ffh,0,0,0,0,0,0,0,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 020h,058h,014h,070h ; expected crc - tmsg "<inc,dec> (<ix,iy>+1)........." - -; <inc,dec> ixh (3072 cycles) -incxh: db 0d7h ; flag mask - tstr 0ddh,024h,0,0,0b838h,0316ch,0c6d4h,03e01h,08358h,015b4h,081h,0deh,04259h - tstr 0,1,0,0,0,0ff00h,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 06fh,046h,036h,062h ; expected crc - tmsg "<inc,dec> ixh................." - -; <inc,dec> ixl (3072 cycles) -incxl: db 0d7h ; flag mask - tstr 0ddh,02ch,0,0,04d14h,07460h,076d4h,006e7h,032a2h,0213ch,0d6h,0d7h,099a5h - tstr 0,1,0,0,0,0ffh,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 002h,07bh,0efh,02ch ; expected crc - tmsg "<inc,dec> ixl................." - -; <inc,dec> iyh (3072 cycles) -incyh: db 0d7h ; flag mask - tstr 0ddh,024h,0,0,02836h,09f6fh,09116h,061b9h,082cbh,0e219h,092h,073h,0a98ch - tstr 0,1,0,0,0ff00h,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 02dh,096h,06ch,0f3h ; expected crc - tmsg "<inc,dec> iyh................." - -; <inc,dec> iyl (3072 cycles) -incyl: db 0d7h ; flag mask - tstr 0ddh,02ch,0,0,0d7c6h,062d5h,0a09eh,07039h,03e7eh,09f12h,090h,0d9h,0220fh - tstr 0,1,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 0fbh,0cbh,0bah,095h ; expected crc - tmsg "<inc,dec> iyl................." - -; ld <bc,de>,(nnnn) (32 cycles) -ld161: db 0d7h ; flag mask - tstr 0edh,04bh,msbtlo,msbthi,0f9a8h,0f559h,093a4h,0f5edh,06f96h,0d968h,086h,0e6h,04bd8h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 04dh,045h,0a9h,0ach ; expected crc - tmsg "ld <bc,de>,(nnnn)............." - -; ld hl,(nnnn) (16 cycles) -ld162: db 0d7h ; flag mask - tstr 02ah,msbtlo,msbthi,0,09863h,07830h,02077h,0b1feh,0b9fah,0abb8h,004h,006h,06015h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 05fh,097h,024h,087h ; expected crc - tmsg "ld hl,(nnnn).................." - -; ld sp,(nnnn) (16 cycles) -ld163: db 0d7h ; flag mask - tstr 0edh,07bh,msbtlo,msbthi,08dfch,057d7h,02161h,0ca18h,0c185h,027dah,083h,01eh,0f460h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 07ah,0ceh,0a1h,01bh ; expected crc - tmsg "ld sp,(nnnn).................." - -; ld <ix,iy>,(nnnn) (32 cycles) -ld164: db 0d7h ; flag mask - tstr 0ddh,02ah,msbtlo,msbthi,0ded7h,0a6fah,0f780h,0244ch,087deh,0bcc2h,016h,063h,04c96h - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 085h,08bh,0f1h,06dh ; expected crc - tmsg "ld <ix,iy>,(nnnn)............." - -; ld (nnnn),<bc,de> (64 cycles) -ld165: db 0d7h ; flag mask - tstr 0edh,043h,msbtlo,msbthi,01f98h,0844dh,0e8ach,0c9edh,0c95dh,08f61h,080h,03fh,0c7bfh - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0,0,0,0,-1,-1,0,0,0 ; (32 cycles) - db 064h,01eh,087h,015h ; expected crc - tmsg "ld (nnnn),<bc,de>............." - -; ld (nnnn),hl (16 cycles) -ld166: db 0d7h ; flag mask - tstr 022h,msbtlo,msbthi,0,0d003h,07772h,07f53h,03f72h,064eah,0e180h,010h,02dh,035e9h - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,0,0,0,-1,0,0,0,0,0 ; (16 cycles) - db 0a3h,060h,08bh,047h ; expected crc - tmsg "ld (nnnn),hl.................." - -; ld (nnnn),sp (16 cycles) -ld167: db 0d7h ; flag mask - tstr 0edh,073h,msbtlo,msbthi,0c0dch,0d1d6h,0ed5ah,0f356h,0afdah,06ca7h,044h,09fh,03f0ah - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,-1 ; (16 cycles) - db 016h,058h,05fh,0d7h ; expected crc - tmsg "ld (nnnn),sp.................." - -; ld (nnnn),<ix,iy> (64 cycles) -ld168: db 0d7h ; flag mask - tstr 0ddh,022h,msbtlo,msbthi,06cc3h,00d91h,06900h,08ef8h,0e3d6h,0c3f7h,0c6h,0d9h,0c2dfh - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0,-1,-1,0,0,0,0,0,0 ; (32 cycles) - db 0bah,010h,02ah,06bh ; expected crc - tmsg "ld (nnnn),<ix,iy>............." - -; ld <bc,de,hl,sp>,nnnn (64 cycles) -ld16im: db 0d7h ; flag mask - tstr 1,0,0,0,05c1ch,02d46h,08eb9h,06078h,074b1h,0b30eh,046h,0d1h,030cch - tstr 030h,0,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0ffh,0ffh,0,0,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0deh,039h,019h,069h ; expected crc - tmsg "ld <bc,de,hl,sp>,nnnn........." - -; ld <ix,iy>,nnnn (32 cycles) -ld16ix: db 0d7h ; flag mask - tstr 0ddh,021h,0,0,087e8h,02006h,0bd12h,0b69bh,07253h,0a1e5h,051h,013h,0f1bdh - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0ffh,0ffh,0,0,0,0,0,0,0,0,0 ; (16 cycles) - db 022h,07dh,0d5h,025h ; expected crc - tmsg "ld <ix,iy>,nnnn..............." - -; ld a,<(bc),(de)> (44 cycles) -ld8bd: db 0d7h ; flag mask - tstr 00ah,0,0,0,0b3a8h,01d2ah,07f8eh,042ach,msbt,msbt,0c6h,0b1h,0ef8eh - tstr 010h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,-1,0 ; (22 cycles) - db 0b0h,081h,089h,035h ; expected crc - tmsg "ld a,<(bc),(de)>.............." - -; ld <b,c,d,e,h,l,(hl),a>,nn (64 cycles) -ld8im: db 0d7h ; flag mask - tstr 6,0,0,0,0c407h,0f49dh,0d13dh,00339h,0de89h,07455h,053h,0c0h,05509h - tstr 038h,0,0,0,0,0,0,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 0f1h,0dah,0b5h,056h ; expected crc - tmsg "ld <b,c,d,e,h,l,(hl),a>,nn...." - -; ld (<ix,iy>+1),nn (32 cycles) -ld8imx: db 0d7h ; flag mask - tstr 0ddh,036h,1,0,01b45h,msbt-1,msbt-1,0d5c1h,061c7h,0bdc4h,0c0h,085h,0cd16h - tstr 020h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,-1,0,0,0,0,0,0,0,-1,0 ; (16 cycles) - db 026h,0dbh,047h,07eh ; expected crc - tmsg "ld (<ix,iy>+1),nn............." - -; ld <b,c,d,e>,(<ix,iy>+1) (512 cycles) -ld8ix1: db 0d7h ; flag mask - tstr 0ddh,046h,1,0,0d016h,msbt-1,msbt-1,04260h,07f39h,00404h,097h,04ah,0d085h - tstr 020h,018h,0,0,0,1,1,0,0,0,0,0,0 ; (32 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0cch,011h,006h,0a8h ; expected crc - tmsg "ld <b,c,d,e>,(<ix,iy>+1)......" - -; ld <h,l>,(<ix,iy>+1) (256 cycles) -ld8ix2: db 0d7h ; flag mask - tstr 0ddh,066h,1,0,084e0h,msbt-1,msbt-1,09c52h,0a799h,049b6h,093h,000h,0eeadh - tstr 020h,008h,0,0,0,1,1,0,0,0,0,0,0 ; (16 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0fah,02ah,04dh,003h ; expected crc - tmsg "ld <h,l>,(<ix,iy>+1).........." - -; ld a,(<ix,iy>+1) (128 cycles) -ld8ix3: db 0d7h ; flag mask - tstr 0ddh,07eh,1,0,0d8b6h,msbt-1,msbt-1,0c612h,0df07h,09cd0h,043h,0a6h,0a0e5h - tstr 020h,0,0,0,0,1,1,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,0,0 ; (16 cycles) - db 0a5h,0e9h,0ach,064h ; expected crc - tmsg "ld a,(<ix,iy>+1).............." - -; ld <ixh,ixl,iyh,iyl>,nn (32 cycles) -ld8ixy: db 0d7h ; flag mask - tstr 0ddh,026h,0,0,03c53h,04640h,0e179h,07711h,0c107h,01afah,081h,0adh,05d9bh - tstr 020h,8,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 024h,0e8h,082h,08bh ; expected crc - tmsg "ld <ixh,ixl,iyh,iyl>,nn......." - -; ld <b,c,d,e,h,l,a>,<b,c,d,e,h,l,a> (3456 cycles) -ld8rr: db 0d7h ; flag mask - tstr 040h,0,0,0,072a4h,0a024h,061ach,msbt,082c7h,0718fh,097h,08fh,0ef8eh - tstr 03fh,0,0,0,0,0,0,0,0,0,0,0,0 ; (64 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (54 cycles) - db 074h,04bh,001h,018h ; expected crc - tmsg "ld <bcdehla>,<bcdehla>........" - -; ld <b,c,d,e,ixy,a>,<b,c,d,e,ixy,a> (6912 cycles) -ld8rrx: db 0d7h ; flag mask - tstr 0ddh,040h,0,0,0bcc5h,msbt,msbt,msbt,02fc2h,098c0h,083h,01fh,03bcdh - tstr 020h,03fh,0,0,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (54 cycles) - db 047h,08bh,0a3h,06bh ; expected crc - tmsg "ld <bcdexya>,<bcdexya>........" - -; ld a,(nnnn) / ld (nnnn),a (44 cycles) -lda: db 0d7h ; flag mask - tstr 032h,msbtlo,msbthi,0,0fd68h,0f4ech,044a0h,0b543h,00653h,0cdbah,0d2h,04fh,01fd8h - tstr 008h,0,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycle) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,-1,0 ; (22 cycles) - db 0c9h,026h,02dh,0e5h ; expected crc - tmsg "ld a,(nnnn) / ld (nnnn),a....." - -; ldd<r> (1) (44 cycles) -ldd1: db 0d7h ; flag mask - tstr 0edh,0a8h,0,0,09852h,068fah,066a1h,msbt+3,msbt+1,1,0c1h,068h,020b7h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 094h,0f4h,027h,069h ; expected crc - tmsg "ldd<r> (1)...................." - -; ldd<r> (2) (44 cycles) -ldd2: db 0d7h ; flag mask - tstr 0edh,0a8h,0,0,0f12eh,0eb2ah,0d5bah,msbt+3,msbt+1,2,047h,0ffh,0fbe4h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 05ah,090h,07eh,0d4h ; expected crc - tmsg "ldd<r> (2)...................." - -; ldi<r> (1) (44 cycles) -ldi1: db 0d7h ; flag mask - tstr 0edh,0a0h,0,0,0fe30h,003cdh,06058h,msbt+2,msbt,1,004h,060h,02688h - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 09ah,0bdh,0f6h,0b5h ; expected crc - tmsg "ldi<r> (1)...................." - -; ldi<r> (2) (44 cycles) -ldi2: db 0d7h ; flag mask - tstr 0edh,0a0h,0,0,04aceh,0c26eh,0b188h,msbt+2,msbt,2,014h,02dh,0a39fh - tstr 0,010h,0,0,0,0,0,0,0,0,0,0,0 ; (2 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0d7h,0,0 ; (22 cycles) - db 0ebh,059h,089h,01bh ; expected crc - tmsg "ldi<r> (2)...................." - -; neg (16,384 cycles) -negop: db 0d7h ; flag mask - tstr 0edh,044h,0,0,038a2h,05f6bh,0d934h,057e4h,0d2d6h,04642h,043h,05ah,009cch - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (16,384 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,0,0 ; (1 cycle) - db 06ah,03ch,03bh,0bdh ; expected crc - tmsg "neg..........................." - -; <rld,rrd> (7168 cycles) -rldop: db 0d7h ; flag mask - tstr 0edh,067h,0,0,091cbh,0c48bh,0fa62h,msbt,0e720h,0b479h,040h,006h,08ae2h - tstr 0,8,0,0,0ffh,0,0,0,0,0,0,0,0 ; (512 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,-1,0 ; (14 cycles) - db 095h,05bh,0a3h,026h ; expected crc - tmsg "<rrd,rld>....................." - -; <rlca,rrca,rla,rra> (6144 cycles) -rot8080: db 0d7h ; flag mask - tstr 7,0,0,0,0cb92h,06d43h,00a90h,0c284h,00c53h,0f50eh,091h,0ebh,040fch - tstr 018h,0,0,0,0,0,0,0,0,0,0,-1,0 ; (1024 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0d7h,0,0 ; (6 cycles) - db 025h,013h,030h,0aeh ; expected crc - tmsg "<rlca,rrca,rla,rra>..........." - -; shift/rotate (<ix,iy>+1) (416 cycles) -rotxy: db 0d7h ; flag mask - tstr 0ddh,0cbh,1,6,0ddafh,msbt-1,msbt-1,0ff3ch,0dbf6h,094f4h,082h,080h,061d9h - tstr 020h,0,0,038h,0,0,0,0,0,0,080h,0,0 ; (32 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,057h,0,0 ; (13 cycles) - db 071h,03ah,0cdh,081h ; expected crc - tmsg "shf/rot (<ix,iy>+1)..........." - -; shift/rotate <b,c,d,e,h,l,(hl),a> (6784 cycles) -rotz80: db 0d7h ; flag mask - tstr 0cbh,0,0,0,0ccebh,05d4ah,0e007h,msbt,01395h,030eeh,043h,078h,03dadh - tstr 0,03fh,0,0,0,0,0,0,0,0,080h,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,057h,-1,0 ; (53 cycles) - db 0ebh,060h,04dh,058h ; expected crc - tmsg "shf/rot <b,c,d,e,h,l,(hl),a>.." - -; <set,res> n,<b,c,d,e,h,l,(hl),a> (7936 cycles) -srz80: db 0d7h ; flag mask - tstr 0cbh,080h,0,0,02cd5h,097abh,039ffh,msbt,0d14bh,06ab2h,053h,027h,0b538h - tstr 0,07fh,0,0,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,-1,-1,0d7h,-1,0 ; (62 cycles) - db 08bh,057h,0f0h,008h ; expected crc - tmsg "<set,res> n,<bcdehl(hl)a>....." - -; <set,res> n,(<ix,iy>+1) (1792 cycles) -srzx: db 0d7h ; flag mask - tstr 0ddh,0cbh,1,086h,0fb44h,msbt-1,msbt-1,0ba09h,068beh,032d8h,010h,05eh,0a867h - tstr 020h,0,0,078h,0,0,0,0,0,0,0,0,0 ; (128 cycles) - tstr 0,0,0,0,0ffh,0,0,0,0,0,0d7h,0,0 ;(14 cycles) - db 0cch,063h,0f9h,08ah ; expected crc - tmsg "<set,res> n,(<ix,iy>+1)......." - -; ld (<ix,iy>+1),<b,c,d,e> (1024 cycles) -st8ix1: db 0d7h ; flag mask - tstr 0ddh,070h,1,0,0270dh,msbt-1,msbt-1,0b73ah,0887bh,099eeh,086h,070h,0ca07h - tstr 020h,003h,0,0,0,1,1,0,0,0,0,0,0 ; (32 cycles) - tstr 0,0,0,0,0,0,0,0,-1,-1,0,0,0 ; (32 cycles) - db 004h,062h,06ah,0bfh ; expected crc - tmsg "ld (<ix,iy>+1),<b,c,d,e>......" - -; ld (<ix,iy>+1),<h,l> (256 cycles) -st8ix2: db 0d7h ; flag mask - tstr 0ddh,074h,1,0,0b664h,msbt-1,msbt-1,0e8ach,0b5f5h,0aafeh,012h,010h,09566h - tstr 020h,001h,0,0,0,1,1,0,0,0,0,0,0 ; (16 cycles) - tstr 0,0,0,0,0,0,0,-1,0,0,0,0,0 ; (32 cycles) - db 06ah,01ah,088h,031h ; expected crc - tmsg "ld (<ix,iy>+1),<h,l>.........." - -; ld (<ix,iy>+1),a (64 cycles) -st8ix3: db 0d7h ; flag mask - tstr 0ddh,077h,1,0,067afh,msbt-1,msbt-1,04f13h,00644h,0bcd7h,050h,0ach,05fafh - tstr 020h,0,0,0,0,1,1,0,0,0,0,0,0 ; (8 cycles) - tstr 0,0,0,0,0,0,0,0,0,0,0,-1,0 ; (8 cycles) - db 0cch,0beh,05ah,096h ; expected crc - tmsg "ld (<ix,iy>+1),a.............." - -; ld (<bc,de>),a (96 cycles) -stabd: db 0d7h ; flag mask - tstr 2,0,0,0,00c3bh,0b592h,06cffh,0959eh,msbt,msbt+1,0c1h,021h,0bde7h - tstr 018h,0,0,0,0,0,0,0,0,0,0,0,0 ; (4 cycles) - tstr 0,0,0,0,-1,0,0,0,0,0,0,-1,0 ; (24 cycles) - db 07ah,04ch,011h,04fh ; expected crc - tmsg "ld (<bc,de>),a................" - -; start test pointed to by (hl) -stt: push hl - ld a,(hl) ; get pointer to test - inc hl - ld h,(hl) - ld l,a - ld a,(hl) ; flag mask - ld (flgmsk+1),a - inc hl - push hl - ld de,20 - add hl,de ; point to incmask - ld de,counter - call initmask - pop hl - push hl - ld de,20+20 - add hl,de ; point to scanmask - ld de,shifter - call initmask - ld hl,shifter - ld (hl),1 ; first bit - pop hl - push hl - ld de,iut ; copy initial instruction under test - ld bc,4 - ldir - ld de,msbt ; copy initial machine state - ld bc,16 - ldir - ld de,20+20+4 ; skip incmask, scanmask and expcrc - add hl,de - ex de,hl - ld c,9 - call bdos ; show test name - call initcrc ; initialise crc -; test loop -tlp: ld a,(iut) - cp 076h ; pragmatically avoid halt intructions - jp z,tlp2 - and 0dfh - cp 0ddh - jp nz,tlp1 - ld a,(iut+1) - cp 076h -tlp1: call nz,test ; execute the test instruction -tlp2: call count ; increment the counter - call nz,shift ; shift the scan bit - pop hl ; pointer to test case - jp z,tlp3 ; done if shift returned NZ - ld de,20+20+20 - add hl,de ; point to expected crc - call cmpcrc - ld de,okmsg - jp z,tlpok - ld de,ermsg1 - ld c,9 - call bdos - call phex8 - ld de,ermsg2 - ld c,9 - call bdos - ld hl,crcval - call phex8 - ld de,crlf -tlpok: ld c,9 - call bdos - pop hl - inc hl - inc hl - ret - -tlp3: push hl - ld a,1 ; initialise count and shift scanners - ld (cntbit),a - ld (shfbit),a - ld hl,counter - ld (cntbyt),hl - ld hl,shifter - ld (shfbyt),hl - - ld b,4 ; bytes in iut field - pop hl ; pointer to test case - push hl - ld de,iut - call setup ; setup iut - ld b,16 ; bytes in machine state - ld de,msbt - call setup ; setup machine state - jp tlp - -; setup a field of the test case -; b = number of bytes -; hl = pointer to base case -; de = destination -setup: call subyte - inc hl - dec b - jp nz,setup - ret - -subyte: push bc - push de - push hl - ld c,(hl) ; get base byte - ld de,20 - add hl,de ; point to incmask - ld a,(hl) - cp 0 - jp z,subshf - ld b,8 ; 8 bits -subclp: rrca - push af - ld a,0 - call c,nxtcbit ; get next counter bit if mask bit was set - xor c ; flip bit if counter bit was set - rrca - ld c,a - pop af - dec b - jp nz,subclp - ld b,8 -subshf: ld de,20 - add hl,de ; point to shift mask - ld a,(hl) - cp 0 - jp z,substr - ld b,8 ; 8 bits -sbshf1: rrca - push af - ld a,0 - call c,nxtsbit ; get next shifter bit if mask bit was set - xor c ; flip bit if shifter bit was set - rrca - ld c,a - pop af - dec b - jp nz,sbshf1 -substr: pop hl - pop de - ld a,c - ld (de),a ; mangled byte to destination - inc de - pop bc - ret - -; get next counter bit in low bit of a -cntbit: ds 1 -cntbyt: ds 2 - -nxtcbit: push bc - push hl - ld hl,(cntbyt) - ld b,(hl) - ld hl,cntbit - ld a,(hl) - ld c,a - rlca - ld (hl),a - cp 1 - jp nz,ncb1 - ld hl,(cntbyt) - inc hl - ld (cntbyt),hl -ncb1: ld a,b - and c - pop hl - pop bc - ret z - ld a,1 - ret - -; get next shifter bit in low bit of a -shfbit: ds 1 -shfbyt: ds 2 - -nxtsbit: push bc - push hl - ld hl,(shfbyt) - ld b,(hl) - ld hl,shfbit - ld a,(hl) - ld c,a - rlca - ld (hl),a - cp 1 - jp nz,nsb1 - ld hl,(shfbyt) - inc hl - ld (shfbyt),hl -nsb1: ld a,b - and c - pop hl - pop bc - ret z - ld a,1 - ret - - -; clear memory at hl, bc bytes -clrmem: push af - push bc - push de - push hl - ld (hl),0 - ld d,h - ld e,l - inc de - dec bc - ldir - pop hl - pop de - pop bc - pop af - ret - -; initialise counter or shifter -; de = pointer to work area for counter or shifter -; hl = pointer to mask -initmask: - push de - ex de,hl - ld bc,20+20 - call clrmem ; clear work area - ex de,hl - ld b,20 ; byte counter - ld c,1 ; first bit - ld d,0 ; bit counter -imlp: ld e,(hl) -imlp1: ld a,e - and c - jp z,imlp2 - inc d -imlp2: ld a,c - rlca - ld c,a - cp 1 - jp nz,imlp1 - inc hl - dec b - jp nz,imlp -; got number of 1-bits in mask in reg d - ld a,d - and 0f8h - rrca - rrca - rrca ; divide by 8 (get byte offset) - ld l,a - ld h,0 - ld a,d - and 7 ; bit offset - inc a - ld b,a - ld a,080h -imlp3: rlca - dec b - jp nz,imlp3 - pop de - add hl,de - ld de,20 - add hl,de - ld (hl),a - ret - -; multi-byte counter -count: push bc - push de - push hl - ld hl,counter ; 20 byte counter starts here - ld de,20 ; somewhere in here is the stop bit - ex de,hl - add hl,de - ex de,hl -cntlp: inc (hl) - ld a,(hl) - cp 0 - jp z,cntlp1 ; overflow to next byte - ld b,a - ld a,(de) - and b ; test for terminal value - jp z,cntend - ld (hl),0 ; reset to zero -cntend: pop bc - pop de - pop hl - ret - -cntlp1: inc hl - inc de - jp cntlp - - -; multi-byte shifter -shift: push bc - push de - push hl - ld hl,shifter ; 20 byte shift register starts here - ld de,20 ; somewhere in here is the stop bit - ex de,hl - add hl,de - ex de,hl -shflp: ld a,(hl) - or a - jp z,shflp1 - ld b,a - ld a,(de) - and b - jp nz,shlpe - ld a,b - rlca - cp 1 - jp nz,shflp2 - ld (hl),0 - inc hl - inc de -shflp2: ld (hl),a - xor a ; set Z -shlpe: pop hl - pop de - pop bc - ret -shflp1: inc hl - inc de - jp shflp - -counter: ds 2*20 -shifter: ds 2*20 - -; test harness -test: push af - push bc - push de - push hl - if 0 - ld de,crlf - ld c,9 - call bdos - ld hl,iut - ld b,4 - call hexstr - ld e,' ' - ld c,2 - call bdos - ld b,16 - ld hl,msbt - call hexstr - endif - di ; disable interrupts - ld (spsav),sp ; save stack pointer - ld sp,msbt+2 ; point to test-case machine state - pop iy ; and load all regs - pop ix - pop hl - pop de - pop bc - pop af - ld sp,(spbt) -iut: ds 4 ; max 4 byte instruction under test - ld (spat),sp ; save stack pointer - ld sp,spat - push af ; save other registers - push bc - push de - push hl - push ix - push iy - ld sp,(spsav) ; restore stack pointer - ei ; enable interrupts - ld hl,(msbt) ; copy memory operand - ld (msat),hl - ld hl,flgsat ; flags after test - ld a,(hl) -flgmsk: and 0d7h ; mask-out irrelevant bits (self-modified code!) - ld (hl),a - ld b,16 ; total of 16 bytes of state - ld de,msat - ld hl,crcval -tcrc: ld a,(de) - inc de - call updcrc ; accumulate crc of this test case - dec b - jp nz,tcrc - if 0 - ld e,' ' - ld c,2 - call bdos - ld hl,crcval - call phex8 - ld de,crlf - ld c,9 - call bdos - ld hl,msat - ld b,16 - call hexstr - ld de,crlf - ld c,9 - call bdos - endif - pop hl - pop de - pop bc - pop af - ret - -; machine state after test -msat: ds 14 ; memop,iy,ix,hl,de,bc,af -spat: ds 2 ; stack pointer after test -flgsat: equ spat-2 ; flags - -spsav: ds 2 ; saved stack pointer - -; display hex string (pointer in hl, byte count in b) -hexstr: ld a,(hl) - call phex2 - inc hl - dec b - jp nz,hexstr - ret - -; display hex -; display the big-endian 32-bit value pointed to by hl -phex8: push af - push bc - push hl - ld b,4 -ph8lp: ld a,(hl) - call phex2 - inc hl - dec b - jp nz,ph8lp - pop hl - pop bc - pop af - ret - -; display byte in a -phex2: push af - rrca - rrca - rrca - rrca - call phex1 - pop af -; fall through - -; display low nibble in a -phex1: push af - push bc - push de - push hl - and 0fh - cp 10 - jp c,ph11 - add a,'a'-'9'-1 -ph11: add a,'0' - ld e,a - ld c,2 - call bdos - pop hl - pop de - pop bc - pop af - ret - -bdos push af - push bc - push de - push hl - call 5 - pop hl - pop de - pop bc - pop af - ret - -msg1: db "Z80 instruction exerciser",10,13,"$" -msg2: db "Tests complete$" -okmsg: db " OK",10,13,"$" -ermsg1: db " ERROR **** crc expected:$" -ermsg2: db " found:$" -crlf: db 10,13,'$' - -; compare crc -; hl points to value to compare to crcval -cmpcrc: push bc - push de - push hl - ld de,crcval - ld b,4 -cclp: ld a,(de) - cp (hl) - jp nz,cce - inc hl - inc de - dec b - jp nz,cclp -cce: pop hl - pop de - pop bc - ret - -; 32-bit crc routine -; entry: a contains next byte, hl points to crc -; exit: crc updated -updcrc: push af - push bc - push de - push hl - push hl - ld de,3 - add hl,de ; point to low byte of old crc - xor (hl) ; xor with new byte - ld l,a - ld h,0 - add hl,hl ; use result as index into table of 4 byte entries - add hl,hl - ex de,hl - ld hl,crctab - add hl,de ; point to selected entry in crctab - ex de,hl - pop hl - ld bc,4 ; c = byte count, b = accumulator -crclp: ld a,(de) - xor b - ld b,(hl) - ld (hl),a - inc de - inc hl - dec c - jp nz,crclp - if 0 - ld hl,crcval - call phex8 - ld de,crlf - ld c,9 - call bdos - endif - pop hl - pop de - pop bc - pop af - ret - -initcrc:push af - push bc - push hl - ld hl,crcval - ld a,0ffh - ld b,4 -icrclp: ld (hl),a - inc hl - dec b - jp nz,icrclp - pop hl - pop bc - pop af - ret - -crcval ds 4 - -crctab: db 000h,000h,000h,000h - db 077h,007h,030h,096h - db 0eeh,00eh,061h,02ch - db 099h,009h,051h,0bah - db 007h,06dh,0c4h,019h - db 070h,06ah,0f4h,08fh - db 0e9h,063h,0a5h,035h - db 09eh,064h,095h,0a3h - db 00eh,0dbh,088h,032h - db 079h,0dch,0b8h,0a4h - db 0e0h,0d5h,0e9h,01eh - db 097h,0d2h,0d9h,088h - db 009h,0b6h,04ch,02bh - db 07eh,0b1h,07ch,0bdh - db 0e7h,0b8h,02dh,007h - db 090h,0bfh,01dh,091h - db 01dh,0b7h,010h,064h - db 06ah,0b0h,020h,0f2h - db 0f3h,0b9h,071h,048h - db 084h,0beh,041h,0deh - db 01ah,0dah,0d4h,07dh - db 06dh,0ddh,0e4h,0ebh - db 0f4h,0d4h,0b5h,051h - db 083h,0d3h,085h,0c7h - db 013h,06ch,098h,056h - db 064h,06bh,0a8h,0c0h - db 0fdh,062h,0f9h,07ah - db 08ah,065h,0c9h,0ech - db 014h,001h,05ch,04fh - db 063h,006h,06ch,0d9h - db 0fah,00fh,03dh,063h - db 08dh,008h,00dh,0f5h - db 03bh,06eh,020h,0c8h - db 04ch,069h,010h,05eh - db 0d5h,060h,041h,0e4h - db 0a2h,067h,071h,072h - db 03ch,003h,0e4h,0d1h - db 04bh,004h,0d4h,047h - db 0d2h,00dh,085h,0fdh - db 0a5h,00ah,0b5h,06bh - db 035h,0b5h,0a8h,0fah - db 042h,0b2h,098h,06ch - db 0dbh,0bbh,0c9h,0d6h - db 0ach,0bch,0f9h,040h - db 032h,0d8h,06ch,0e3h - db 045h,0dfh,05ch,075h - db 0dch,0d6h,00dh,0cfh - db 0abh,0d1h,03dh,059h - db 026h,0d9h,030h,0ach - db 051h,0deh,000h,03ah - db 0c8h,0d7h,051h,080h - db 0bfh,0d0h,061h,016h - db 021h,0b4h,0f4h,0b5h - db 056h,0b3h,0c4h,023h - db 0cfh,0bah,095h,099h - db 0b8h,0bdh,0a5h,00fh - db 028h,002h,0b8h,09eh - db 05fh,005h,088h,008h - db 0c6h,00ch,0d9h,0b2h - db 0b1h,00bh,0e9h,024h - db 02fh,06fh,07ch,087h - db 058h,068h,04ch,011h - db 0c1h,061h,01dh,0abh - db 0b6h,066h,02dh,03dh - db 076h,0dch,041h,090h - db 001h,0dbh,071h,006h - db 098h,0d2h,020h,0bch - db 0efh,0d5h,010h,02ah - db 071h,0b1h,085h,089h - db 006h,0b6h,0b5h,01fh - db 09fh,0bfh,0e4h,0a5h - db 0e8h,0b8h,0d4h,033h - db 078h,007h,0c9h,0a2h - db 00fh,000h,0f9h,034h - db 096h,009h,0a8h,08eh - db 0e1h,00eh,098h,018h - db 07fh,06ah,00dh,0bbh - db 008h,06dh,03dh,02dh - db 091h,064h,06ch,097h - db 0e6h,063h,05ch,001h - db 06bh,06bh,051h,0f4h - db 01ch,06ch,061h,062h - db 085h,065h,030h,0d8h - db 0f2h,062h,000h,04eh - db 06ch,006h,095h,0edh - db 01bh,001h,0a5h,07bh - db 082h,008h,0f4h,0c1h - db 0f5h,00fh,0c4h,057h - db 065h,0b0h,0d9h,0c6h - db 012h,0b7h,0e9h,050h - db 08bh,0beh,0b8h,0eah - db 0fch,0b9h,088h,07ch - db 062h,0ddh,01dh,0dfh - db 015h,0dah,02dh,049h - db 08ch,0d3h,07ch,0f3h - db 0fbh,0d4h,04ch,065h - db 04dh,0b2h,061h,058h - db 03ah,0b5h,051h,0ceh - db 0a3h,0bch,000h,074h - db 0d4h,0bbh,030h,0e2h - db 04ah,0dfh,0a5h,041h - db 03dh,0d8h,095h,0d7h - db 0a4h,0d1h,0c4h,06dh - db 0d3h,0d6h,0f4h,0fbh - db 043h,069h,0e9h,06ah - db 034h,06eh,0d9h,0fch - db 0adh,067h,088h,046h - db 0dah,060h,0b8h,0d0h - db 044h,004h,02dh,073h - db 033h,003h,01dh,0e5h - db 0aah,00ah,04ch,05fh - db 0ddh,00dh,07ch,0c9h - db 050h,005h,071h,03ch - db 027h,002h,041h,0aah - db 0beh,00bh,010h,010h - db 0c9h,00ch,020h,086h - db 057h,068h,0b5h,025h - db 020h,06fh,085h,0b3h - db 0b9h,066h,0d4h,009h - db 0ceh,061h,0e4h,09fh - db 05eh,0deh,0f9h,00eh - db 029h,0d9h,0c9h,098h - db 0b0h,0d0h,098h,022h - db 0c7h,0d7h,0a8h,0b4h - db 059h,0b3h,03dh,017h - db 02eh,0b4h,00dh,081h - db 0b7h,0bdh,05ch,03bh - db 0c0h,0bah,06ch,0adh - db 0edh,0b8h,083h,020h - db 09ah,0bfh,0b3h,0b6h - db 003h,0b6h,0e2h,00ch - db 074h,0b1h,0d2h,09ah - db 0eah,0d5h,047h,039h - db 09dh,0d2h,077h,0afh - db 004h,0dbh,026h,015h - db 073h,0dch,016h,083h - db 0e3h,063h,00bh,012h - db 094h,064h,03bh,084h - db 00dh,06dh,06ah,03eh - db 07ah,06ah,05ah,0a8h - db 0e4h,00eh,0cfh,00bh - db 093h,009h,0ffh,09dh - db 00ah,000h,0aeh,027h - db 07dh,007h,09eh,0b1h - db 0f0h,00fh,093h,044h - db 087h,008h,0a3h,0d2h - db 01eh,001h,0f2h,068h - db 069h,006h,0c2h,0feh - db 0f7h,062h,057h,05dh - db 080h,065h,067h,0cbh - db 019h,06ch,036h,071h - db 06eh,06bh,006h,0e7h - db 0feh,0d4h,01bh,076h - db 089h,0d3h,02bh,0e0h - db 010h,0dah,07ah,05ah - db 067h,0ddh,04ah,0cch - db 0f9h,0b9h,0dfh,06fh - db 08eh,0beh,0efh,0f9h - db 017h,0b7h,0beh,043h - db 060h,0b0h,08eh,0d5h - db 0d6h,0d6h,0a3h,0e8h - db 0a1h,0d1h,093h,07eh - db 038h,0d8h,0c2h,0c4h - db 04fh,0dfh,0f2h,052h - db 0d1h,0bbh,067h,0f1h - db 0a6h,0bch,057h,067h - db 03fh,0b5h,006h,0ddh - db 048h,0b2h,036h,04bh - db 0d8h,00dh,02bh,0dah - db 0afh,00ah,01bh,04ch - db 036h,003h,04ah,0f6h - db 041h,004h,07ah,060h - db 0dfh,060h,0efh,0c3h - db 0a8h,067h,0dfh,055h - db 031h,06eh,08eh,0efh - db 046h,069h,0beh,079h - db 0cbh,061h,0b3h,08ch - db 0bch,066h,083h,01ah - db 025h,06fh,0d2h,0a0h - db 052h,068h,0e2h,036h - db 0cch,00ch,077h,095h - db 0bbh,00bh,047h,003h - db 022h,002h,016h,0b9h - db 055h,005h,026h,02fh - db 0c5h,0bah,03bh,0beh - db 0b2h,0bdh,00bh,028h - db 02bh,0b4h,05ah,092h - db 05ch,0b3h,06ah,004h - db 0c2h,0d7h,0ffh,0a7h - db 0b5h,0d0h,0cfh,031h - db 02ch,0d9h,09eh,08bh - db 05bh,0deh,0aeh,01dh - db 09bh,064h,0c2h,0b0h - db 0ech,063h,0f2h,026h - db 075h,06ah,0a3h,09ch - db 002h,06dh,093h,00ah - db 09ch,009h,006h,0a9h - db 0ebh,00eh,036h,03fh - db 072h,007h,067h,085h - db 005h,000h,057h,013h - db 095h,0bfh,04ah,082h - db 0e2h,0b8h,07ah,014h - db 07bh,0b1h,02bh,0aeh - db 00ch,0b6h,01bh,038h - db 092h,0d2h,08eh,09bh - db 0e5h,0d5h,0beh,00dh - db 07ch,0dch,0efh,0b7h - db 00bh,0dbh,0dfh,021h - db 086h,0d3h,0d2h,0d4h - db 0f1h,0d4h,0e2h,042h - db 068h,0ddh,0b3h,0f8h - db 01fh,0dah,083h,06eh - db 081h,0beh,016h,0cdh - db 0f6h,0b9h,026h,05bh - db 06fh,0b0h,077h,0e1h - db 018h,0b7h,047h,077h - db 088h,008h,05ah,0e6h - db 0ffh,00fh,06ah,070h - db 066h,006h,03bh,0cah - db 011h,001h,00bh,05ch - db 08fh,065h,09eh,0ffh - db 0f8h,062h,0aeh,069h - db 061h,06bh,0ffh,0d3h - db 016h,06ch,0cfh,045h - db 0a0h,00ah,0e2h,078h - db 0d7h,00dh,0d2h,0eeh - db 04eh,004h,083h,054h - db 039h,003h,0b3h,0c2h - db 0a7h,067h,026h,061h - db 0d0h,060h,016h,0f7h - db 049h,069h,047h,04dh - db 03eh,06eh,077h,0dbh - db 0aeh,0d1h,06ah,04ah - db 0d9h,0d6h,05ah,0dch - db 040h,0dfh,00bh,066h - db 037h,0d8h,03bh,0f0h - db 0a9h,0bch,0aeh,053h - db 0deh,0bbh,09eh,0c5h - db 047h,0b2h,0cfh,07fh - db 030h,0b5h,0ffh,0e9h - db 0bdh,0bdh,0f2h,01ch - db 0cah,0bah,0c2h,08ah - db 053h,0b3h,093h,030h - db 024h,0b4h,0a3h,0a6h - db 0bah,0d0h,036h,005h - db 0cdh,0d7h,006h,093h - db 054h,0deh,057h,029h - db 023h,0d9h,067h,0bfh - db 0b3h,066h,07ah,02eh - db 0c4h,061h,04ah,0b8h - db 05dh,068h,01bh,002h - db 02ah,06fh,02bh,094h - db 0b4h,00bh,0beh,037h - db 0c3h,00ch,08eh,0a1h - db 05ah,005h,0dfh,01bh - db 02dh,002h,0efh,08dh - |