Thread: [Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [311] branches/Release-0_8_0
                
                Brought to you by:
                
                    fredm
                    
                
            
            
        
        
        
    | 
      
      
      From: <fr...@us...> - 2007-03-10 12:53:35
       | 
| Revision: 311
          http://svn.sourceforge.net/fuse-for-macosx/?rev=311&view=rev
Author:   fredm
Date:     2007-03-10 04:53:34 -0800 (Sat, 10 Mar 2007)
Log Message:
-----------
Merge up to libspectrum-0.3.0-pre2 and fuse-20070310.
Modified Paths:
--------------
    branches/Release-0_8_0/fuse/configure.in
    branches/Release-0_8_0/fuse/display.c
    branches/Release-0_8_0/fuse/fuse.cpp
    branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
    branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
    branches/Release-0_8_0/fuse/fusepb/SDLMain.mm
    branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html
    branches/Release-0_8_0/fuse/hacking/ChangeLog
    branches/Release-0_8_0/fuse/hacking/cvs-tags
    branches/Release-0_8_0/fuse/if1.c
    branches/Release-0_8_0/fuse/man/fuse.1
    branches/Release-0_8_0/fuse/rzx.c
    branches/Release-0_8_0/fuse/settings.dat
    branches/Release-0_8_0/fuse/sound/aosound.c
    branches/Release-0_8_0/fuse/sound/coreaudiosound.c
    branches/Release-0_8_0/fuse/sound/sdlsound.c
    branches/Release-0_8_0/fuse/sound.c
    branches/Release-0_8_0/fuse/ui/gtk/gtkui.c
    branches/Release-0_8_0/fuse/ui.c
    branches/Release-0_8_0/fuse/utils.c
    branches/Release-0_8_0/fuse/widget/filesel.c
    branches/Release-0_8_0/libspectrum/Info.plist
    branches/Release-0_8_0/libspectrum/libspectrum/ChangeLog
    branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.txt
    branches/Release-0_8_0/libspectrum/libspectrum/hacking/ChangeLog
    branches/Release-0_8_0/libspectrum/libspectrum/internals.h
    branches/Release-0_8_0/libspectrum/libspectrum/libspectrum.h.in
    branches/Release-0_8_0/libspectrum/libspectrum/rzx.c
    branches/Release-0_8_0/libspectrum/libspectrum/tzx_read.c
    branches/Release-0_8_0/libspectrum/libspectrum.h
Modified: branches/Release-0_8_0/fuse/configure.in
===================================================================
--- branches/Release-0_8_0/fuse/configure.in	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/configure.in	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155 2007/02/02 16:21:50 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.1 2007/03/03 21:26:14 pak21 Exp $
 
 dnl This program is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -389,9 +389,9 @@
 dnl Check if a version of libao which supplies ao_open_live is available
 AC_MSG_CHECKING(whether libao requested)
 AC_ARG_WITH(libao,
-[  --without-libao           don't use libao],
+[  --with-libao            use libao for sound output],
 if test "$withval" = no; then libao=no; else libao=yes; fi,
-libao=yes)
+libao=no)
 AC_MSG_RESULT($libao)
 if test "$libao" = yes; then
   AC_CHECK_LIB( ao, ao_open_live,
Modified: branches/Release-0_8_0/fuse/display.c
===================================================================
--- branches/Release-0_8_0/fuse/display.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/display.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -2,7 +2,7 @@
    Copyright (c) 1999-2006 Philip Kendall, Thomas Harte, Witold Filipczyk
                            and Fredrick Meunier
 
-   $Id: display.c,v 1.59 2007/02/02 16:21:50 pak21 Exp $
+   $Id: display.c,v 1.59.2.1 2007/03/06 11:39:47 fredm Exp $
 
    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
@@ -657,7 +657,9 @@
   *y = ( tstates - machine_current->line_times[ 0 ] ) /
     machine_current->timings.tstates_per_line;
 
-  *x = ( tstates - machine_current->line_times[ *y ] ) / 4;
+  if( *y >= 0 && *y <= DISPLAY_SCREEN_HEIGHT )
+    *x = ( tstates - machine_current->line_times[ *y ] ) / 4;
+  else *x = 0;
 }
 
 void
Modified: branches/Release-0_8_0/fuse/fuse.cpp
===================================================================
--- branches/Release-0_8_0/fuse/fuse.cpp	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fuse.cpp	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,7 +1,7 @@
 /* fuse.c: The Free Unix Spectrum Emulator
    Copyright (c) 1999-2005 Philip Kendall
 
-   $Id: fuse.c,v 1.133 2007/02/02 16:21:51 pak21 Exp $
+   $Id: fuse.c,v 1.133.2.1 2007/02/17 17:12:29 pak21 Exp $
 
    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
@@ -115,6 +115,7 @@
   const char *zxatasp_master, *zxatasp_slave;
   const char *zxcf;
   const char *divide_master, *divide_slave;
+  const char *mdr[8];
 
 } start_files_t;
 
@@ -477,6 +478,15 @@
   start_files->divide_master = settings_current.divide_master_file;
   start_files->divide_slave  = settings_current.divide_slave_file;
 
+  start_files->mdr[0] = settings_current.mdr_file;
+  start_files->mdr[1] = settings_current.mdr_file2;
+  start_files->mdr[2] = settings_current.mdr_file3;
+  start_files->mdr[3] = settings_current.mdr_file4;
+  start_files->mdr[4] = settings_current.mdr_file5;
+  start_files->mdr[5] = settings_current.mdr_file6;
+  start_files->mdr[6] = settings_current.mdr_file7;
+  start_files->mdr[7] = settings_current.mdr_file8;
+
   return 0;
 }
 
@@ -485,7 +495,7 @@
 parse_nonoption_args( int argc, char **argv, int first_arg,
 		      start_files_t *start_files )
 {
-  size_t i;
+  size_t i, j;
   const char *filename;
   utils_file file;
   libspectrum_id_t type;
@@ -539,6 +549,15 @@
     case LIBSPECTRUM_CLASS_SNAPSHOT:
       start_files->snapshot = filename; break;
 
+    case LIBSPECTRUM_CLASS_MICRODRIVE:
+      for( j = 0; j < 8; j++ ) {
+        if( !start_files->mdr[j] ) {
+	  start_files->mdr[j] = filename;
+	  break;
+	}
+      }
+      break;
+
     case LIBSPECTRUM_CLASS_TAPE:
       start_files->tape = filename; break;
 
@@ -561,7 +580,7 @@
 static int
 do_start_files( start_files_t *start_files )
 {
-  int autoload, error;
+  int autoload, error, i;
 
   /* Can't do both input recording and playback */
   if( start_files->playback && start_files->recording ) {
@@ -640,6 +659,15 @@
     if( error ) return error;
   }
 
+  /* Microdrive cartridges */
+
+  for( i = 0; i < 8; i++ ) {
+    if( start_files->mdr[i] ) {
+      error = utils_open_file( start_files->mdr[i], autoload, NULL );
+      if( error ) return error;
+    }
+  }
+
   /* IDE hard disk images */
 
   if( start_files->simpleide_master ) {
Modified: branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist	2007-03-10 12:53:34 UTC (rev 311)
@@ -361,11 +361,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>0.8.0-pre1</string>
+	<string>0.8.0-pre2</string>
 	<key>CFBundleSignature</key>
 	<string>FUSE</string>
 	<key>CFBundleVersion</key>
-	<string>0.8.0-pre1</string>
+	<string>0.8.0-pre2</string>
 	<key>NSMainNibFile</key>
 	<string>SDLMain</string>
 	<key>NSPrincipalClass</key>
Modified: branches/Release-0_8_0/fuse/fusepb/SDLMain.mm
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/SDLMain.mm	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/SDLMain.mm	2007-03-10 12:53:34 UTC (rev 311)
@@ -24,6 +24,7 @@
 #include "dck.h"
 #include "display.h"
 #include "fuse.h"
+#include "if1.h"
 #include "if2.h"
 #include "machines/specplus3.h"
 #include "rzx.h"
@@ -432,6 +433,10 @@
     error = if2_insert( fsrep );
     break;
 
+  case LIBSPECTRUM_CLASS_MICRODRIVE:
+    if1_mdr_insert( fsrep, -1 );
+    break;
+
   default:
     fprintf( stderr, "%s: loadFile: unknown class %d!\n", fuse_progname, type );
     fuse_abort();
Modified: branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html	2007-03-10 12:53:34 UTC (rev 311)
@@ -11,11 +11,11 @@
 <p>
 <font face="Lucida Grande,Helvetica,Arial">The DivIDE is another IDE
 interface for the Spectrum, of which full details can be found at
-http://insert.divide.url/. The interface can be activated via the </font><font
+http://baze.au.com/divide/. The interface can be activated via the </font><font
  face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>DivIDE
 interface</em></span></font><font face="Lucida Grande,Helvetica,Arial">
 option on the </font><font face="Lucida Grande,Helvetica,Arial"><span
- class="emphasis"><em>Options,
+ class="emphasis"><em>Preferences,
 Peripherals...</em></span></font><font
  face="Lucida Grande,Helvetica,Arial"> dialog, and the state of its
 write protect jumper controlled via the </font><font
Modified: branches/Release-0_8_0/fuse/hacking/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ChangeLog	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/hacking/ChangeLog	2007-03-10 12:53:34 UTC (rev 311)
@@ -1524,4 +1524,41 @@
 20070202 BRANCH: Release-0_8_0-branch
 20070202 TAG: Release-0_8_0-pre1 (Release-0_8_0-branch)
 20070204 sound.c: don't disable sound completely if we don't enable sound
-         after an unpause (fixes bug #1648246) (Fred).
+         after an unpause (fixes bug #1648246) (Release-0_8_0-branch) (Fred).
+20070204 rzx.c: use new libspectrum_rzx_playback_frame() API to allow
+	 loading of snapshots (necessary for playing back RZX files made with
+	 SPIN's "RZX Pause" feature).
+20070207 man/fuse.1: document that metacity needs --no-aspect-hint
+	 (Thanks, Stuart Brady and dave in #spin) (Release-0_8_0-branch).
+20070208 rzx.c: ensure tstates is sane after RZX completion
+	 (bug #1654165) (Release-0_8_0-branch).
+20070209 rzx.c: ensure tstates is sane after RZX desync
+	 (Release-0_8_0-branch).
+20070210 sound/{coreaudiosound.c,sdlsound.c}: make sound fifo two frames in
+         size rather than a multiple of the sound fragment size, make sound
+         callbacks run after some sound is available, calculate SDL fragment
+         size based on machine speed and output frequency
+	 (Release-0_8_0-branch) (Fred).
+20070217 widget/filesel.c: allow absolute pathnames to be used (fixes bug
+	 #1651433) (Release-0_8_0-branch) (Gergely Szasz).
+20070217 sound/aosound.c: stop possible segfaults (part of bug #1659865)
+	 (Release-0_8_0-branch) (Gergely Szasz).
+20070217 man/fuse.1: small ao improvements (rest of bug #1659865)
+	 (Release-0_8_0-branch) (Gergely Szasz).
+20070217 fuse.c,if1.c,settings.dat,utils.c: allow microdrive cartridge images
+	 to be used on startup (bug #1660099) (Release-0_8_0-branch)
+	 (Gergely Szasz).
+20070303 settings.dat,man/fuse.1,ui/gtk/gtkui.c: new --strict-aspect-hint
+	 option to improve situation with Metacity not being able to resize
+	 or move GTK+ window (bug #1539655) (Release-0_8_0-branch).
+20070303 configure.in: don't use libao by default (bug #1668916)
+	 (Release-0_8_0-branch).
+20070303 TAG: Release-0_8_0-pre2 (Release-0_8_0-branch)
+20070303 man/fuse.1: document --rom-* options (bug #1262547)
+	 (Release-0_8_0-branch).
+20070304 ui.c: swap Kempston mouse buttons (bug #1507684)
+	 (Release-0_8_0-branch).
+20070306 sound.c: don't leak memory for tape_buf (Release-0_8_0-branch) (Fred).
+20070306 display.c: don't overrun line_times array (Release-0_8_0-branch)
+	 (Fred).
+20070310 man/fuse.1: add divide url (Release-0_8_0-branch) (Fred).
Modified: branches/Release-0_8_0/fuse/hacking/cvs-tags
===================================================================
--- branches/Release-0_8_0/fuse/hacking/cvs-tags	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/hacking/cvs-tags	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,6 +1,6 @@
 CVS tags for Fuse
 
-$Id: cvs-tags,v 1.32 2007/02/02 17:16:19 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.1 2007/03/03 21:49:10 pak21 Exp $
 
 | Release-0_3_1
 | Release-0_3_2pre1
@@ -145,6 +145,7 @@
 |
 +-\
 | | Release-0_8_0-pre1
+| | Release-0_8_0-pre2
 | |
 | | Release-0_8_0-branch
 |
Modified: branches/Release-0_8_0/fuse/if1.c
===================================================================
--- branches/Release-0_8_0/fuse/if1.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/if1.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,7 +1,7 @@
 /* if2.c: Interface I handling routines
    Copyright (c) 2004-2007 Gergely Szasz, Philip Kendall
 
-   $Id: if1.c,v 1.14 2007/01/20 17:54:51 pak21 Exp $
+   $Id: if1.c,v 1.14.2.1 2007/02/17 17:12:29 pak21 Exp $
 
    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
@@ -788,8 +788,26 @@
 void
 if1_mdr_insert( const char *filename, int drive )
 {
-  microdrive_t *mdr = µdrive[drive];
+  microdrive_t *mdr;
+  int i;
+  
+  if( drive == -1 ) {	/* find an emtpty one */
+    for( i = 0; i < 8; i++ ) {
+      if( !microdrive[i].inserted ) {
+        drive = i;
+	break;
+      }
+    }
+  }
+  
+  if( drive == -1 ) {
+    ui_error( UI_ERROR_ERROR,
+	      "Cannot insert cartridge '%s', all microdrive loaded", filename );
+    return;
+  }
 
+  mdr = µdrive[drive];
+
   if( mdr->inserted && if1_mdr_eject( NULL, drive ) ) {
     ui_error( UI_ERROR_ERROR,
 	      "New cartridge in drive, please eject manually" );
Modified: branches/Release-0_8_0/fuse/man/fuse.1
===================================================================
--- branches/Release-0_8_0/fuse/man/fuse.1	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/man/fuse.1	2007-03-10 12:53:34 UTC (rev 311)
@@ -83,15 +83,15 @@
 .I \-\-aspect\-hint
 .RS
 Specify whether the GTK+ and Xlib user interfaces should `hint' to the
-window manager about the preferred aspect ratio for the top-level
+window manager about the preferred aspect ratio for the graphics
 window, thus preventing resizing to non-square sizes which lead to
-Fuse not displaying correctly. However, with some window managers (for
-example
-.IR icewm (1))
-this prevents the window from being resized at all. (Enabled by
+Fuse not displaying correctly. This option has been observed to cause
+problems with some window managers when using the GTK+ UI which can
+prevent the window from being resized or moved at all. (Enabled by
 default, but you can use
 .RI ` \-\-no\-aspect\-hint '
-to disable).
+to disable). See also the
+.RI ` \-\-strict\-aspect\-hint ' option.
 .RE
 .PP
 .I \-\-autosave\-settings
@@ -406,6 +406,102 @@
 Specify an RZX file to begin recording to.
 .RE
 .PP
+.I "\-\-rom\-16 file"
+.br
+.I "\-\-rom\-48 file"
+.br
+.I "\-\-rom\-128-0 file"
+.br
+.I "\-\-rom\-128-1 file"
+.br
+.I "\-\-rom\-plus2-0 file"
+.br
+.I "\-\-rom\-plus2-1 file"
+.br
+.I "\-\-rom\-plus2a-0 file"
+.br
+.I "\-\-rom\-plus2a-1 file"
+.br
+.I "\-\-rom\-plus2a-2 file"
+.br
+.I "\-\-rom\-plus2a-3 file"
+.br
+.I "\-\-rom\-plus3-0 file"
+.br
+.I "\-\-rom\-plus3-1 file"
+.br
+.I "\-\-rom\-plus3-2 file"
+.br
+.I "\-\-rom\-plus3-3 file"
+.br
+.I "\-\-rom\-plus3e-0 file"
+.br
+.I "\-\-rom\-plus3e-1 file"
+.br
+.I "\-\-rom\-plus3e-2 file"
+.br
+.I "\-\-rom\-plus3e-3 file"
+.br
+.I "\-\-rom\-tc2048 file"
+.br
+.I "\-\-rom\-tc2068-0 file"
+.br
+.I "\-\-rom\-tc2068-1 file"
+.br
+.I "\-\-rom\-ts2068-0 file"
+.br
+.I "\-\-rom\-ts2068-1 file"
+.br
+.I "\-\-rom\-pentagon-0 file"
+.br
+.I "\-\-rom\-pentagon-1 file"
+.br
+.I "\-\-rom\-pentagon-2 file"
+.br
+.I "\-\-rom\-scorpion-0 file"
+.br
+.I "\-\-rom\-scorpion-1 file"
+.br
+.I "\-\-rom\-scorpion-2 file"
+.br
+.I "\-\-rom\-scorpion-3 file"
+.br
+.I "\-\-rom\-spec-se-0 file"
+.br
+.I "\-\-rom\-spec-se-1 file"
+.br
+.I "\-\-rom\-interface-1 file"
+.RS
+Specify the file to be used for ROM(s) used for each machine. The
+options respectively refer to the 16K Spectrum
+.RI ( 48.rom ),
+48K Spectrum
+.RI ( 48.rom ),
+the two ROMs for the 128K Spectrum
+.RI ( 128-0.rom " and " 128-1.rom ),
+the two ROMs for the +2
+.RI ( plus2-0.rom " and " plus2-1.rom ),
+the four ROMs for the +2A
+.RI ( plus3-0.rom ", " plus3-1.rom ", " plus3-2.rom " and " plus3-3.rom ),
+the four ROMs for the +3
+.RI ( plus3-0.rom ", " plus3-1.rom ", " plus3-2.rom " and " plus3-3.rom ),
+the TC2048 ROM
+.RI ( tc2048.rom ),
+the two ROMs for the TC2068
+.RI ( tc2068-0.rom " and " tc2068-1.rom ),
+the two ROMs for the TS2068
+.RI ( tc2068-0.rom " and " tc2068-1.rom ),
+the two main ROMs and the TR-DOS ROM for the Pentagon 128
+.RI ( 128p-0.rom ", " 128p-1.rom " and " trdos.rom ),
+the four ROMs for the Scorpion 256
+.RI ( 256s-0.rom ", " 256s-1.rom ", " 256s-2.rom " and " 256s-3.rom ),
+the two ROMs for the Spectrum SE
+.RI ( se-0.rom " and " se-1.rom ),
+and the Interface I ROM
+.RI ( if1-2.rom ).
+The names in brackets denote the defaults.
+.RE
+.PP
 .I \-\-separation
 .RS
 Give stereo separation of the 128's AY sound channels. Same as the
@@ -556,12 +652,16 @@
 .RI buffer_time= num
 .br
 .RI ` num '
-gives the ALSA buffer time.
+gives the ALSA buffer time in microseconds.
 .IP \[bu]
 .RI period_time= num
 .br
 .RI ` num '
-gives the ALSA period time.
+gives the ALSA period time in microseconds.
+.IP \[bu]
+.RI use_mmap= yes|y|true|t|1
+.br
+specifies that libao use memory mapped transfer.
 .RE
 .IP \[bu]
 .IR arts :
@@ -691,6 +791,19 @@
 option.
 .RE
 .PP
+.I "\-\-strict\-aspect\-hint"
+.RS
+For the GTK+ UI, use stricter limits for the aspect ratio limits set
+by the
+.RI ` \-\-aspect\-hint ' 
+option. This can cause some window managers (for example,
+.IR metacity (1))
+to not allow the window to be resized and moved, but is necessary to
+prevent others (for example,
+.IR fvwm (1))
+from being able resize the window away from square.
+.RE
+.PP
 .I "\-v mode"
 .br
 .I "\-\-svgamode mode"
@@ -2358,7 +2471,7 @@
 .SH "DIVIDE"
 The DivIDE is another IDE interface for the Spectrum, of which full
 details can be found at 
-.IR "http://insert.divide.url/" .
+.IR "http://baze.au.com/divide/" .
 The interface can be activated via the
 .I "DivIDE interface"
 option from the
Modified: branches/Release-0_8_0/fuse/rzx.c
===================================================================
--- branches/Release-0_8_0/fuse/rzx.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/rzx.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,7 +1,7 @@
 /* rzx.c: .rzx files
    Copyright (c) 2002-2003 Philip Kendall
 
-   $Id: rzx.c,v 1.70 2007/02/02 16:21:51 pak21 Exp $
+   $Id: rzx.c,v 1.70.2.3 2007/02/09 08:21:33 pak21 Exp $
 
    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
@@ -307,9 +307,22 @@
      out of frames, as this occurs just before a normal end of frame
      and everything works normally as rzx_playback is now zero again */
   if( add_interrupt ) {
+
     error = event_add( machine_current->timings.tstates_per_frame,
 		       EVENT_TYPE_FRAME );
     if( error ) return error;
+
+    /* We're no longer doing RZX playback, so tstates now be <= the
+       normal frame count */
+    if( tstates > machine_current->timings.tstates_per_frame )
+      tstates = machine_current->timings.tstates_per_frame;
+
+  } else {
+
+    /* Ensure that tstates will be zero after it is reduced in
+       spectrum_frame() */
+    tstates = machine_current->timings.tstates_per_frame;
+
   }
 
   libspec_error = libspectrum_rzx_free( rzx );
@@ -360,8 +373,9 @@
 static int playback_frame( void )
 {
   int error, finished;
+  libspectrum_snap *snap;
 
-  error = libspectrum_rzx_playback_frame( rzx, &finished );
+  error = libspectrum_rzx_playback_frame( rzx, &finished, &snap );
   if( error ) return rzx_stop_playback( 0 );
 
   if( finished ) {
@@ -369,6 +383,11 @@
     return rzx_stop_playback( 0 );
   }
 
+  if( snap ) {
+    error = snapshot_copy_from( snap );
+    if( error ) return rzx_stop_playback( 0 );
+  }
+
   /* If we've got another frame to do, fetch the new instruction count and
      continue */
   rzx_instruction_count = libspectrum_rzx_instructions( rzx );
Modified: branches/Release-0_8_0/fuse/settings.dat
===================================================================
--- branches/Release-0_8_0/fuse/settings.dat	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/settings.dat	2007-03-10 12:53:34 UTC (rev 311)
@@ -2,7 +2,7 @@
 # Copyright (c) 2002-2004 Philip Kendall
 # Copyright (c) 2003-2005 Fredrick Meunier
 
-# $Id: settings.dat,v 1.56 2007/02/02 16:21:52 pak21 Exp $
+# $Id: settings.dat,v 1.56.2.2 2007/03/03 21:02:01 pak21 Exp $
 
 # 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
@@ -117,6 +117,14 @@
 dck_file, string, NULL,, dock
 if2_file, string, NULL,, if2cart
 
+mdr_file, string, NULL,, microdrive-file
+mdr_file2, string, NULL,, microdrive-2-file
+mdr_file3, string, NULL,, microdrive-3-file
+mdr_file4, string, NULL,, microdrive-4-file
+mdr_file5, string, NULL,, microdrive-5-file
+mdr_file6, string, NULL,, microdrive-6-file
+mdr_file7, string, NULL,, microdrive-7-file
+mdr_file8, string, NULL,, microdrive-8-file
 simpleide_active, boolean, 0,, simpleide
 simpleide_master_file, string, NULL,, simpleide-masterfile
 simpleide_slave_file, string, NULL,, simpleide-slavefile
@@ -137,6 +145,7 @@
 printer_text_filename, string, "printout.txt",, textfile
 
 aspect_hint, boolean, 1
+strict_aspect_hint, boolean, 0
 svga_mode, numeric, 320, 'v', svgamode
 doublescan_mode, numeric, 1, 'D', doublescan-mode
 
Modified: branches/Release-0_8_0/fuse/sound/aosound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/aosound.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/aosound.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -1,7 +1,7 @@
 /* aosound.c: libao sound I/O
    Copyright (c) 2004 Gergely Szasz, Philip Kendall
 
-   $Id: aosound.c,v 1.3 2007/02/02 16:21:55 pak21 Exp $
+   $Id: aosound.c,v 1.3.2.1 2007/02/17 17:05:43 pak21 Exp $
 
    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
@@ -43,6 +43,7 @@
 static int sixteenbit = 1;
 static char *filename = NULL;
 static const char *default_filename = "fuse-sound.ao";
+static int first_init = 1;
 
 static void
 driver_error( void )
@@ -87,6 +88,9 @@
   char *mutable, *option, *key, *value;
 
   /* Get a copy of the device string we can modify */
+  if( !device || *device == '\0' )
+    return 0;
+
   mutable = strdup( device );
   if( !mutable ) {
     ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ );
@@ -97,7 +101,8 @@
   option = strchr( mutable, ':' );
   if( option ) *option++ = '\0';
 
-  *driver_id = ao_driver_id( mutable );
+  if( *mutable )				/* ! \0 */
+    *driver_id = ao_driver_id( mutable );
 
   /* Now parse any further options */
   while( option ) {
@@ -118,8 +123,11 @@
 	free( mutable );
 	return 1;
       }
-    } else {
+    } else if( key && value) {
       ao_append_option( options, key, value );
+    } else if ( first_init ) {
+	ui_error( UI_ERROR_ERROR, "ignoring badly formed libao option (%s%s)",
+		key ? key : "", value ? value : "" );
     }
 
   }
@@ -148,21 +156,16 @@
 
   ao_initialize();
 
-  if( !device || *device == '\0' ) {
+  error = parse_driver_options( device, &driver_id, &options );
+  if( error ) {
+    settings_current.sound = 0;
+    sound_lowlevel_init_in_progress = 0;
+    return error;
+  }
 
+  if( driver_id == -1 )
     driver_id = ao_default_driver_id();
 
-  } else {
-
-    error = parse_driver_options( device, &driver_id, &options );
-    if( error ) {
-      settings_current.sound = 0;
-      sound_lowlevel_init_in_progress = 0;
-      return error;
-    }
-
-  }
-
   if( driver_id == -1 ) {
     ui_error( UI_ERROR_ERROR, "ao: driver '%s' unknown",
               device );
@@ -191,7 +194,7 @@
 
   } else {
 
-    if( !filename ) filename = default_filename;
+    if( !filename ) filename = (char *)default_filename;
     dev_for_ao = ao_open_file( driver_id, filename, 1, &format, options);
 
   }
@@ -206,6 +209,7 @@
   ao_free_options( options );
   
   sound_lowlevel_init_in_progress = 0;
+  first_init = 0;
 
   return 0;
 }
@@ -221,8 +225,8 @@
 void
 sound_lowlevel_frame( libspectrum_signed_word *data, int len )
 {
-  static unsigned char buf8[4096];
-  signed char *data8 = ( signed char* )data;
+  static signed char buf8[4096];
+  void *data8 = data;
 
   len <<= 1;	/* now in bytes */
 
Modified: branches/Release-0_8_0/fuse/sound/coreaudiosound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/coreaudiosound.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/coreaudiosound.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -28,12 +28,16 @@
 #include <CoreAudio/AudioHardware.h>
 #include <AudioUnit/AudioUnit.h>
 
+#include "settings.h"
 #include "sfifo.h"
 #include "sound.h"
 #include "ui/ui.h"
 
 sfifo_t sound_fifo;
 
+/* Number of Spectrum frames audio latency to use */
+#define NUM_FRAMES 2
+
 static
 OSStatus coreaudiowrite( void *inRefCon,
                          AudioUnitRenderActionFlags *ioActionFlags,
@@ -49,6 +53,9 @@
  */
 static AudioUnit gOutputUnit;
 
+/* Records sound writer status information */
+static int audio_output_started;
+
 int
 sound_lowlevel_init( const char *dev, int *freqptr, int *stereoptr )
 {
@@ -58,6 +65,8 @@
   UInt32 deviceBufferSize;  /* bufferSize returned by
                                kAudioDevicePropertyBufferSize */
   int error;
+  float hz;
+  int sound_framesiz;
 
   /* get the default output device for the HAL */
   count = sizeof( device );
@@ -158,21 +167,21 @@
     return 1;
   }
 
-  if( ( error = sfifo_init( &sound_fifo, 2 * deviceFormat.mChannelsPerFrame
-                                         * deviceBufferSize + 1 ) ) ) {
+  hz = (float)machine_current->timings.processor_speed /
+              machine_current->timings.tstates_per_frame;
+  sound_framesiz = deviceFormat.mSampleRate / hz;
+
+  if( ( error = sfifo_init( &sound_fifo, NUM_FRAMES
+                                         * deviceFormat.mBytesPerFrame
+                                         * deviceFormat.mChannelsPerFrame
+                                         * sound_framesiz + 1 ) ) ) {
     ui_error( UI_ERROR_ERROR, "Problem initialising sound fifo: %s",
               strerror ( error ) );
     return 1;
   }
 
-  /* Start the rendering
-     The DefaultOutputUnit will do any format conversions to the format of the
-     default device */
-  err = AudioOutputUnitStart( gOutputUnit );
-  if( err ) {
-    ui_error( UI_ERROR_ERROR, "AudioOutputUnitStart=%ld", err );
-    return 1;
-  }
+  /* wait to run sound until we have some sound to play */
+  audio_output_started = 0;
 
   return 0;
 }
@@ -182,7 +191,8 @@
 {
   OSStatus err;
 
-  verify_noerr( AudioOutputUnitStop( gOutputUnit ) );
+  if( audio_output_started )
+    verify_noerr( AudioOutputUnitStop( gOutputUnit ) );
 
   err = AudioUnitUninitialize( gOutputUnit );
   if( err ) {
@@ -218,6 +228,19 @@
     ui_error( UI_ERROR_ERROR, "Couldn't write sound fifo: %s",
               strerror( i ) );
   }
+
+  if( !audio_output_started ) {
+    /* Start the rendering
+       The DefaultOutputUnit will do any format conversions to the format of the
+       default device */
+    OSStatus err = AudioOutputUnitStart( gOutputUnit );
+    if( err ) {
+      ui_error( UI_ERROR_ERROR, "AudioOutputUnitStart=%ld", err );
+      return;
+    }
+
+    audio_output_started = 1;
+  }
 }
 
 /* This is the audio processing callback. */
Modified: branches/Release-0_8_0/fuse/sound/sdlsound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/sdlsound.c	2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/sdlsound.c	2007-03-10 12:53:34 UTC (rev 311)
@@ -2,7 +2,7 @@
    Copyright (c) 2002-2004 Alexander Yurchenko, Russell Marks, Philip Kendall,
 			   Fredrick Meunier
 
-   $Id: sdlsound.c,v 1.18 2006/12/22 10:55:46 fredm Exp $
+   $Id: sdlsound.c,v 1.18.2.1 2007/02/10 00:59:36 fredm Exp $
 
    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
@@ -28,6 +28,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <math.h>
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -41,19 +42,23 @@
 #include "sound.h"
 #include "ui/ui.h"
 
-/* using (7) 32 byte frags for 8kHz, scale up for higher */
-#define BASE_SOUND_FRAG_PWR	7
-
 static void sdlwrite( void *userdata, Uint8 *stream, int len );
 
 sfifo_t sound_fifo;
 
+/* Number of Spectrum frames audio latency to use */
+#define NUM_FRAMES 2
+
+/* Records sound writer status information */
+static int audio_output_started;
+
 int
 sound_lowlevel_init( const char *device, int *freqptr, int *stereoptr )
 {
   SDL_AudioSpec requested, received;
-  int frag;
   int error;
+  float hz;
+  int sound_framesiz;
 
   /* I'd rather just use setenv, but Windows doesn't have it */
   if( device ) {
@@ -80,16 +85,11 @@
   requested.format = AUDIO_S16SYS;
   requested.callback = sdlwrite;
 
-  frag = BASE_SOUND_FRAG_PWR;
-  if (*freqptr > 8250)   
-    frag++;  
-  if (*freqptr > 16500)
-    frag++;      
-  if (*freqptr > 33000)
-    frag++;
+  hz = (float)machine_current->timings.processor_speed /
+              machine_current->timings.tstates_per_frame;
+  sound_framesiz = *freqptr / hz;
+  requested.samples = pow(2.0, floor(log2(sound_framesiz)));
 
-  requested.samples = 1 << frag;
-
   if ( SDL_OpenAudio( &requested, &received ) < 0 ) {
     settings_current.sound = 0;
     ui_error( UI_ERROR_ERROR, "Couldn't open sound device: %s",
@@ -106,39 +106,36 @@...
 
[truncated message content] | 
| 
      
      
      From: <fr...@us...> - 2007-05-12 01:09:14
       | 
| Revision: 366
          http://svn.sourceforge.net/fuse-for-macosx/?rev=366&view=rev
Author:   fredm
Date:     2007-05-11 18:09:14 -0700 (Fri, 11 May 2007)
Log Message:
-----------
Merge up to vendor fuse-0.8.0.1 and libspectrum-0.3.0.1 releases.
Modified Paths:
--------------
    branches/Release-0_8_0/fuse/ChangeLog
    branches/Release-0_8_0/fuse/README
    branches/Release-0_8_0/fuse/acinclude.m4
    branches/Release-0_8_0/fuse/configure.in
    branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
    branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
    branches/Release-0_8_0/fuse/fusepb/config.h
    branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html
    branches/Release-0_8_0/fuse/hacking/ChangeLog
    branches/Release-0_8_0/fuse/hacking/cvs-tags
    branches/Release-0_8_0/fuse/hacking/ui.txt
    branches/Release-0_8_0/fuse/lib/Makefile.am
    branches/Release-0_8_0/fuse/machines/pentagon.c
    branches/Release-0_8_0/fuse/machines/scorpion.c
    branches/Release-0_8_0/fuse/machines/spec128.c
    branches/Release-0_8_0/fuse/machines/spec16.c
    branches/Release-0_8_0/fuse/machines/spec48.c
    branches/Release-0_8_0/fuse/man/fuse.1
    branches/Release-0_8_0/fuse/periph.c
    branches/Release-0_8_0/fuse/screenshot.c
    branches/Release-0_8_0/fuse/snapshot.c
    branches/Release-0_8_0/fuse/spectrum.c
    branches/Release-0_8_0/fuse/spectrum.h
    branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c
    branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c
    branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c
    branches/Release-0_8_0/fuse/ui/scaler/scaler.c
    branches/Release-0_8_0/fuse/ui/scaler/scalers.cpp
    branches/Release-0_8_0/fuse/ui/sdl/sdldisplay.c
    branches/Release-0_8_0/fuse/ui/svga/svgadisplay.c
    branches/Release-0_8_0/fuse/ui/uidisplay.h
    branches/Release-0_8_0/fuse/ui/win32/win32display.c
    branches/Release-0_8_0/fuse/ui/xlib/xdisplay.c
    branches/Release-0_8_0/fuse/uidisplay.c
    branches/Release-0_8_0/fuse/ula.c
    branches/Release-0_8_0/fuse/ula.h
    branches/Release-0_8_0/fuse/widget/Makefile.am
    branches/Release-0_8_0/fuse/widget/menu.c
    branches/Release-0_8_0/fuse/widget/pokefinder.c
    branches/Release-0_8_0/libspectrum/Info.plist
    branches/Release-0_8_0/libspectrum/libspectrum/ChangeLog
    branches/Release-0_8_0/libspectrum/libspectrum/Makefile.am
    branches/Release-0_8_0/libspectrum/libspectrum/README
    branches/Release-0_8_0/libspectrum/libspectrum/acinclude.m4
    branches/Release-0_8_0/libspectrum/libspectrum/configure.in
    branches/Release-0_8_0/libspectrum/libspectrum/doc/cvs-tags
    branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.3
    branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.txt
    branches/Release-0_8_0/libspectrum/libspectrum/hacking/ChangeLog
    branches/Release-0_8_0/libspectrum/libspectrum/libspectrum.h.in
    branches/Release-0_8_0/libspectrum/libspectrum/tap.c
    branches/Release-0_8_0/libspectrum/libspectrum/tzx_read.c
    branches/Release-0_8_0/libspectrum/libspectrum.h
    branches/Release-0_8_0/libspectrum/libspectrum.xcodeproj/project.pbxproj
Added Paths:
-----------
    branches/Release-0_8_0/libspectrum/libspectrum/hacking/.cvsignore
    branches/Release-0_8_0/libspectrum/libspectrum/hacking/Makefile.am
Modified: branches/Release-0_8_0/fuse/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/ChangeLog	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ChangeLog	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,3 +1,22 @@
+2007-05-11  Philip Kendall  <phi...@sh...>
+
+	* Fuse 0.8.0.1 released (bug fix release)
+
+	* Fix IN timings and floating bus behaviour: fixes Sidewize (thanks,
+	  Pegaz and Mark Woodmass) (Philip Kendall).
+	* Fix widget UI pokefinder and keyboard help picture
+	  (thanks, Alberto Garcia) (Philip Kendall and Fredrick Meunier).
+	* Fix crash if fullscreen mode attempted a resolution higher than
+	  the native graphics mode could handle (thanks, Alberto Garcia)
+	  (Fredrick Meunier).
+	* Ensure ABS, MIN and PATH_MAX are available where needed (Fredrick
+	  Meunier).
+	* Distribute autoload snapshots (thanks, Stuart Brady and Arda
+	  Erdikmen) (Fredrick Meunier).
+	* Remove flicker when playing back RZX files with embedded
+	  snapshots (thanks, Julian Wiseman) (Fredrick Meunier).
+	* Remove warnings when building from CVS (Stuart Brady).
+
 2007-04-11  Philip Kendall  <phi...@sh...>
 
 	* Fuse 0.8.0 released
@@ -788,4 +807,4 @@
 
 	* Version 0.1.0 released.
 
-$Id: ChangeLog,v 1.46.2.1 2007/04/09 16:59:02 pak21 Exp $
+$Id: ChangeLog,v 1.46.2.2 2007/05/10 07:32:38 pak21 Exp $
Modified: branches/Release-0_8_0/fuse/README
===================================================================
--- branches/Release-0_8_0/fuse/README	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/README	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,5 +1,5 @@
-The Free Unix Spectrum Emulator (Fuse) 0.8.0
-============================================
+The Free Unix Spectrum Emulator (Fuse) 0.8.0.1
+==============================================
 
 Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
 unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home
@@ -139,6 +139,6 @@
 ( http://www.worldofspectrum.org/faq/index.html ) first!
 
 Philip Kendall <phi...@sh...>
-11 April 2007
+11 May 2007
 
-$Id: README,v 1.40.2.2 2007/04/11 08:44:19 pak21 Exp $
+$Id: README,v 1.40.2.3 2007/05/10 07:32:38 pak21 Exp $
Modified: branches/Release-0_8_0/fuse/acinclude.m4
===================================================================
--- branches/Release-0_8_0/fuse/acinclude.m4	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/acinclude.m4	2007-05-12 01:09:14 UTC (rev 366)
@@ -7,7 +7,7 @@
 dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
 dnl gthread is specified in MODULES, pass to glib-config
 dnl
-AC_DEFUN(AM_PATH_GLIB,
+AC_DEFUN([AM_PATH_GLIB],
 [dnl 
 dnl Get the cflags and libraries from the glib-config script
 dnl
@@ -420,7 +420,7 @@
 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
 dnl
-AC_DEFUN(AM_PATH_GTK,
+AC_DEFUN([AM_PATH_GTK],
 [dnl 
 dnl Get the cflags and libraries from the gtk-config script
 dnl
Modified: branches/Release-0_8_0/fuse/configure.in
===================================================================
--- branches/Release-0_8_0/fuse/configure.in	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/configure.in	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155.2.2 2007/04/09 16:59:02 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.3 2007/05/10 07:32:38 pak21 Exp $
 
 dnl This program is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
 AC_CANONICAL_SYSTEM
 
 dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(fuse, 0.8.0)
+AM_INIT_AUTOMAKE(fuse, 0.8.0.1)
 
 dnl Checks for programs.
 AC_PROG_CC
Modified: branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist	2007-05-12 01:09:14 UTC (rev 366)
@@ -365,7 +365,7 @@
 	<key>CFBundleSignature</key>
 	<string>FUSE</string>
 	<key>CFBundleVersion</key>
-	<string>0.8.0</string>
+	<string>0.8.0.1</string>
 	<key>NSMainNibFile</key>
 	<string>SDLMain</string>
 	<key>NSPrincipalClass</key>
Modified: branches/Release-0_8_0/fuse/fusepb/config.h
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/config.h	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/config.h	2007-05-12 01:09:14 UTC (rev 366)
@@ -169,7 +169,7 @@
 #define STDC_HEADERS 1
 
 /* Version number of package */
-#define VERSION "0.8.0"
+#define VERSION "0.8.0.1"
 
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
Modified: branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html	2007-05-12 01:09:14 UTC (rev 366)
@@ -14,7 +14,37 @@
  name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font>
 <div class="refsect1" xml:lang="en" lang="en">
 <h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
-For Mac OS X 0.8.0</font></h2>
+For Mac OS X 0.8.0.1</font></h2>
+<ul>
+  <li><font face="Lucida Grande,Helvetica,Arial">Emulation core
+improvements:</font></li>
+  <li
+ style="list-style-type: none; list-style-image: none; list-style-position: outside;">
+    <ul>
+      <li><font face="Lucida Grande,Helvetica,Arial">Fix IN timings and
+floating bus behaviour: fixes Sidewize (thanks, Pegaz and Mark
+Woodmass) (Philip Kendall).</font></li>
+    </ul>
+  </li>
+  <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous </font><font
+ face="Lucida Grande,Helvetica,Arial">bugfixes</font><font
+ face="Lucida Grande,Helvetica,Arial">:</font></li>
+  <li
+ style="list-style-type: none; list-style-image: none; list-style-position: outside;">
+    <ul>
+      <li><font face="Lucida Grande,Helvetica,Arial">Fix crash if
+fullscreen mode attempted a resolution higher than the native graphics
+mode could handle (thanks, Alberto Garcia) (Fredrick Meunier).</font></li>
+      <li><font face="Lucida Grande,Helvetica,Arial">Remove flicker
+when playing back RZX files with embedded snapshots (thanks, Julian
+Wiseman) (Fredrick Meunier).</font></li>
+      <li><font face="Lucida Grande,Helvetica,Arial">Avoid crash when
+reading an invalid TZX file (thanks, crabfists) (Philip Kendall).</font></li>
+    </ul>
+  </li>
+</ul>
+<h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
+For Mac OS X 0.8.0</font></font></h2>
 </div>
 <ul>
   <li><font face="Lucida Grande,Helvetica,Arial">New
Modified: branches/Release-0_8_0/fuse/hacking/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ChangeLog	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/ChangeLog	2007-05-12 01:09:14 UTC (rev 366)
@@ -1582,4 +1582,37 @@
 	 Julian Wiseman) (Release-0_8_0-branch).
 20070411 README: these aren't all IDE interfaces (Release-0_8_0-branch).
 20070411 fuse.c: update copyright date to 2007 (Release-0_8_0-branch).
-20070411 TAG: Release-0_8_0 (Release-0_8_0-branch).
+20070416 widget/Makefile.am: distribute fuse.font.sbf and mkfusefont.pl
+         (Release-0_8_0-branch) (Fred).
+20070424 TAG: Release-0_8_0 (Release-0_8_0-branch).
+20070425 uidisplay.c,widget/menu.c: initialise border in help screen and
+         center keyboard picture on help screen (thanks, Alberto Garcia)
+         (Release-0_8_0-branch).
+20070425 widget/pokefinder.c: fix up for non-proportional display
+	 (thanks, Alberto Garcia) (Release-0_8_0-branch).
+20070428 hacking/ui.txt,ui/{uidisplay.h,fb/fbdisplay.c,ggi/ggidisplay.c,
+         gtk/gtkdisplay.c,scaler/scaler.c,sdl/sdldisplay.c,
+         svga/svgadisplay.c,win32/win32display.c,xlib/xdisplay.c}:
+         check that we don't exceed maximum fullscreen dimensions with
+         SDL UI and attempt a more graceful failure if things go wrong
+         (fixes bug #1708636; thanks Alberto Garcia) (Release-0_8_0-branch)
+         (Fred).
+20070501 screenshot.c: include limits.h for PATH_MAX (Release-0_8_0-branch)
+         (Fred).
+20070501 ui/scaler/scalers.c: make sure MIN and ABS are defined
+         (Release-0_8_0-branch) (Fred).
+20070503 periph.c,spectrum.[ch],ula.[ch],machines/{pentagon.c,scorpion.c,
+	 spec128.c,spec16.c,spec48.c}: fix IN timings and consequent fixes
+	 to floating bus behaviour (fixes bug #1708597) (thanks, Pegaz and
+	 Mark Woodmass) (Release-0_8_0-branch).
+20070507 lib/Makefile.am: distribute autoload snapshots
+         (thanks Stuart Brady and Arda Erdikmen) (Release-0_8_0-branch)
+         (Fred).
+20070509 snapshot.c: call machine_select() only if the machine has changed
+	 (fixes bug #1701246) (thanks, Julian Wiseman) (Release-0_8_0-branch)
+	 (Fred).
+20070509 acinclude.m4: remove warnings about underquoted definitions
+	 (Release-0_8_0-branch) (Stuart Brady).
+20070510 ChangeLog,README,configure.in,man/fuse.1: doc updates for 0.8.0.1
+	 release (Release-0_8_0-branch).
+20070511 TAG: Release-0_8_0_1 (Release-0_8_0-branch).
Modified: branches/Release-0_8_0/fuse/hacking/cvs-tags
===================================================================
--- branches/Release-0_8_0/fuse/hacking/cvs-tags	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/cvs-tags	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,6 +1,6 @@
 CVS tags for Fuse
 
-$Id: cvs-tags,v 1.32.2.2 2007/04/11 09:41:31 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.3 2007/05/11 07:27:47 pak21 Exp $
 
 | Release-0_3_1
 | Release-0_3_2pre1
@@ -147,6 +147,7 @@
 | | Release-0_8_0-pre1
 | | Release-0_8_0-pre2
 | | Release-0_8_0
+| | Release-0_8_0_1
 | |
 | | Release-0_8_0-branch
 |
Modified: branches/Release-0_8_0/fuse/hacking/ui.txt
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ui.txt	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/ui.txt	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 Some brief instructions on adding another user interface to Fuse
 ================================================================
 
-Version: $Id: ui.txt,v 1.9 2003/03/13 14:55:28 pak21 Exp $
+Version: $Id: ui.txt,v 1.9.14.1 2007/04/28 00:23:09 fredm Exp $
 
 In order to add a new user interface (UI) to Fuse, you need to
 implement:
@@ -71,7 +71,7 @@
 This is called at the end of every spectrum frame, giving the ui a
 chance to flush all the drawing done over the course of the frame.
 
-* void uidisplay_hotswap_gfx_mode( void )
+* int uidisplay_hotswap_gfx_mode( void )
 
 This is called when the user has changed the scaler in use by the
 emulator. The ui should change the window to a multiple of the
Modified: branches/Release-0_8_0/fuse/lib/Makefile.am
===================================================================
--- branches/Release-0_8_0/fuse/lib/Makefile.am	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/lib/Makefile.am	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 ## Copyright (c) 1999-2004 Philip Kendall
 
-## $Id: Makefile.am,v 1.15 2007/02/02 16:21:53 pak21 Exp $
+## $Id: Makefile.am,v 1.15.2.1 2007/05/07 12:54:24 fredm Exp $
 
 ## 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
@@ -26,9 +26,8 @@
 FILES = cassette.bmp \
 	keyboard.scr \
 	microdrive.bmp \
-	plus3disk.bmp
-
-noinst_FILES = @AUTOLOAD_SNAPS@/disk_plus3.szx \
+	plus3disk.bmp \
+	@AUTOLOAD_SNAPS@/disk_plus3.szx \
 	@AUTOLOAD_SNAPS@/tape_128.szx \
 	@AUTOLOAD_SNAPS@/tape_16.szx \
 	@AUTOLOAD_SNAPS@/tape_2048.szx \
Modified: branches/Release-0_8_0/fuse/machines/pentagon.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/pentagon.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/pentagon.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* pentagon.c: Pentagon 128K specific routines
-   Copyright (c) 1999-2004 Philip Kendall and Fredrick Meunier
+   Copyright (c) 1999-2007 Philip Kendall and Fredrick Meunier
 
-   $Id: pentagon.c,v 1.31 2007/02/02 16:21:54 pak21 Exp $
+   $Id: pentagon.c,v 1.31.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -84,7 +84,7 @@
 static libspectrum_byte
 pentagon_unattached_port( void )
 {
-  return spectrum_unattached_port( 3 );
+  return spectrum_unattached_port();
 }
 
 int
Modified: branches/Release-0_8_0/fuse/machines/scorpion.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/scorpion.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/scorpion.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,8 +1,7 @@
 /* scorpion.c: Scorpion 256K specific routines
-   Copyright (c) 1999-2004 Philip Kendall and Fredrick Meunier
-   Copyright (c) 2004 Stuart Brady
+   Copyright (c) 1999-2007 Philip Kendall, Fredrick Meunier and Stuart Brady
 
-   $Id: scorpion.c,v 1.24 2007/02/02 16:21:54 pak21 Exp $
+   $Id: scorpion.c,v 1.24.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -94,7 +93,7 @@
 static libspectrum_byte
 scorpion_unattached_port( void )
 {
-  return spectrum_unattached_port( 3 );
+  return spectrum_unattached_port();
 }
 
 static libspectrum_byte
Modified: branches/Release-0_8_0/fuse/machines/spec128.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec128.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec128.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* spec128.c: Spectrum 128K specific routines
-   Copyright (c) 1999-2004 Philip Kendall
+   Copyright (c) 1999-2007 Philip Kendall
 
-   $Id: spec128.c,v 1.77 2007/02/02 16:21:54 pak21 Exp $
+   $Id: spec128.c,v 1.77.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -61,7 +61,7 @@
 libspectrum_byte
 spec128_unattached_port( void )
 {
-  return spectrum_unattached_port( 3 );
+  return spectrum_unattached_port();
 }
 
 libspectrum_byte
Modified: branches/Release-0_8_0/fuse/machines/spec16.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec16.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec16.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* spec16.c: Spectrum 16K specific routines
-   Copyright (c) 1999-2005 Philip Kendall
+   Copyright (c) 1999-2007 Philip Kendall
 
-   $Id: spec16.c,v 1.32 2007/02/02 16:21:54 pak21 Exp $
+   $Id: spec16.c,v 1.32.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -61,7 +61,7 @@
 static libspectrum_byte
 spec16_unattached_port( void )
 {
-  return spectrum_unattached_port( 1 );
+  return spectrum_unattached_port();
 }
 
 int spec16_init( fuse_machine_info *machine )
Modified: branches/Release-0_8_0/fuse/machines/spec48.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec48.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec48.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* spec48.c: Spectrum 48K specific routines
-   Copyright (c) 1999-2004 Philip Kendall
+   Copyright (c) 1999-2007 Philip Kendall
 
-   $Id: spec48.c,v 1.72 2007/02/02 16:21:54 pak21 Exp $
+   $Id: spec48.c,v 1.72.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -57,7 +57,7 @@
 static libspectrum_byte
 spec48_unattached_port( void )
 {
-  return spectrum_unattached_port( 1 );
+  return spectrum_unattached_port();
 }
 
 int
Modified: branches/Release-0_8_0/fuse/man/fuse.1
===================================================================
--- branches/Release-0_8_0/fuse/man/fuse.1	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/man/fuse.1	2007-05-12 01:09:14 UTC (rev 366)
@@ -23,7 +23,7 @@
 .\" E-mail: phi...@sh...
 .\"
 .\"
-.TH fuse 1 "11th April, 2007" "Version 0.8.0" "Emulators"
+.TH fuse 1 "11th May, 2007" "Version 0.8.0.1" "Emulators"
 .\"
 .\"------------------------------------------------------------------
 .\"
Modified: branches/Release-0_8_0/fuse/periph.c
===================================================================
--- branches/Release-0_8_0/fuse/periph.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/periph.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* periph.c: code for handling peripherals
    Copyright (c) 2005-2007 Philip Kendall
 
-   $Id: periph.c,v 1.20.2.1 2007/03/21 16:21:54 pak21 Exp $
+   $Id: periph.c,v 1.20.2.2 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -168,9 +168,10 @@
 {
   libspectrum_byte b;
 
-  ula_contend_port_preio( port );
+  ula_contend_port_early( port );
+  ula_contend_port_late( port );
   b = readport_internal( port );
-  ula_contend_port_postio( port );
+  tstates++;
 
   return b;
 }
@@ -240,9 +241,9 @@
 void
 writeport( libspectrum_word port, libspectrum_byte b )
 {
-  ula_contend_port_preio( port );
+  ula_contend_port_early( port );
   writeport_internal( port, b );
-  ula_contend_port_postio( port );
+  ula_contend_port_late( port ); tstates++;
 }
 
 void
Modified: branches/Release-0_8_0/fuse/screenshot.c
===================================================================
--- branches/Release-0_8_0/fuse/screenshot.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/screenshot.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* screenshot.c: Routines for handling .png and .scr screenshots
    Copyright (c) 2002-2003 Philip Kendall, Fredrick Meunier
 
-   $Id: screenshot.c,v 1.33 2007/02/02 16:21:52 pak21 Exp $
+   $Id: screenshot.c,v 1.33.2.1 2007/05/01 13:23:51 fredm Exp $
 
    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
@@ -26,6 +26,7 @@
 #include <config.h>
 
 #include <errno.h>
+#include <limits.h>
 #include <string.h>
 
 #include <libspectrum.h>
Modified: branches/Release-0_8_0/fuse/snapshot.c
===================================================================
--- branches/Release-0_8_0/fuse/snapshot.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/snapshot.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* snapshot.c: snapshot handling routines
    Copyright (c) 1999-2004 Philip Kendall
 
-   $Id: snapshot.c,v 1.105 2007/02/02 16:21:52 pak21 Exp $
+   $Id: snapshot.c,v 1.105.2.1 2007/05/09 19:31:02 pak21 Exp $
 
    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
@@ -136,9 +136,13 @@
 
   machine = libspectrum_snap_machine( snap );
 
-  error = machine_select( machine );
-  if( error ) {
-    error = try_fallback_machine( machine ); if( error ) return error;
+  if( machine != machine_current->machine ) {
+    error = machine_select( machine );
+    if( error ) {
+      error = try_fallback_machine( machine ); if( error ) return error;
+    }
+  } else {
+    machine_reset();
   }
 
   capabilities = machine_current->capabilities;
Modified: branches/Release-0_8_0/fuse/spectrum.c
===================================================================
--- branches/Release-0_8_0/fuse/spectrum.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/spectrum.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* spectrum.c: Generic Spectrum routines
    Copyright (c) 1999-2004 Philip Kendall, Darren Salt
 
-   $Id: spectrum.c,v 1.67 2007/02/02 16:21:52 pak21 Exp $
+   $Id: spectrum.c,v 1.67.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -97,7 +97,7 @@
 
 /* What happens if we read from an unattached port? */
 libspectrum_byte
-spectrum_unattached_port( int offset )
+spectrum_unattached_port( void )
 {
   int line, tstates_through_line, column;
 
@@ -110,24 +110,26 @@
 	   machine_current->line_times[ DISPLAY_BORDER_HEIGHT ] ) /
     machine_current->timings.tstates_per_line;
 
-  /* Idle bus if we're in the lower or upper borders */
+  /* Idle bus if we're in the lower border */
   if( line >= DISPLAY_HEIGHT ) return 0xff;
 
-  /* Work out where we are in this line */
+  /* Work out where we are in this line, remembering that line_times[] holds
+     the first pixel we display, not the start of where the Spectrum produced
+     the left border */
   tstates_through_line = tstates -
-    machine_current->line_times[ DISPLAY_BORDER_HEIGHT + line ];
+    machine_current->line_times[ DISPLAY_BORDER_HEIGHT + line ] +
+    ( machine_current->timings.left_border - DISPLAY_BORDER_WIDTH_COLS * 4 );
 
   /* Idle bus if we're in the left border */
-  if( tstates_through_line < machine_current->timings.left_border - offset )
+  if( tstates_through_line < machine_current->timings.left_border )
     return 0xff;
 
   /* Or the right border or retrace */
   if( tstates_through_line >= machine_current->timings.left_border +
-                              machine_current->timings.horizontal_screen -
-                              offset )
+                              machine_current->timings.horizontal_screen  )
     return 0xff;
 
-  column = ( ( tstates_through_line + 1 -
+  column = ( ( tstates_through_line -
 	       machine_current->timings.left_border ) / 8 ) * 2;
 
   switch( tstates_through_line % 8 ) {
@@ -137,24 +139,24 @@
        http://www.ramsoft.bbk.org/floatingbus.html
 
        However, the timings used are based on the first byte being
-       returned at 14335 (48K) and 14361 (128K) respectively, not
+       returned at 14338 (48K) and 14364 (128K) respectively, not
        14347 and 14368 as used by Ramsoft.
 
        In contrast to previous versions of this code, Arkanoid and
        Sidewize now work. */
 
     /* Attribute bytes */
-    case 3: column++;
-    case 1:
+    case 5: column++;
+    case 3:
       return RAM[ memory_current_screen ][ display_attr_start[line] + column ];
 
     /* Screen data */
-    case 2: column++;
-    case 0:
+    case 4: column++;
+    case 2:
       return RAM[ memory_current_screen ][ display_line_start[line] + column ];
 
     /* Idle bus */
-    case 4: case 5: case 6: case 7:
+    case 0: case 1: case 6: case 7:
       return 0xff;
 
   }
Modified: branches/Release-0_8_0/fuse/spectrum.h
===================================================================
--- branches/Release-0_8_0/fuse/spectrum.h	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/spectrum.h	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* spectrum.h: Spectrum 48K specific routines
    Copyright (c) 1999-2004 Philip Kendall, Darren Salt
 
-   $Id: spectrum.h,v 1.45 2007/02/02 16:21:52 pak21 Exp $
+   $Id: spectrum.h,v 1.45.2.1 2007/05/03 07:31:42 pak21 Exp $
 
    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
@@ -66,7 +66,7 @@
 
 } spectrum_raminfo;
 
-libspectrum_byte spectrum_unattached_port( int offset );
+libspectrum_byte spectrum_unattached_port( void );
 
 /* Miscellaneous stuff */
 
Modified: branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -2,7 +2,7 @@
    Copyright (c) 2000-2003 Philip Kendall, Matan Ziv-Av, Darren Salt,
 			   Witold Filipczyk
 
-   $Id: fbdisplay.c,v 1.40 2007/02/02 16:21:56 pak21 Exp $
+   $Id: fbdisplay.c,v 1.40.2.1 2007/04/28 00:23:08 fredm Exp $
 
    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
@@ -293,10 +293,10 @@
   return 1;
 }
 
-void
+int
 uidisplay_hotswap_gfx_mode( void )
 {
-  return;
+  return 0;
 }
 
 void
Modified: branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* ggiui.c: Routines for dealing with the GGI user interface
    Copyright (c) 2003 Catalin Mihaila, Philip Kendall
 
-   $Id: ggidisplay.c,v 1.6 2007/02/02 16:21:56 pak21 Exp $
+   $Id: ggidisplay.c,v 1.6.2.1 2007/04/28 00:23:08 fredm Exp $
 
    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
@@ -160,10 +160,10 @@
 }
 
 
-void
+int
 uidisplay_hotswap_gfx_mode( void )
 {
-  return;
+  return 0;
 }
 
 /* Set one pixel in the display */
Modified: branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c	2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c	2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
 /* gtkdisplay.c: GTK+ routines for dealing with the Speccy screen
    Copyright (c) 2000-2005 Philip Kenda...
 
[truncated message content] |