Thread: [Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [249] vendor/fuse/current
                
                Brought to you by:
                
                    fredm
                    
                
            
            
        
        
        
    | 
      
      
      From: <fr...@us...> - 2006-12-17 13:30:53
       | 
| Revision: 249
          http://svn.sourceforge.net/fuse-for-macosx/?rev=249&view=rev
Author:   fredm
Date:     2006-12-17 05:30:52 -0800 (Sun, 17 Dec 2006)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/debugger/breakpoint.c
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/machine.c
    vendor/fuse/current/man/fuse.1
    vendor/fuse/current/ui/sdl/sdljoystick.c
    vendor/fuse/current/ui/xlib/xdisplay.c
    vendor/fuse/current/widget/widget.c
Modified: vendor/fuse/current/debugger/breakpoint.c
===================================================================
--- vendor/fuse/current/debugger/breakpoint.c	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/debugger/breakpoint.c	2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
 /* breakpoint.c: a debugger breakpoint
    Copyright (c) 2002-2004 Philip Kendall
 
-   $Id: breakpoint.c,v 1.7 2004/06/16 14:46:34 pak21 Exp $
+   $Id: breakpoint.c,v 1.8 2006/12/15 20:50:47 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
@@ -440,11 +440,11 @@
 
     found++;
 
+    free( ptr->data );
+
     debugger_breakpoints = g_slist_remove( debugger_breakpoints, ptr->data );
     if( debugger_mode == DEBUGGER_MODE_ACTIVE && !debugger_breakpoints )
       debugger_mode = DEBUGGER_MODE_INACTIVE;
-
-    free( ptr->data );
   }
 
   if( !found ) {
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/hacking/ChangeLog	2006-12-17 13:30:52 UTC (rev 249)
@@ -1469,3 +1469,15 @@
          specplus3e.c,tc2048.c,tc2068.c,ts2068.c},profile.c,settings-header.pl,
          settings.dat,settings.pl,widget/roms.c: fallback to loading default ROM
          if custom ROM is not found (Fred).
+20061126 ui/sdl/sdljoystick.c: fix joystick support in SDL UI (Fred).
+20061126 man/fuse.1: add a smidgeon of content about Interface I (Fred).
+20061202 widget/widget.c: guard against the double free on the options dialog
+         (Fred).
+20061202 widget/widget.c: use checkbox instead of "On/Off" text in widget UIs
+         (patch #1309374) (Gergely Szasz).
+20061202 man/fuse.1: add some more TS2068 stuff (Fred).
+20061213 ui/xlib/xdisplay.c: fix compilation.
+20061215 debugger/breakpoint.c: fix segfault on "clear" command (thanks,
+	 Stuart Brady)
+20061217 machine.c: load rom into correct memory bank (fixes If1 ROM paging)
+         (Fred).
Modified: vendor/fuse/current/machine.c
===================================================================
--- vendor/fuse/current/machine.c	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/machine.c	2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
 /* machine.c: Routines for handling the various machine types
    Copyright (c) 1999-2005 Philip Kendall
 
-   $Id: machine.c,v 1.117 2006/10/21 05:28:33 fredm Exp $
+   $Id: machine.c,v 1.118 2006/12/17 12:47:01 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
@@ -326,10 +326,10 @@
                        const char *filename, const char *fallback,
                        size_t expected_length )
 {
-  int retval = machine_load_rom_bank_internal( memory_map_rom, which, page_num,
+  int retval = machine_load_rom_bank_internal( bank_map, which, page_num,
                                                filename, expected_length );
   if( retval && fallback )
-    retval = machine_load_rom_bank_internal( memory_map_rom, which, page_num,
+    retval = machine_load_rom_bank_internal( bank_map, which, page_num,
                                              fallback, expected_length );
   return retval;
 }
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/man/fuse.1	2006-12-17 13:30:52 UTC (rev 249)
@@ -58,7 +58,8 @@
 the old DAT-file variant is not. DSK disk images are supported when
 emulating a +3, TRD and SCL disk images are supported when emulating
 a Pentagon or Scorpion and DCK cartridge images are supported when
-emulating a TC2068. Interface II ROM cartridges are also supported.
+emulating a Timex 2068 variant. Interface II ROM cartridges are also
+supported.
 .PP
 Finally, there is also support for reading and writing the RZX input recording
 format.
@@ -181,8 +182,8 @@
 .PP
 .I "\-\-dock file"
 .RS
-Insert the specified file into the emulated Timex TC2068 dock; also select
-the TC2068 on startup if available.
+Insert the specified file into the emulated Timex 2068 variant dock;
+also select the TC2068 on startup if available.
 .RE
 .PP
 .I "\-\-embed\-snapshot"
@@ -269,6 +270,13 @@
 Insert the specified file into the emulated Interface II.
 .RE
 .PP
+.I \-\-interface1
+.RS
+Emulate a Sinclair Interface I. Same as the Peripherals Options dialog's
+.I "Interface I"
+option.
+.RE
+.PP
 .I \-\-interface2
 .RS
 Emulate a Sinclair Interface II. Same as the Peripherals Options dialog's
@@ -345,8 +353,10 @@
 .IR plus3 ,
 .IR 2048 ,
 .IR 2068 ,
+.IR ts2068 ,
+.IR pentagon ,
 and
-.IR pentagon .
+.IR scorpion .
 .RE
 .PP
 .I "\-p file"
@@ -1246,6 +1256,15 @@
 it successfully opens one. The first of these is preferred since (at least on
 Linux, with a 2.6-series kernel) any type of mouse can be used and any
 connected mouse may be used.
+.PP
+.I "Interface I"
+.RS
+If this option is selected, Fuse will emulate the simple Sinclair
+Interface I, and allow microdrive cartriges to be
+connected and disconnected via the
+.I "Media, Interface I, Microdrive"
+menus. It also enables support for the Interface I RS-232 and Sinclair
+network interfaces.
 .RE
 .PP
 .I "Interface II"
@@ -1458,8 +1477,8 @@
 .br
 .I Timex 2
 .RS
-The `left' and `right' joysticks as attached to the TC2068's built-in
-joystick interface.
+The `left' and `right' joysticks as attached to the Timex 2068 variant's
+built-in joystick interface.
 .RE
 .RE
 .PP
@@ -1524,9 +1543,11 @@
 .RS
 Choose a type of Spectrum to emulate. An brief overview of the
 Sinclair, Amstrad and Timex can be found at
-.IR "http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm" ,
+.IR "http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm"
 while more technical information can be found at
-.IR "http://www.worldofspectrum.org/faq/reference/reference.htm" .
+.IR "http://www.worldofspectrum.org/faq/reference/reference.htm" ,
+and
+.IR "http://www.worldofspectrum.org/faq/reference/tmxreference.htm" .
 .PP
 .I "Spectrum 16K"
 .br
@@ -1570,10 +1591,12 @@
 .br
 .I "Timex TC2068"
 .RS
-The variants of the Spectrum as released by Timex in Portugal. See
-.I "http://www.worldofspectrum.org/faq/reference/tmxreference.htm"
-for more details.
+The variants of the Spectrum as released by Timex in Portugal.
 .RE
+.I "Timex TS2048"
+.RS
+The variant of the Spectrum released by Timex in North America.
+.RE
 .PP
 .I "Pentagon 128K"
 .br
@@ -1792,14 +1815,14 @@
 .PP
 .I "Media, Cartridge, Timex Dock, Insert..."
 .RS
-Insert a cartridge into the TC2068's dock. This will cause the
-emulated machine to be changed to the TC2068 (if it wasn't already)
-and reset.
+Insert a cartridge into the Timex 2068 dock. This will cause the
+emulated machine to be changed to the TC2068 (if it wasn't already
+a 2068 variant) and reset.
 .RE
 .PP
 .I "Media, Cartridge, Timex Dock, Eject"
 .RS
-Remove the cartridge from the TC2068's dock. This will cause the
+Remove the cartridge from the Timex 2068 dock. This will cause the
 emulated machine to be reset.
 .RE
 .PP
@@ -2090,7 +2113,7 @@
 printers, three of which are supported by Fuse. Different printers are
 made available for the different models:
 .TP
-.IR 16 ", " 48 ", " TC2048 ", " TC2068
+.IR 16 ", " 48 ", " TC2048 ", " TC2068 ", " TS2068
 ZX Printer
 .TP
 .IR 128 / +2 / Pentagon
@@ -2709,9 +2732,9 @@
 .PP
 Alexander Yurchenko wrote the OpenBSD/Solaris-specific sound code.
 .PP
-Fredrick Meunier wrote the TC2048, Pentagon and Spectrum SE support as
-well as maintaining the OS X port and importing the graphics filter
-code.
+Fredrick Meunier wrote the TC2048, TS2068, Pentagon and Spectrum SE
+support as well as maintaining the OS X port and importing the
+graphics filter code.
 .PP
 Ludvig Strigeus and The ScummVM project wrote the original graphics
 filter code.
Modified: vendor/fuse/current/ui/sdl/sdljoystick.c
===================================================================
--- vendor/fuse/current/ui/sdl/sdljoystick.c	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/ui/sdl/sdljoystick.c	2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
 /* sdljoystick.c: routines for dealing with the SDL joystick
    Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall
 
-   $Id: sdljoystick.c,v 1.7 2004/06/18 21:53:22 pak21 Exp $
+   $Id: sdljoystick.c,v 1.8 2006/11/26 03:26:19 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
@@ -53,10 +53,16 @@
 int
 ui_joystick_init( void )
 {
-  int retval = SDL_NumJoysticks();
+  int error, retval;
 
-  SDL_InitSubSystem( SDL_INIT_JOYSTICK );
+  error = SDL_InitSubSystem( SDL_INIT_JOYSTICK );
+  if ( error ) {
+    ui_error( UI_ERROR_ERROR, "failed to initialise joystick subsystem" );
+    return 0;
+  }
 
+  retval = SDL_NumJoysticks();
+
   if( retval >= 2 ) {
 
     retval = 2;
Modified: vendor/fuse/current/ui/xlib/xdisplay.c
===================================================================
--- vendor/fuse/current/ui/xlib/xdisplay.c	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/ui/xlib/xdisplay.c	2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
 /* xdisplay.c: Routines for dealing with drawing the Speccy's screen via Xlib
    Copyright (c) 2000-2005 Philip Kendall, Darren Salt
 
-   $Id: xdisplay.c,v 1.53 2006/09/17 00:56:20 fredm Exp $
+   $Id: xdisplay.c,v 1.54 2006/12/13 22:01:04 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
@@ -452,7 +452,7 @@
   scaled_x = scale * x; scaled_y = scale * y;
 
   /* Create scaled image */
-  scaler_proc16( (libspectrum_byte*)&xdisplay_image[y][x], display_pitch,
+  scaler_proc16( (libspectrum_byte*)&xdisplay_image[y][x], xdisplay_pitch,
 		 (libspectrum_byte*)&scaled_image[scaled_y][scaled_x],
 		 scaled_pitch, w, h );
 
Modified: vendor/fuse/current/widget/widget.c
===================================================================
--- vendor/fuse/current/widget/widget.c	2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/widget/widget.c	2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
 /* widget.c: Simple dialog boxes for all user interfaces.
    Copyright (c) 2001-2005 Matan Ziv-Av, Philip Kendall, Russell Marks
 
-   $Id: widget.c,v 1.111 2006/09/17 00:56:20 fredm Exp $
+   $Id: widget.c,v 1.113 2006/12/02 03:24:17 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
@@ -315,6 +315,28 @@
         widget_putpixel( x + mx, y + my, col );
 }
 
+void widget_print_checkbox( int x, int y, int value )
+{
+    static const int CHECK_COLOR=7;
+    int z;
+
+    y += 2;
+    x += 6;
+    widget_rectangle( x, y - 1, 3, 3, WIDGET_COLOUR_BACKGROUND );
+    widget_rectangle( x - 5, y, 5, 5, 0 );
+    widget_rectangle( x - 4, y + 1, 3, 3, WIDGET_COLOUR_BACKGROUND );
+    if( value ) {	/* checked */
+      for( z = -1; z < 3; z++ ) {
+        widget_putpixel( x - z, y + z, CHECK_COLOR );
+        widget_putpixel( x - z + 1, y + z, CHECK_COLOR );
+      }
+      widget_putpixel( x - z + 1, y + z, CHECK_COLOR );
+      widget_putpixel( x - z, y + z - 1, CHECK_COLOR );
+      widget_putpixel( x - z, y + z - 2, CHECK_COLOR );
+      widget_putpixel( x - z - 1, y + z - 2, CHECK_COLOR );
+    }
+}
+
 /* Arrows for any scrollable widget */
 void
 widget_up_arrow( int x, int y, int colour )
@@ -566,7 +588,10 @@
 
 int widget_options_print_value( int number, int value )
 {
-  return widget_options_print_data( number, value ? "On" : "Off" );
+  widget_rectangle( 233, number * 8 + 28, 7, 8, WIDGET_COLOUR_BACKGROUND );
+  widget_print_checkbox( 233, number * 8 + 28, value );
+  widget_display_rasters( number * 8 + 28, 8 );
+  return 0;
 }
 
 static int widget_options_print_data( int number, const char *string )
@@ -599,6 +624,7 @@
   if( finished == WIDGET_FINISHED_OK ) {
     error = settings_copy( &settings_current, &widget_options_settings );
     settings_free( &widget_options_settings );
+    memset( &widget_options_settings, 0, sizeof( settings_info ) );
     if( error ) return error;
 
     /* Bring the peripherals list into sync with the new options */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fr...@us...> - 2007-02-04 11:16:18
       | 
| Revision: 298
          http://svn.sourceforge.net/fuse-for-macosx/?rev=298&view=rev
Author:   fredm
Date:     2007-02-04 03:14:46 -0800 (Sun, 04 Feb 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/ChangeLog
    vendor/fuse/current/Makefile.am
    vendor/fuse/current/README
    vendor/fuse/current/autogen.sh
    vendor/fuse/current/ay.c
    vendor/fuse/current/ay.h
    vendor/fuse/current/compat/Makefile.am
    vendor/fuse/current/compat/dirname.c
    vendor/fuse/current/compat.h
    vendor/fuse/current/configure.in
    vendor/fuse/current/dck.c
    vendor/fuse/current/dck.h
    vendor/fuse/current/debugger/Makefile.am
    vendor/fuse/current/debugger/breakpoint.c
    vendor/fuse/current/debugger/breakpoint.h
    vendor/fuse/current/debugger/command.c
    vendor/fuse/current/debugger/commandl.l
    vendor/fuse/current/debugger/commandy.y
    vendor/fuse/current/debugger/debugger.c
    vendor/fuse/current/debugger/debugger.h
    vendor/fuse/current/debugger/debugger_internals.h
    vendor/fuse/current/debugger/disassemble.c
    vendor/fuse/current/debugger/expression.c
    vendor/fuse/current/display.c
    vendor/fuse/current/display.h
    vendor/fuse/current/divide.c
    vendor/fuse/current/divide.h
    vendor/fuse/current/event.c
    vendor/fuse/current/event.h
    vendor/fuse/current/fuse.c
    vendor/fuse/current/fuse.h
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/hacking/Makefile.am
    vendor/fuse/current/hacking/cvs-tags
    vendor/fuse/current/ide.c
    vendor/fuse/current/ide.h
    vendor/fuse/current/if1.c
    vendor/fuse/current/if1.h
    vendor/fuse/current/if2.c
    vendor/fuse/current/if2.h
    vendor/fuse/current/input.c
    vendor/fuse/current/input.h
    vendor/fuse/current/joystick.c
    vendor/fuse/current/joystick.h
    vendor/fuse/current/keyboard.c
    vendor/fuse/current/keyboard.h
    vendor/fuse/current/keysyms.dat
    vendor/fuse/current/keysyms.pl
    vendor/fuse/current/lib/Makefile.am
    vendor/fuse/current/loader.c
    vendor/fuse/current/loader.h
    vendor/fuse/current/machine.c
    vendor/fuse/current/machine.h
    vendor/fuse/current/machines/Makefile.am
    vendor/fuse/current/machines/machines.h
    vendor/fuse/current/machines/pentagon.c
    vendor/fuse/current/machines/scorpion.c
    vendor/fuse/current/machines/scorpion.h
    vendor/fuse/current/machines/spec128.c
    vendor/fuse/current/machines/spec128.h
    vendor/fuse/current/machines/spec16.c
    vendor/fuse/current/machines/spec48.c
    vendor/fuse/current/machines/spec48.h
    vendor/fuse/current/machines/spec_se.c
    vendor/fuse/current/machines/specplus2.c
    vendor/fuse/current/machines/specplus2a.c
    vendor/fuse/current/machines/specplus3.c
    vendor/fuse/current/machines/specplus3.h
    vendor/fuse/current/machines/specplus3e.c
    vendor/fuse/current/machines/tc2048.c
    vendor/fuse/current/machines/tc2068.c
    vendor/fuse/current/machines/tc2068.h
    vendor/fuse/current/machines/ts2068.c
    vendor/fuse/current/man/Makefile.am
    vendor/fuse/current/man/fuse.1
    vendor/fuse/current/memory.c
    vendor/fuse/current/memory.h
    vendor/fuse/current/menu.c
    vendor/fuse/current/menu.h
    vendor/fuse/current/menu_data.c
    vendor/fuse/current/menu_data.pl
    vendor/fuse/current/periph.c
    vendor/fuse/current/periph.h
    vendor/fuse/current/perl/Fuse/Dialog.pm
    vendor/fuse/current/perl/Fuse/Makefile.am
    vendor/fuse/current/perl/Fuse.pm
    vendor/fuse/current/perl/Makefile.am
    vendor/fuse/current/perl/cpp-perl.pl
    vendor/fuse/current/pokefinder/Makefile.am
    vendor/fuse/current/pokefinder/pokefinder.c
    vendor/fuse/current/pokefinder/pokefinder.h
    vendor/fuse/current/printer.c
    vendor/fuse/current/printer.h
    vendor/fuse/current/profile.c
    vendor/fuse/current/profile.h
    vendor/fuse/current/psg.c
    vendor/fuse/current/psg.h
    vendor/fuse/current/roms/Makefile.am
    vendor/fuse/current/rzx.c
    vendor/fuse/current/rzx.h
    vendor/fuse/current/scld.c
    vendor/fuse/current/screenshot.c
    vendor/fuse/current/screenshot.h
    vendor/fuse/current/settings-header.pl
    vendor/fuse/current/settings.dat
    vendor/fuse/current/settings.pl
    vendor/fuse/current/simpleide.c
    vendor/fuse/current/slt.c
    vendor/fuse/current/slt.h
    vendor/fuse/current/snapshot.c
    vendor/fuse/current/snapshot.h
    vendor/fuse/current/sound/Makefile.am
    vendor/fuse/current/sound/aosound.c
    vendor/fuse/current/sound/dxsound.c
    vendor/fuse/current/sound/lowlevel.h
    vendor/fuse/current/sound/sdlsound.c
    vendor/fuse/current/sound/sfifo.c
    vendor/fuse/current/sound.c
    vendor/fuse/current/sound.h
    vendor/fuse/current/spectrum.c
    vendor/fuse/current/spectrum.h
    vendor/fuse/current/tape.c
    vendor/fuse/current/tape.h
    vendor/fuse/current/timer.c
    vendor/fuse/current/timer.h
    vendor/fuse/current/trdos.c
    vendor/fuse/current/trdos.h
    vendor/fuse/current/ui/Makefile.am
    vendor/fuse/current/ui/aalib/Makefile.am
    vendor/fuse/current/ui/aalib/aalibdisplay.c
    vendor/fuse/current/ui/aalib/aalibkeyboard.c
    vendor/fuse/current/ui/aalib/aalibkeyboard.h
    vendor/fuse/current/ui/aalib/aalibui.c
    vendor/fuse/current/ui/aalib/aalibui.h
    vendor/fuse/current/ui/aalib/error.c
    vendor/fuse/current/ui/fb/Makefile.am
    vendor/fuse/current/ui/fb/fbdisplay.c
    vendor/fuse/current/ui/fb/fbdisplay.h
    vendor/fuse/current/ui/fb/fbjoystick.c
    vendor/fuse/current/ui/fb/fbkeyboard.c
    vendor/fuse/current/ui/fb/fbkeyboard.h
    vendor/fuse/current/ui/fb/fbui.c
    vendor/fuse/current/ui/ggi/Makefile.am
    vendor/fuse/current/ui/ggi/ggi_internals.h
    vendor/fuse/current/ui/ggi/ggidisplay.c
    vendor/fuse/current/ui/ggi/ggikeyboard.c
    vendor/fuse/current/ui/ggi/ggiui.c
    vendor/fuse/current/ui/gtk/Makefile.am
    vendor/fuse/current/ui/gtk/binary.c
    vendor/fuse/current/ui/gtk/browse.c
    vendor/fuse/current/ui/gtk/confirm.c
    vendor/fuse/current/ui/gtk/debugger.c
    vendor/fuse/current/ui/gtk/fileselector.c
    vendor/fuse/current/ui/gtk/gtkdisplay.c
    vendor/fuse/current/ui/gtk/gtkinternals.h
    vendor/fuse/current/ui/gtk/gtkjoystick.c
    vendor/fuse/current/ui/gtk/gtkkeyboard.c
    vendor/fuse/current/ui/gtk/gtkui.c
    vendor/fuse/current/ui/gtk/memory.c
    vendor/fuse/current/ui/gtk/options-header.pl
    vendor/fuse/current/ui/gtk/options.pl
    vendor/fuse/current/ui/gtk/picture.c
    vendor/fuse/current/ui/gtk/pixmaps.c
    vendor/fuse/current/ui/gtk/pokefinder.c
    vendor/fuse/current/ui/gtk/rollback.c
    vendor/fuse/current/ui/gtk/roms.c
    vendor/fuse/current/ui/gtk/statusbar.c
    vendor/fuse/current/ui/gtk/stock.c
    vendor/fuse/current/ui/options.dat
    vendor/fuse/current/ui/scaler/Makefile.am
    vendor/fuse/current/ui/scaler/scaler.c
    vendor/fuse/current/ui/scaler/scaler.h
    vendor/fuse/current/ui/scaler/scaler_internals.h
    vendor/fuse/current/ui/scaler/scalers.c
    vendor/fuse/current/ui/sdl/Makefile.am
    vendor/fuse/current/ui/sdl/sdldisplay.c
    vendor/fuse/current/ui/sdl/sdldisplay.h
    vendor/fuse/current/ui/sdl/sdljoystick.c
    vendor/fuse/current/ui/sdl/sdljoystick.h
    vendor/fuse/current/ui/sdl/sdlkeyboard.c
    vendor/fuse/current/ui/sdl/sdlkeyboard.h
    vendor/fuse/current/ui/sdl/sdlui.c
    vendor/fuse/current/ui/svga/Makefile.am
    vendor/fuse/current/ui/svga/svgadisplay.c
    vendor/fuse/current/ui/svga/svgadisplay.h
    vendor/fuse/current/ui/svga/svgajoystick.c
    vendor/fuse/current/ui/svga/svgakeyboard.c
    vendor/fuse/current/ui/svga/svgakeyboard.h
    vendor/fuse/current/ui/svga/svgaui.c
    vendor/fuse/current/ui/ui.h
    vendor/fuse/current/ui/uidisplay.h
    vendor/fuse/current/ui/uijoystick.c
    vendor/fuse/current/ui/uijoystick.h
    vendor/fuse/current/ui/win32/Makefile.am
    vendor/fuse/current/ui/win32/debugger.c
    vendor/fuse/current/ui/win32/debugger.h
    vendor/fuse/current/ui/win32/debugger.rc
    vendor/fuse/current/ui/win32/error.c
    vendor/fuse/current/ui/win32/keysyms.c
    vendor/fuse/current/ui/win32/menu_data.c
    vendor/fuse/current/ui/win32/menu_data.h
    vendor/fuse/current/ui/win32/menu_data.rc
    vendor/fuse/current/ui/win32/pokefinder.c
    vendor/fuse/current/ui/win32/pokefinder.h
    vendor/fuse/current/ui/win32/pokefinder.rc
    vendor/fuse/current/ui/win32/statusbar.c
    vendor/fuse/current/ui/win32/win32display.c
    vendor/fuse/current/ui/win32/win32display.h
    vendor/fuse/current/ui/win32/win32internals.h
    vendor/fuse/current/ui/win32/win32keyboard.c
    vendor/fuse/current/ui/win32/win32keyboard.h
    vendor/fuse/current/ui/win32/win32ui.c
    vendor/fuse/current/ui/win32/win32ui.rc
    vendor/fuse/current/ui/xlib/Makefile.am
    vendor/fuse/current/ui/xlib/xdisplay.c
    vendor/fuse/current/ui/xlib/xdisplay.h
    vendor/fuse/current/ui/xlib/xerror.c
    vendor/fuse/current/ui/xlib/xjoystick.c
    vendor/fuse/current/ui/xlib/xkeyboard.c
    vendor/fuse/current/ui/xlib/xkeyboard.h
    vendor/fuse/current/ui/xlib/xui.c
    vendor/fuse/current/ui/xlib/xui.h
    vendor/fuse/current/ui.c
    vendor/fuse/current/uidisplay.c
    vendor/fuse/current/ula.c
    vendor/fuse/current/ula.h
    vendor/fuse/current/utils.c
    vendor/fuse/current/utils.h
    vendor/fuse/current/widget/Makefile.am
    vendor/fuse/current/widget/browse.c
    vendor/fuse/current/widget/debugger.c
    vendor/fuse/current/widget/error.c
    vendor/fuse/current/widget/filesel.c
    vendor/fuse/current/widget/menu.c
    vendor/fuse/current/widget/options-header.pl
    vendor/fuse/current/widget/options.pl
    vendor/fuse/current/widget/picture.c
    vendor/fuse/current/widget/roms.c
    vendor/fuse/current/widget/select.c
    vendor/fuse/current/widget/text.c
    vendor/fuse/current/widget/widget.c
    vendor/fuse/current/widget/widget.h
    vendor/fuse/current/widget/widget_internals.h
    vendor/fuse/current/z80/Makefile.am
    vendor/fuse/current/z80/coretest.c
    vendor/fuse/current/z80/harness.pl
    vendor/fuse/current/z80/tests/Makefile.am
    vendor/fuse/current/z80/z80.c
    vendor/fuse/current/z80/z80.h
    vendor/fuse/current/z80/z80.pl
    vendor/fuse/current/z80/z80_macros.h
    vendor/fuse/current/z80/z80_ops.c
    vendor/fuse/current/zxatasp.c
    vendor/fuse/current/zxatasp.h
    vendor/fuse/current/zxcf.c
    vendor/fuse/current/zxcf.h
Added Paths:
-----------
    vendor/fuse/current/sound/coreaudiosound.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ChangeLog	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,30 +1,56 @@
-2005-??-??  Philip Kendall  <pak...@sr...>
+2007-??-??  Philip Kendall  <phi...@sh...>
 
+	* Fuse 0.8.0 released
+
 	* New features:
+	  * Loader improvements: automatically run at full speed while
+	    a loader is in progress and automatically start/stop the tape
+	    when the start/end of a loader is detected (Philip Kendall).
 	  * RZX 'rollback' support (Philip Kendall).
+	  * DivIDE support (Matthew Westcott)
+	  * Interface I and microdrive emulation (Gergely Szasz).
 	  * TS2068 support (Fredrick Meunier).
-	  * Interface I and microdrive emulation (Gergely Szasz).
 	  * Kempston mouse emulation (Darren Salt).
+	  * TZX generalized data block (0x19) support (Philip Kendall).
+	  * Much improved widget UI, including allowing selection of
+	    filenames (Darren Salt, Gergely Szasz).
 	  * Allow SDL full screen mode to be used (Darren Salt).
 	  * Add the ability to save 'movies' as collections of screenshots
 	    (Gergely Szasz).
 	  * Widget pokefinder (Darren Salt).
 	  * Add a simple code profiler (Philip Kendall).
 	  * New libao sound driver (Gergely Szasz).
+	  * New CoreAudio sound driver (Fredrick Meunier).
+	  * New PALTV 1-3x and TV3x graphics scalers (Gergely Szasz).
 
 	* Emulation core improvements:
 	  * Improved screen rendering code (now character accurate rather
-	    than line accurate) (Philip Kendall).
+	    than line accurate) (Philip Kendall, Fredrick Meunier).
+	  * Corrections to write ordering and contention for EX (SP),HL,
+	    EX (SP),IX and EX (SP),IY (Philip Kendall; thanks, Mark
+	    Woodmass).
+	  * Corrections to contention for OTIR and OTDR (Philip Kendall;
+	    thanks, Mark Woodmass).
+	  * IR contention (Philip Kendall; thanks, Mark Woodmass).
+	  * Flag bits 3 and 5 are copied on all BIT instructions (Philip
+	    Kendall; thanks, Mark Woodmass).
 	  * Improved ULA emulation with respect to interrupt length
 	    (thanks, Jon Needle, Ramsoft and Mark Woodmass) (Philip
 	    Kendall).
+	  * Fix timings of shifted no operation opcodes (Philip Kendall).
+	  * An interrupt in IM 0 takes 13 tstates to acknowledge, not 12
+	    (Philip Kendall).
 	  * Improved speed control code (Fredrick Meunier).
 
 	* Miscellaneous:
-	  * Allow filenames to be selected from the widget UIs (Darren
-	    Salt).
 	  * Add a 'save, don't save, cancel' confirmation dialog before any
 	    changes to media are lost under the GTK+ UIs (Philip Kendall).
+	  * On the Pentagon, page in the TR-DOS ROM on NMI, allowing the
+	    snapshot function to work (Philip Kendall). On the Scorpion,
+	    page in ROM 2, allowing the monitor to work (thanks, Erik
+	    Kunze).
+	  * Default snapshot format is now .szx rather than .z80 (Fredrick
+	    Meunier)
 	  * Store current joystick information in snapshots (Fredrick
 	    Meunier).
 	  * Optional use of doublescan modes in the framebuffer and
@@ -35,11 +61,8 @@
 	  * Use stock button icons in the GTK+ 2.x UI (Darren Salt).
 	  * Save/restore the 'issue 2 keyboard' flag from snapshots
 	    (Philip Kendall).
-	  * Deactivate widget menu items when they are inappropriate
-	    (Darren Salt).
 	  * Correctly quote '-' characters in the man page (needed for
 	    UTF-8 environments) (Darren Salt, Stuart Brady).
-	  * Widget query confirmation dialog (Darren Salt).
 	  * Use separate menus for controlling +3 and TR-DOS disks (Philip
 	    Kendall).
 	  * Fix behaviour of ZXATASP and ZXCF on reset (Garry Lancaster).
@@ -50,9 +73,13 @@
 	    (Darren Salt).
 	  * Various minor improvements to the framebuffer UI (Darren
 	    Salt).
+	  * Various fixes to allow compilation with gcc 4.x (Philip
+	    Kendall).
 
-	* Various other minor bugfixes (Fredrick Meunier, Philip Kendall,
-	  Mark Round, Darren Salt, Paul van der Laan).
+	* Various other minor bugfixes (Philip Kendall, Fredrick Meunier,
+	  Jon Needle, Markus Oberhumer, Mark Round, Darren Salt, Gergely
+	  Szasz, Paul van der Laan and other people to whom I apologise
+	  for forgetting).
 
 2004-07-16  Philip Kendall  <pak...@sr...>
 
@@ -756,4 +783,4 @@
 
 	* Version 0.1.0 released.
 
-$Id: ChangeLog,v 1.42 2005/03/26 17:24:54 pak21 Exp $
+$Id: ChangeLog,v 1.46 2007/02/02 16:21:50 pak21 Exp $
Modified: vendor/fuse/current/Makefile.am
===================================================================
--- vendor/fuse/current/Makefile.am	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/Makefile.am	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 ## Copyright (c) 1999-2004 Philip Kendall
 
-## $Id: Makefile.am,v 1.118 2006/07/30 19:00:40 pak21 Exp $
+## $Id: Makefile.am,v 1.120 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 ##
 ## Author contact information:
 ##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
 
 AUTOMAKE_OPTIONS = foreign
 
@@ -107,6 +106,7 @@
 @GLIB_LIBS@ \
 @PNG_LIBS@ \
 @AO_LIBS@ \
+@COREAUDIO_LIBS@ \
 @X_LIBS@ \
 @XML_LIBS@ \
 compat/libcompat.a
Modified: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/README	2007-02-04 11:14:46 UTC (rev 298)
@@ -136,7 +136,7 @@
 the Usenet group 'comp.sys.sinclair', but do read the FAQ
 ( http://www.worldofspectrum.org/faq/index.html ) first!
 
-Philip Kendall <pak...@sr...>
+Philip Kendall <phi...@sh...>
 16 July 2004
 
-$Id: README,v 1.39 2004/07/15 10:42:29 pak21 Exp $
+$Id: README,v 1.40 2007/02/02 16:21:50 pak21 Exp $
Modified: vendor/fuse/current/autogen.sh
===================================================================
--- vendor/fuse/current/autogen.sh	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/autogen.sh	2007-02-04 11:14:46 UTC (rev 298)
@@ -3,7 +3,7 @@
 # autogen.sh: autotools invocation
 # Copyright (c) 2004 Philip Kendall
 
-# $Id: autogen.sh,v 1.4 2005/12/24 16:18:18 pak21 Exp $
+# $Id: autogen.sh,v 1.5 2007/02/02 16:21:50 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
@@ -21,8 +21,7 @@
 
 # Author contact information:
 
-# E-mail: Philip Kendall <pak...@sr...>
-# Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+# E-mail: Philip Kendall <phi...@sh...>
 
 # Exit on errors
 set -e
Modified: vendor/fuse/current/ay.c
===================================================================
--- vendor/fuse/current/ay.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ay.c	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* ay.c: AY-8-3912 routines
    Copyright (c) 1999-2004 Philip Kendall
 
-   $Id: ay.c,v 1.25 2004/06/15 09:48:40 pak21 Exp $
+   $Id: ay.c,v 1.26 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/ay.h
===================================================================
--- vendor/fuse/current/ay.h	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ay.h	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* ay.h: AY-8-3912 routines
    Copyright (c) 1999-2004 Philip Kendall
 
-   $Id: ay.h,v 1.15 2004/06/15 09:48:40 pak21 Exp $
+   $Id: ay.h,v 1.16 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/compat/Makefile.am
===================================================================
--- vendor/fuse/current/compat/Makefile.am	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat/Makefile.am	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 ## Copyright (c) 2003 Philip Kendall
 
-## $Id: Makefile.am,v 1.5 2004/03/28 09:55:50 pak21 Exp $
+## $Id: Makefile.am,v 1.6 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 ##
 ## Author contact information:
 ##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
 
 AUTOMAKE_OPTIONS = foreign
 
Modified: vendor/fuse/current/compat/dirname.c
===================================================================
--- vendor/fuse/current/compat/dirname.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat/dirname.c	2007-02-04 11:14:46 UTC (rev 298)
@@ -20,8 +20,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/compat.h
===================================================================
--- vendor/fuse/current/compat.h	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat.h	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* compat.h: various compatbility bits
    Copyright (c) 2003 Philip Kendall
 
-   $Id: compat.h,v 1.6 2004/04/11 10:13:22 pak21 Exp $
+   $Id: compat.h,v 1.7 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/configure.in	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.151 2005/03/06 05:30:27 fredm Exp $
+dnl $Id: configure.in,v 1.155 2007/02/02 16:21:50 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
@@ -17,8 +17,7 @@
 dnl
 dnl Author contact information:
 dnl
-dnl E-mail: pak...@sr...
-dnl Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+dnl E-mail: phi...@sh...
 
 AC_INIT(fuse.c)
 AM_CONFIG_HEADER(config.h)
@@ -397,8 +396,7 @@
   AC_CHECK_LIB( ao, ao_open_live,
     [AC_CHECK_HEADER(
       ao/ao.h,
-      [AC_DEFINE([USE_LIBAO], 1, [Defined if we're going to be using the instal
-ed libao]) AO_LIBS='-lao'],
+      [AC_DEFINE([USE_LIBAO], 1, [Defined if we're going to be using the installed libao]) AO_LIBS='-lao'],
       [AC_MSG_WARN(ao/ao.h not found - no libao sound output)]
     )],
     [AC_MSG_WARN(ao_open_live not found - no libao sound output)]
@@ -406,6 +404,14 @@
   AC_SUBST(AO_LIBS)
 fi
 
+dnl Check if CoreAudio is available
+AC_CHECK_HEADER(
+  CoreAudio/AudioHardware.h,
+  [AC_DEFINE([USE_COREAUDIO], 1, [Defined if we're going to be using CoreAudio]) COREAUDIO_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices'],
+  [AC_MSG_WARN(CoreAudio/AudioHardware.h not found - no CoreAudio sound output)]
+)
+AC_SUBST(COREAUDIO_LIBS)
+
 dnl Are we supplying the ROMs or relying on another package?
 AC_MSG_CHECKING(where to find the Spectrum ROM images)
 AC_ARG_WITH(roms-dir,
Modified: vendor/fuse/current/dck.c
===================================================================
--- vendor/fuse/current/dck.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/dck.c	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* dck.c: dock snapshot (Warajevo .DCK) handling routines
    Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall
 
-   $Id: dck.c,v 1.21 2004/05/25 10:05:05 fredm Exp $
+   $Id: dck.c,v 1.22 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   Philip: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   Philip: phi...@sh...
 
    Darren: li...@yo...
    Fred: fr...@sp...
Modified: vendor/fuse/current/dck.h
===================================================================
--- vendor/fuse/current/dck.h	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/dck.h	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* dck.c: dock snapshot (Warajevo .DCK) handling routines
    Copyright (c) 2003 Darren Salt, Fredrick Meunier
 
-   $Id: dck.h,v 1.2 2004/05/25 10:05:06 fredm Exp $
+   $Id: dck.h,v 1.3 2007/02/02 16:21:50 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   Philip: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   Philip: phi...@sh...
 
    Darren: li...@yo...
    Fred: fr...@sp...
Modified: vendor/fuse/current/debugger/Makefile.am
===================================================================
--- vendor/fuse/current/debugger/Makefile.am	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/Makefile.am	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 ## Copyright (c) 2001-2004 Philip Kendall
 
-## $Id: Makefile.am,v 1.12 2004/07/09 17:38:06 pak21 Exp $
+## $Id: Makefile.am,v 1.13 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 ##
 ## Author contact information:
 ##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
 
 AUTOMAKE_OPTIONS = foreign
 
Modified: vendor/fuse/current/debugger/breakpoint.c
===================================================================
--- vendor/fuse/current/debugger/breakpoint.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/breakpoint.c	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* breakpoint.c: a debugger breakpoint
    Copyright (c) 2002-2004 Philip Kendall
 
-   $Id: breakpoint.c,v 1.8 2006/12/15 20:50:47 pak21 Exp $
+   $Id: breakpoint.c,v 1.9 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/debugger/breakpoint.h
===================================================================
--- vendor/fuse/current/debugger/breakpoint.h	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/breakpoint.h	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* breakpoint.h: a debugger breakpoint
    Copyright (c) 2002-2004 Philip Kendall
 
-   $Id: breakpoint.h,v 1.4 2004/05/14 22:05:57 pak21 Exp $
+   $Id: breakpoint.h,v 1.5 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/debugger/command.c
===================================================================
--- vendor/fuse/current/debugger/command.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/command.c	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* command.c: Parse a debugger command
    Copyright (c) 2002 Philip Kendall
 
-   $Id: command.c,v 1.16 2003/12/02 14:56:32 pak21 Exp $
+   $Id: command.c,v 1.17 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/debugger/commandl.l
===================================================================
--- vendor/fuse/current/debugger/commandl.l	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/commandl.l	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* commandl.l: Debugger command lexical scanner
    Copyright (c) 2002 Philip Kendall
 
-   $Id: commandl.l,v 1.36 2004/06/16 14:46:34 pak21 Exp $
+   $Id: commandl.l,v 1.37 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/debugger/commandy.y
===================================================================
--- vendor/fuse/current/debugger/commandy.y	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/commandy.y	2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
 /* commandy.y: Parse a debugger command
    Copyright (c) 2002-2004 Philip Kendall
 
-   $Id: commandy.y,v 1.42 2004/06/16 14:46:34 pak21 Exp $
+   $Id: commandy.y,v 1.43 2007/02/02 16:21:53 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
@@ -19,8 +19,7 @@
 
    Author contact information:
 
-   E-mail: pak...@sr...
-   Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+   E-mail: phi...@sh...
 
 */
 
Modified: vendor/fuse/current/debugger/debugger.c
===================================================================
--- vendor/fuse/current/debugger/debugger.c	2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/de...
 
[truncated message content] | 
| 
      
      
      From: <fr...@us...> - 2007-03-10 12:02:08
       | 
| Revision: 309
          http://svn.sourceforge.net/fuse-for-macosx/?rev=309&view=rev
Author:   fredm
Date:     2007-03-10 04:02:05 -0800 (Sat, 10 Mar 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/configure.in
    vendor/fuse/current/display.c
    vendor/fuse/current/fuse.c
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/hacking/cvs-tags
    vendor/fuse/current/if1.c
    vendor/fuse/current/man/fuse.1
    vendor/fuse/current/rzx.c
    vendor/fuse/current/settings.dat
    vendor/fuse/current/sound/aosound.c
    vendor/fuse/current/sound/coreaudiosound.c
    vendor/fuse/current/sound/sdlsound.c
    vendor/fuse/current/sound.c
    vendor/fuse/current/ui/gtk/gtkui.c
    vendor/fuse/current/ui.c
    vendor/fuse/current/utils.c
    vendor/fuse/current/widget/filesel.c
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/configure.in	2007-03-10 12:02:05 UTC (rev 309)
@@ -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
@@ -388,9 +388,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: vendor/fuse/current/display.c
===================================================================
--- vendor/fuse/current/display.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/display.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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
@@ -651,7 +651,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: vendor/fuse/current/fuse.c
===================================================================
--- vendor/fuse/current/fuse.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/fuse.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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
@@ -113,6 +113,7 @@
   const char *zxatasp_master, *zxatasp_slave;
   const char *zxcf;
   const char *divide_master, *divide_slave;
+  const char *mdr[8];
 
 } start_files_t;
 
@@ -474,6 +475,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;
 }
 
@@ -482,7 +492,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;
@@ -536,6 +546,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;
 
@@ -558,7 +577,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 ) {
@@ -637,6 +656,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: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/hacking/ChangeLog	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/hacking/cvs-tags	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/if1.c
===================================================================
--- vendor/fuse/current/if1.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/if1.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/man/fuse.1	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/rzx.c
===================================================================
--- vendor/fuse/current/rzx.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/rzx.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/settings.dat
===================================================================
--- vendor/fuse/current/settings.dat	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/settings.dat	2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
 # settings.dat: configuration options for Fuse
 # Copyright (c) 2002-2004 Philip Kendall
 
-# $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
@@ -107,6 +107,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
@@ -127,6 +135,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: vendor/fuse/current/sound/aosound.c
===================================================================
--- vendor/fuse/current/sound/aosound.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/aosound.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/sound/coreaudiosound.c
===================================================================
--- vendor/fuse/current/sound/coreaudiosound.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/coreaudiosound.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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: vendor/fuse/current/sound/sdlsound.c
===================================================================
--- vendor/fuse/current/sound/sdlsound.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/sdlsound.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -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 @@
 
     requested.freq = *freqptr;
 
-    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, NULL ) < 0 ) {
       settings_current.sound = 0;
       ui_error( UI_ERROR_ERROR, "Couldn't open sound device: %s",
                 SDL_GetError() );
       return 1;
     }
-
-    /* Convert from 16-bit stereo samples to bytes plus some headroom */
-    frag = 1 << (frag+3);
-
   } else {
-    *freqptr = received.freq;
     *stereoptr = received.channels == 1 ? 0 : 1;
-    frag = received.size;
   }
 
-  if( ( error = sfifo_init( &sound_fifo, 2 * frag + 1 ) ) ) {
+  hz = (float)machine_current->timings.processor_speed /
+              machine_current->timings.tstates_per_frame;
+  sound_framesiz = *freqptr / hz;
+  sound_framesiz <<= 1;
+
+  if( ( error = sfifo_init( &sound_fifo, NUM_FRAMES
+                                         * received.channels
+                                         * sound_framesiz + 1 ) ) ) {
     ui_error( UI_ERROR_ERROR, "Problem initialising sound fifo: %s",
               strerror ( error ) );
     return 1;
   }
 
-  SDL_PauseAudio( 0 );
+  /* wait to run sound until we have some sound to play */
+  audio_output_started = 0;
 
   return 0;
 }
@@ -177,6 +174,11 @@
     ui_error( UI_ERROR_ERROR, "Couldn't write sound fifo: %s\n",
               strerror( i ) );
   }
+
+  if( !audio_output_started ) {
+    SDL_PauseAudio( 0 );
+    audio_output_started = 1;
+  }
 }
 
 /* Write len samples from fifo into stream */
Modified: vendor/fuse/current/sound.c
===================================================================
--- vendor/fuse/current/sound.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
 /* sound.c: Sound support
    Copyright (c) 2000-2005 Russell Marks, Matan Ziv-Av, Philip Kendall
 
-   $Id: sound.c,v 1.49.2.1 2007/02/04 06:35:04 fredm Exp $
+   $Id: sound.c,v 1.49.2.2 2007/03/06 11:36:23 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
@@ -278,7 +278,12 @@
 if(sound_enabled)
   {
   if(sound_buf)
+    {
     free(sound_buf);
+    sound_buf=NULL;
+    free(tape_buf);
+    tape_buf=NULL;
+    }
   sound_lowlevel_end();
   sound_enabled=0;
   }
Modified: vendor/fuse/current/ui/gtk/gtkui.c
===================================================================
--- vendor/fuse/current/ui/gtk/gtkui.c	2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/ui/gtk/gtkui.c	2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
 /* gtkui.c: GTK+ routines for dealing with the user interface
    Copyright (c) 2000-2005 Philip Kendall, Russell Marks
 
-   $Id: gtkui.c,v 1.162 2007/02/02 16:21:59 pak21 Exp $
+   $Id: gtkui.c,v 1.162.2.1 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
@@ -187,11 +187,17 @@
 
   if( settings_current.aspect_hint ) {
     hints |= GDK_HINT_ASPECT;
-    geometry.min_aspect = geometry.max_aspect =
-      ((float)DISPLAY_ASPECT_WIDTH)/DISPLAY_SCREEN_HEIGHT;
+    if( settings_current.strict_aspect_hint ) {
+      geometry.min_aspect = geometry.max_aspect =
+	(float)DISPLAY_ASPECT_WIDTH / DISPLAY_SCREEN_HEIGHT;
+    } else {
+      geometry.min_aspect = 1.2;
+      geometry.max_aspect = 1.5;
+    }
   }
 
-  gtk_window_set_geometry_hints( GTK_WINDOW(gtkui_window), gtkui_drawing_area,
+  gtk_window_set_geometry_hints( GTK_WINDOW(gtkui_window),
+				 GTK_WIDGET(gtkui_drawing_area),
...
 
[truncated message content] | 
| 
      
      
      From: <fr...@us...> - 2007-04-09 02:18:47
       | 
| Revision: 343
          http://svn.sourceforge.net/fuse-for-macosx/?rev=343&view=rev
Author:   fredm
Date:     2007-04-08 19:18:45 -0700 (Sun, 08 Apr 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/compat/mkstemp.c
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/joystick.c
    vendor/fuse/current/machines/spec_se.c
    vendor/fuse/current/periph.c
    vendor/fuse/current/printer.c
Modified: vendor/fuse/current/compat/mkstemp.c
===================================================================
--- vendor/fuse/current/compat/mkstemp.c	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/compat/mkstemp.c	2007-04-09 02:18:45 UTC (rev 343)
@@ -95,7 +95,6 @@
       XXXXXX[5] = letters[v % 62];
 
       fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
-      break;
 
       if (fd >= 0)
 	{
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/hacking/ChangeLog	2007-04-09 02:18:45 UTC (rev 343)
@@ -1562,3 +1562,15 @@
 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).
+20070311 machines/spec_se.c: fix marking Dock and EXROM banks as writable in
+         the SE (Release-0_8_0-branch) (thanks, Andrew Owen) (Fred).
+20070317 compat/mkstemp.c: remove abberant break (thanks, Marek Januszewski)
+	 (Release-0_8_0-branch).
+20070321 periph.c: when stopping RZX playback due to overrun, ensure the
+	 change is picked up in z80_do_opcodes() (thanks, Julian Wiseman)
+	 (Release-0_8_0-branch).
+20070327 joystick.c: don't prompt for joystick config changes when loading a
+         snap during RZX playback (Release-0_8_0-branch)
+	 (thanks, Julian Wiseman) (Fred).
+20070404 printer.c: don't buffer output so text is available as it is
+         printed (Release-0_8_0-branch) (Fred).
Modified: vendor/fuse/current/joystick.c
===================================================================
--- vendor/fuse/current/joystick.c	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/joystick.c	2007-04-09 02:18:45 UTC (rev 343)
@@ -2,7 +2,7 @@
    Copyright (c) 2001-2004 Russell Marks, Philip Kendall
    Copyright (c) 2003 Darren Salt
 
-   $Id: joystick.c,v 1.25 2007/02/02 16:21:51 pak21 Exp $
+   $Id: joystick.c,v 1.25.2.1 2007/03/27 11:32:23 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
@@ -32,6 +32,7 @@
 #include "joystick.h"
 #include "keyboard.h"
 #include "periph.h"
+#include "rzx.h"
 #include "settings.h"
 #include "spectrum.h"
 #include "machine.h"
@@ -217,7 +218,8 @@
 
     if( settings_current.joystick_keyboard_output != fuse_type &&
         settings_current.joystick_1_output != fuse_type &&
-        settings_current.joystick_2_output != fuse_type ) {
+        settings_current.joystick_2_output != fuse_type &&
+        !rzx_playback ) {
       switch( ui_confirm_joystick( libspectrum_snap_joystick_list(snap,i),
                                    libspectrum_snap_joystick_inputs(snap,i)) ) {
       case UI_CONFIRM_JOYSTICK_KEYBOARD:
Modified: vendor/fuse/current/machines/spec_se.c
===================================================================
--- vendor/fuse/current/machines/spec_se.c	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/machines/spec_se.c	2007-04-09 02:18:45 UTC (rev 343)
@@ -5,7 +5,7 @@
    Copyright (c) 1999-2002 Philip Kendall
    Copyright (c) 2002-2003 Fredrick Meunier
 
-   $Id: spec_se.c,v 1.15 2007/02/02 16:21:54 pak21 Exp $
+   $Id: spec_se.c,v 1.15.2.1 2007/03/11 01:06:42 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
@@ -202,6 +202,10 @@
   periph_setup_interface2( PERIPH_PRESENT_OPTIONAL );
   periph_update();
 
+  /* Mark as present/writeable */
+  for( i = 0; i < 34; ++i )
+    memory_map_ram[i].writable = 1;
+
   for( i = 0; i < 8; i++ ) {
 
     timex_dock[i] = memory_map_ram[ i + 18 ];
@@ -230,10 +234,6 @@
   memset( memory_map_home[4]->page, 0, MEMORY_PAGE_SIZE );
   memset( memory_map_home[5]->page, 0, MEMORY_PAGE_SIZE );
 
-  /* Mark as present/writeable */
-  for( i = 0; i < 34; ++i )
-    memory_map_ram[i].writable = 1;
-
   /* RAM pages 1, 3, 5 and 7 contended */
   for( i = 0; i < 8; i++ ) 
     memory_map_ram[ 2 * i ].contended =
Modified: vendor/fuse/current/periph.c
===================================================================
--- vendor/fuse/current/periph.c	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/periph.c	2007-04-09 02:18:45 UTC (rev 343)
@@ -1,7 +1,7 @@
 /* periph.c: code for handling peripherals
-   Copyright (c) 2005 Philip Kendall
+   Copyright (c) 2005-2007 Philip Kendall
 
-   $Id: periph.c,v 1.20 2007/02/02 16:21:51 pak21 Exp $
+   $Id: periph.c,v 1.20.2.1 2007/03/21 16:21:54 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
@@ -29,6 +29,7 @@
 
 #include "debugger/debugger.h"
 #include "divide.h"
+#include "event.h"
 #include "if1.h"
 #include "if2.h"
 #include "joystick.h"
@@ -191,8 +192,15 @@
     libspectrum_byte value;
 
     error = libspectrum_rzx_playback( rzx, &value );
-    if( error ) { rzx_stop_playback( 1 ); return readport_internal( port ); }
+    if( error ) {
+      rzx_stop_playback( 1 );
 
+      /* Add a null event to mean we pick up the RZX state change in
+	 z80_do_opcodes() */
+      event_add( tstates, EVENT_TYPE_NULL );
+      return readport_internal( port );
+    }
+
     return value;
   }
 
Modified: vendor/fuse/current/printer.c
===================================================================
--- vendor/fuse/current/printer.c	2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/printer.c	2007-04-09 02:18:45 UTC (rev 343)
@@ -1,7 +1,7 @@
 /* printer.c: Printer support
    Copyright (c) 2001-2004 Ian Collier, Russell Marks, Philip Kendall
 
-   $Id: printer.c,v 1.20 2007/02/02 16:21:51 pak21 Exp $
+   $Id: printer.c,v 1.20.2.1 2007/04/04 10:48: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
@@ -182,6 +182,9 @@
   return(0);
   }
 
+/* ensure users have immediate access to text file contents */
+setbuf( printer_text_file, NULL );
+
 return(1);
 }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fr...@us...> - 2007-04-11 12:04:21
       | 
| Revision: 350
          http://svn.sourceforge.net/fuse-for-macosx/?rev=350&view=rev
Author:   fredm
Date:     2007-04-11 04:52:28 -0700 (Wed, 11 Apr 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/ChangeLog
    vendor/fuse/current/README
    vendor/fuse/current/configure.in
    vendor/fuse/current/fuse.c
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/hacking/cvs-tags
    vendor/fuse/current/man/fuse.1
    vendor/fuse/current/rzx.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/ChangeLog	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,4 +1,4 @@
-2007-??-??  Philip Kendall  <phi...@sh...>
+2007-04-11  Philip Kendall  <phi...@sh...>
 
 	* Fuse 0.8.0 released
 
@@ -81,6 +81,11 @@
 	  Szasz, Paul van der Laan and other people to whom I apologise
 	  for forgetting).
 
+	* On a personal note, I (Philip) would like to dedicate the 0.8
+	  release of Fuse to the memory of Chris "Oggie" Lightfoot. I
+	  don't know whether he would have loved or hated some of the code
+	  in Fuse, but I'm sure he would have expressed his opinion.
+
 2004-07-16  Philip Kendall  <pak...@sr...>
 
 	* Fuse 0.7.0 released.
@@ -783,4 +788,4 @@
 
 	* Version 0.1.0 released.
 
-$Id: ChangeLog,v 1.46 2007/02/02 16:21:50 pak21 Exp $
+$Id: ChangeLog,v 1.46.2.1 2007/04/09 16:59:02 pak21 Exp $
Modified: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/README	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,4 +1,4 @@
-The Free Unix Spectrum Emulator (Fuse) 0.7.0
+The Free Unix Spectrum Emulator (Fuse) 0.8.0
 ============================================
 
 Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
@@ -10,9 +10,10 @@
 
 What Fuse does have:
 
-* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048/TC2068,
-  Pentagon 128 and Scorpion ZS 256 emulation, running at true Speccy
-  speed on any computer you're likely to try it on.
+* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048,
+  TC2068 and TS2068, Pentagon 128 and Scorpion ZS 256 emulation,
+  running at true Speccy speed on any computer you're likely to try it
+  on.
 * Support for loading from .tzx files.
 * Sound (on systems supporting the Open Sound System, SDL, or OpenBSD/
   Solaris's /dev/audio).
@@ -20,8 +21,9 @@
   (including Kempston, Sinclair and Cursor joysticks).
 * Emulation of some of the printers you could attach to a Spectrum.
 * Support for the RZX input recording file format, including
-  'competition mode'.
-* Emulation of the Spectrum +3e, ZXATASP and ZXCF IDE interfaces.
+  rollback and 'competition mode'.
+* Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e,
+  ZXATASP and ZXCF interfaces.
 
 What you'll need to run Fuse
 ----------------------------
@@ -30,8 +32,8 @@
 
 Required:
 
-* X, SDL, svgalib, framebuffer support. If you have GTK+, you'll get a
-  (much) nicer user interface under X.
+* X, SDL, svgalib or framebuffer support. If you have GTK+, you'll get
+  a (much) nicer user interface under X.
 * libspectrum: this is available from
   http://fuse-emulator.sourceforge.net/libspectrum.php
 
@@ -137,6 +139,6 @@
 ( http://www.worldofspectrum.org/faq/index.html ) first!
 
 Philip Kendall <phi...@sh...>
-16 July 2004
+11 April 2007
 
-$Id: README,v 1.40 2007/02/02 16:21:50 pak21 Exp $
+$Id: README,v 1.40.2.2 2007/04/11 08:44:19 pak21 Exp $
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/configure.in	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155.2.1 2007/03/03 21:26:14 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.2 2007/04/09 16:59:02 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.7.0)
+AM_INIT_AUTOMAKE(fuse, 0.8.0)
 
 dnl Checks for programs.
 AC_PROG_CC
Modified: vendor/fuse/current/fuse.c
===================================================================
--- vendor/fuse/current/fuse.c	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/fuse.c	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,7 +1,7 @@
 /* fuse.c: The Free Unix Spectrum Emulator
-   Copyright (c) 1999-2005 Philip Kendall
+   Copyright (c) 1999-2007 Philip Kendall
 
-   $Id: fuse.c,v 1.133.2.1 2007/02/17 17:12:29 pak21 Exp $
+   $Id: fuse.c,v 1.133.2.3 2007/04/11 09:39:32 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
@@ -305,9 +305,7 @@
 
   error = libspectrum_creator_alloc( &fuse_creator ); if( error ) return error;
 
-  error = libspectrum_creator_set_program(
-    fuse_creator, (const libspectrum_byte*)"Fuse"
-  );
+  error = libspectrum_creator_set_program( fuse_creator, "Fuse" );
   if( error ) { libspectrum_creator_free( fuse_creator ); return error; }
 
   error = libspectrum_creator_set_major( fuse_creator,
@@ -367,7 +365,7 @@
   printf( "\n" );
   fuse_show_version();
   printf(
-   "Copyright (c) 1999-2005 Philip Kendall <phi...@sh...>\n"
+   "Copyright (c) 1999-2007 Philip Kendall <phi...@sh...>\n"
    "and others; see the file 'AUTHORS' for more details.\n"
    "\n"
    "This program is distributed in the hope that it will be useful,\n"
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/hacking/ChangeLog	2007-04-11 11:52:28 UTC (rev 350)
@@ -1574,3 +1574,12 @@
 	 (thanks, Julian Wiseman) (Fred).
 20070404 printer.c: don't buffer output so text is available as it is
          printed (Release-0_8_0-branch) (Fred).
+20070409 ChangeLog,README,configure.in,man/fuse.1: updates for 0.8 release
+	 (Release-0_8_0-branch).
+20070409 rzx.c: change over to the 'release' DSA key (Release-0_8_0-branch).
+20070409 fuse.c: remove warning (Release-0_8_0-branch).
+20070410 rzx.c: don't allow use of rollback commands during playback (thanks,
+	 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).
Modified: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/hacking/cvs-tags	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,6 +1,6 @@
 CVS tags for Fuse
 
-$Id: cvs-tags,v 1.32.2.1 2007/03/03 21:49:10 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.2 2007/04/11 09:41:31 pak21 Exp $
 
 | Release-0_3_1
 | Release-0_3_2pre1
@@ -146,6 +146,7 @@
 +-\
 | | Release-0_8_0-pre1
 | | Release-0_8_0-pre2
+| | Release-0_8_0
 | |
 | | Release-0_8_0-branch
 |
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/man/fuse.1	2007-04-11 11:52:28 UTC (rev 350)
@@ -23,7 +23,7 @@
 .\" E-mail: phi...@sh...
 .\"
 .\"
-.TH fuse 1 "16th July, 2004" "Version 0.7.0" "Emulators"
+.TH fuse 1 "11th April, 2007" "Version 0.8.0" "Emulators"
 .\"
 .\"------------------------------------------------------------------
 .\"
Modified: vendor/fuse/current/rzx.c
===================================================================
--- vendor/fuse/current/rzx.c	2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/rzx.c	2007-04-11 11:52:28 UTC (rev 350)
@@ -1,7 +1,7 @@
 /* rzx.c: .rzx files
    Copyright (c) 2002-2003 Philip Kendall
 
-   $Id: rzx.c,v 1.70.2.3 2007/02/09 08:21:33 pak21 Exp $
+   $Id: rzx.c,v 1.70.2.5 2007/04/10 08:29:51 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
@@ -79,11 +79,11 @@
 
 /* Fuse's DSA key */
 libspectrum_rzx_dsa_key rzx_key = {
-  "9E140C4CEA9CA011AA8AD17443CB5DC18DC634908474992D38AB7D4A27038CBB209420BA2CAB8508CED35ADF8CBD31A0A034FC082A168A0E190FFC4CCD21706F", /* p */
-  "C52E9CA1804BD021FFAD30E8FB89A94437C2E4CB",	       /* q */
-  "90E56D9493DE80E1A35F922007357888A1A47805FD365AD27BC5F184601EBC74E44F576AA4BF8C5244D202BBAE697C4F9132DFB7AD0A56892A414C96756BD21A", /* g */
-  "7810A35AC94EA5750934FB9C922351EE597C71E2B83913C121C6655EA25CE7CBE2C259FA3168F8475B2510AA29C5FEB50ACAB25F34366C2FFC93B3870A522232", /* y */
-  "9A4E53CC249750C3194A38A3BE3EDEED28B171A9"	       /* x */
+  "A9E3BD74E136A9ABD41E614383BB1B01EB24B2CD7B920ED6A62F786A879AC8B00F2FF318BF96F81654214B1A064889FF6D8078858ED00CF61D2047B2AAB7888949F35D166A2BBAAE23A331BD4728A736E76901D74B195B68C4A2BBFB9F005E3655BDE8256C279A626E00C7087A2D575F78D7DC5CA6E392A535FFE47A816BA503", /* p */
+  "FE8D540EED2CAE1983690E2886259F8956FB5A19",	       /* q */
+  "9680ABFFB98EF2021945ADDF86C21D6EE3F7C8777FB0A0220AB59E9DFA3A3338611B32CFD1F22F8F26547858754ED93BFBDD87DC13C09F42B42A36B2024467D98EB754DEB2847FCA7FC60C81A99CF95133847EA38AD9D037AFE9DD189E9F0EE47624848CEE840D7E3724A39681E71B97ECF777383DC52A48C0A2C93BADA93F4C", /* g */
+  "46605F0514D56BC0B4207A350367A5038DBDD4DD62B7C997D26D0ADC5BE42D01F852C199E34553BCBCE5955FF80E3B402B55316606D7E39C0F500AE5EE41A7B7A4DCE78EC19072C21FCC7BA48DFDC830C17B72BCAA2B2D70D9DFC0AAD9B7E73F7AEB6241E54D55C33E41AB749CAAFBE7AB00F2D74C500E5F5DD63BD299C65778", /* y */
+  "948744AA7A1D1BE9EE65150B0A95A678B4181F0E"	       /* x */
 };
 
 /* By how much is the speed allowed to deviate from 100% whilst recording
@@ -288,7 +288,7 @@
   counter_reset();
 
   ui_menu_activate( UI_MENU_ITEM_RECORDING, 1 );
-  ui_menu_activate( UI_MENU_ITEM_RECORDING_ROLLBACK, 1 );
+  ui_menu_activate( UI_MENU_ITEM_RECORDING_ROLLBACK, 0 );
 
   return 0;
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fr...@us...> - 2007-05-12 00:13:59
       | 
| Revision: 364
          http://svn.sourceforge.net/fuse-for-macosx/?rev=364&view=rev
Author:   fredm
Date:     2007-05-11 17:13:58 -0700 (Fri, 11 May 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
    vendor/fuse/current/ChangeLog
    vendor/fuse/current/README
    vendor/fuse/current/acinclude.m4
    vendor/fuse/current/configure.in
    vendor/fuse/current/hacking/ChangeLog
    vendor/fuse/current/hacking/cvs-tags
    vendor/fuse/current/hacking/ui.txt
    vendor/fuse/current/lib/Makefile.am
    vendor/fuse/current/machines/pentagon.c
    vendor/fuse/current/machines/scorpion.c
    vendor/fuse/current/machines/spec128.c
    vendor/fuse/current/machines/spec16.c
    vendor/fuse/current/machines/spec48.c
    vendor/fuse/current/man/fuse.1
    vendor/fuse/current/periph.c
    vendor/fuse/current/screenshot.c
    vendor/fuse/current/snapshot.c
    vendor/fuse/current/spectrum.c
    vendor/fuse/current/spectrum.h
    vendor/fuse/current/ui/fb/fbdisplay.c
    vendor/fuse/current/ui/ggi/ggidisplay.c
    vendor/fuse/current/ui/gtk/gtkdisplay.c
    vendor/fuse/current/ui/scaler/scaler.c
    vendor/fuse/current/ui/scaler/scalers.c
    vendor/fuse/current/ui/sdl/sdldisplay.c
    vendor/fuse/current/ui/svga/svgadisplay.c
    vendor/fuse/current/ui/uidisplay.h
    vendor/fuse/current/ui/win32/win32display.c
    vendor/fuse/current/ui/xlib/xdisplay.c
    vendor/fuse/current/uidisplay.c
    vendor/fuse/current/ula.c
    vendor/fuse/current/ula.h
    vendor/fuse/current/widget/Makefile.am
    vendor/fuse/current/widget/menu.c
    vendor/fuse/current/widget/pokefinder.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ChangeLog	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/README	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/acinclude.m4
===================================================================
--- vendor/fuse/current/acinclude.m4	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/acinclude.m4	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/configure.in	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/ChangeLog	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/cvs-tags	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/hacking/ui.txt
===================================================================
--- vendor/fuse/current/hacking/ui.txt	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/ui.txt	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/lib/Makefile.am
===================================================================
--- vendor/fuse/current/lib/Makefile.am	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/lib/Makefile.am	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/machines/pentagon.c
===================================================================
--- vendor/fuse/current/machines/pentagon.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/pentagon.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/machines/scorpion.c
===================================================================
--- vendor/fuse/current/machines/scorpion.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/scorpion.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/machines/spec128.c
===================================================================
--- vendor/fuse/current/machines/spec128.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec128.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/machines/spec16.c
===================================================================
--- vendor/fuse/current/machines/spec16.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec16.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/machines/spec48.c
===================================================================
--- vendor/fuse/current/machines/spec48.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec48.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/man/fuse.1	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/periph.c
===================================================================
--- vendor/fuse/current/periph.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/periph.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/screenshot.c
===================================================================
--- vendor/fuse/current/screenshot.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/screenshot.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/snapshot.c
===================================================================
--- vendor/fuse/current/snapshot.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/snapshot.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/spectrum.c
===================================================================
--- vendor/fuse/current/spectrum.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/spectrum.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/spectrum.h
===================================================================
--- vendor/fuse/current/spectrum.h	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/spectrum.h	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/ui/fb/fbdisplay.c
===================================================================
--- vendor/fuse/current/ui/fb/fbdisplay.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/fb/fbdisplay.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/ui/ggi/ggidisplay.c
===================================================================
--- vendor/fuse/current/ui/ggi/ggidisplay.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/ggi/ggidisplay.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -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: vendor/fuse/current/ui/gtk/gtkdisplay.c
===================================================================
--- vendor/fuse/current/ui/gtk/gtkdisplay.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/gtk/gtkdisplay.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
 /* gtkdisplay.c: GTK+ routines for dealing with the Speccy screen
    Copyright (c) 2000-2005 Philip Kendall
 
-   $Id: gtkdisplay.c,v 1.59 2007/02/02 16:21:59 pak21 Exp $
+   $Id: gtkdisplay.c,v 1.59.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
@@ -332,7 +332,7 @@
 			 scaled_pitch );
 }
 
-void
+int
 uidisplay_hotswap_gfx_mode( void )
 {
   fuse_emulation_pause();
@@ -341,6 +341,8 @@
   display_refresh_all();
 
   fuse_emulation_unpause();
+
+  return 0;
 }
 
 int
Modified: vendor/fuse/current/ui/scaler/scaler.c
===================================================================
--- vendor/fuse/current/ui/scaler/scaler.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/scaler/scaler.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
 /* scaler.c: code for selecting (etc) scalers
  * Copyright (C) 2003 Fredrick Meunier, Philip Kendall
  * 
- * $Id: scaler.c,v 1.28 2007/01/28 11:27:13 fredm Exp $
+ * $Id: scaler.c,v 1.28.2.1 2007/04/28 00:23:08 fredm Exp $
  *
  * Originally taken from ScummVM - Scumm Interpreter
  * Copyright (C) 2001  Ludvig Strigeus
@@ -136,9 +136,7 @@
   scaler_flags = scaler_get_flags( current_scaler );
   scaler_expander = scaler_get_expander( current_scaler );
 
-  uidisplay_hotswap_gfx_mode();
-
-  return 0;
+  return uidisplay_hotswap_gfx_mode();
 }
 
 int
Modified: vendor/fuse/current/ui/scaler/scalers.c
===================================================================
--- vendor/fuse/current/ui/scaler/scalers.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/scaler/scalers.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
 /* scalers.c: the actual graphics scalers
  * Copyright (C) 2003 Fredrick Meunier, Philip Kendall
  *
- * $Id: scalers.c,v 1.37 2007/01/29 09:21:18 fredm Exp $
+ * $Id: scalers.c,v 1.37.2.1 2007/05/01 13:26:26 fredm Exp $
  * 
  * Originally taken from ScummVM - Scumm Interpreter
  * Copyright (C) 2001  Ludvig Strigeus
@@ -35,6 +35,14 @@
 #include "ui/ui.h"
 #include "ui/uidisplay.h"
 
+#ifndef MIN
+#define MIN(a,b)    (((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef ABS
+#define ABS(a)     ((x)>=0?(x):-(x))
+#endif
+
 /* The actual code for the scalers starts here */
 
 #if SCALER_DATA_SIZE == 2
Modified: vendor/fuse/current/ui/sdl/sdldisplay.c
===================================================================
--- vendor/fuse/current/ui/sdl/sdldisplay.c	2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/sdl/sdldisplay.c	2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
 /* sdldisplay.c: Routines for dealing with the SDL display
    Copyright (c) 2000-2006 Philip Kendall, Matan Ziv-Av, Fredrick Meunier
 
-   $Id: sdldisplay.c,v 1.43 2007/02/02 16:21:59 pak21 Exp $
+   $Id: sdldisplay.c,v 1.43.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
@@ -89,7 +89,7 @@
 static int num_rects = 0;
 static libspectrum_byte sdldisplay_force_full_refresh = 1;
 
-static int min_fullscreen_width;
+static int max_fullscreen_height;
 static int min_fullscreen_height;
 
 /* The current size of the display (in units of DISPLAY_SCREEN_*) */
@@ -225,12 +225,14 @@
      at all */
   if( modes == (SDL_Rect **) 0 || modes == (SDL_Rect **) -1 ){
     /* Just try whatever we have and see what happens */
-    min_fullscreen_width = 320;
+    max_fullscreen_height = 480;
     min_fullscreen_height = 240;
   } else {
+    /* Record the largest supported fullscreen software mode */
+    max_fullscreen_height = modes[0]->h;
+
     /* Record the smallest supported fullscreen software mode */
     for( i=0; modes[i]; ++i ) {
-      min_fullscreen_width = modes[i]->w;
       min_fullscreen_height = modes[i]->h;
     }
   }
@@ -245,7 +247,7 @@
   if ( scaler_select_scaler( current_scaler ) )
     scaler_select_scaler( SCALER_NORMAL );
 
-  sdldisplay_load_gfx_mode();
+  if( sdldisplay_load_gfx_mode() ) return 1;
 
   SDL_WM_SetCaption( "Fuse", "Fuse" );
 
@@ -293,15 +295,17 @@
   if( settings_current.full_screen ) {
     int i = 0;
     while( i < SCALER_NUM &&
-           image_height * sdldisplay_current_size <= min_fullscreen_height/2 ) {
+           ( image_height*sdldisplay_current_size <= min_fullscreen_height/2 ||
+             image_height*sdldisplay_current_size > max_fullscreen_height ) ) {
       if( windowed_scaler == -1) windowed_scaler = current_scaler;
       while( !scaler_is_supported(i) ) i++;
       scaler_select_scaler( i++ );
       sdldisplay_current_size = scaler_get_scaling_factor( current_scaler );
-      /* if we failed to find a suitable size scaler, just use what the user had
-         originally */
-      if( image_height * sdldisplay_current_size <= min_fullscreen_height/2 ) {
-        scaler_select_scaler( windowed_scaler );
+      /* if we failed to find a suitable size scaler, just use normal (what the
+         user had originally may be too big) */
+      if( image_height * sdldisplay_current_size <= min_fullscreen_height/2 ||
+          image_height * sdldisplay_current_size > max_fullscreen_height ) {
+        scaler_select_scaler( SCALER_NORMAL );
         sdldisplay_current_size = scaler_get_scaling_factor( current_scaler );
       }
     }
@@ -337,8 +341,8 @@
                                  : SDL_SWSURFACE
   );
   if( !sdldisplay_gc ) {
-    fprintf( stderr, "%s: couldn't create gc\n", fuse_progname );
-    return 1;
+    fprintf( stderr, "%s: couldn't create SDL graphics context\n", fuse_progname );
+    fuse_abort();
   }
 
   sdldisplay_is_full_screen =
@@ -365,7 +369,7 @@
 
   if( !tmp_screen ) {
     fprintf( stderr, "%s:...
 
[truncated message content] | 
| 
      
      
      From: <fr...@us...> - 2008-02-13 21:18:32
       | 
| Revision: 473
          http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=473&view=rev
Author:   fredm
Date:     2008-02-13 13:18:36 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
To prepare to load . into vendor/fuse/current, perform 3 renames.
* vendor/fuse/current/timer/timer.h: Renamed from
  vendor/fuse/current/trdos.h.
* vendor/fuse/current/timer/timer.c: Renamed from
  vendor/fuse/current/timer.c.
* vendor/fuse/current/disk/wd_fdc.c: Renamed from
  vendor/fuse/current/timer.h.
Added Paths:
-----------
    vendor/fuse/current/disk/
    vendor/fuse/current/disk/wd_fdc.c
    vendor/fuse/current/timer/
    vendor/fuse/current/timer/timer.c
    vendor/fuse/current/timer/timer.h
Removed Paths:
-------------
    vendor/fuse/current/timer.c
    vendor/fuse/current/timer.h
    vendor/fuse/current/trdos.h
Copied: vendor/fuse/current/disk/wd_fdc.c (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/disk/wd_fdc.c	                        (rev 0)
+++ vendor/fuse/current/disk/wd_fdc.c	2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+   Copyright (c) 1999-2004 Philip Kendall
+
+   $Id: timer.h,v 1.16 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32)		/* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else				/* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif				/* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif			/* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/timer/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer/timer.c	                        (rev 0)
+++ vendor/fuse/current/timer/timer.c	2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+   Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+   $Id: timer.c,v 1.39 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+  timer_type current_time;
+  float difference;
+  int error;
+
+  if( frames_until_update-- ) return 0;
+
+  error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+  if( samples < 10 ) {
+
+    /* If we don't have enough data, assume we're running at the desired
+       speed :-) */
+    current_speed = settings_current.emulation_speed;
+
+  } else {
+
+    difference =
+      timer_get_time_difference( ¤t_time,
+				 &stored_times[ next_stored_time ] );
+    current_speed = 100 * ( 10.0 / difference );
+
+  }
+
+  ui_statusbar_update_speed( current_speed );
+
+  stored_times[ next_stored_time ] = current_time;
+
+  next_stored_time = ( next_stored_time + 1 ) % 10;
+  frames_until_update = 
+    ( machine_current->timings.processor_speed /
+    machine_current->timings.tstates_per_frame ) - 1;
+
+  samples++;
+
+  return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  *real_time = SDL_GetTicks();
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  SDL_Delay( ms );
+}
+
+#elif defined(WIN32)            /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  *real_time = GetTickCount();
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  Sleep( ms );
+}
+
+#else                           /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  int error;
+
+  error = gettimeofday( real_time, NULL );
+  if( error ) {
+    ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+    return 1;
+  }
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  a->tv_usec += msec * 1000;
+  if( a->tv_usec >= 1000000 ) {
+    a->tv_usec -= 1000000;
+    a->tv_sec += 1;
+  } else if( a->tv_usec < 0 ) {
+    a->tv_usec += 1000000;
+    a->tv_sec -= 1;
+  }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  usleep( ms * 1000 );
+}
+
+#endif            /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+  int error = timer_get_real_time( &start_time ); if( error ) return error;
+  samples = 0;
+  next_stored_time = 0;
+  frames_until_update = 0;
+
+  return 0;
+}
+
+int
+timer_init( void )
+{
+  int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+  error = event_add( 0, EVENT_TYPE_TIMER );
+  if( error ) return error;
+
+  return 0;
+}
+
+int
+timer_end( void )
+{
+  return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+  for(;;) {
+
+    /* Sleep while fifo is full */
+    if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+      timer_sleep_ms( TEN_MS );
+    } else {
+      break;
+    }
+
+  }
+
+  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+                 EVENT_TYPE_TIMER ) )
+    return 1;
+
+  return 0;
+}
+
+#else                           /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+                 EVENT_TYPE_TIMER ) )
+    return 1;
+
+  return 0;
+}
+  
+#endif                          /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+  int error;
+  timer_type current_time;
+  float difference;
+  float speed = ( settings_current.emulation_speed < 1 ?
+		  100                                  :
+		  settings_current.emulation_speed ) / 100.0;
+  long tstates;
+
+  if( sound_enabled )
+    return timer_frame_callback_sound( last_tstates );
+
+  /* If we're fastloading, just schedule another check in a frame's time
+     and do nothing else */
+  if( settings_current.fastload && tape_is_playing() ) {
+
+    libspectrum_dword next_check_time =
+      last_tstates + machine_current->timings.tstates_per_frame;
+
+    if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+      return 1;
+
+  } else {
+
+    while( 1 ) {
+
+      error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+      
+      difference = timer_get_time_difference( ¤t_time, &start_time );
+
+      /* Sleep while we are still 10ms ahead */
+      if( difference < 0 ) {
+	timer_sleep_ms( TEN_MS );
+      } else {
+	break;
+      }
+
+    }
+
+    error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+    
+    difference = timer_get_time_difference( ¤t_time, &start_time );
+  
+    tstates = ( ( difference + TEN_MS / 1000.0 ) *
+		machine_current->timings.processor_speed
+		) * speed + 0.5;
+  
+    if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+    start_time = current_time;
+    timer_add_time_difference( &start_time, TEN_MS );
+
+  }
+
+  return 0;
+}
Copied: vendor/fuse/current/timer/timer.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/timer/timer.h	                        (rev 0)
+++ vendor/fuse/current/timer/timer.h	2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+   Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+   $Id: trdos.h,v 1.14 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+     Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available;	/* Is TRDOS available for use? */
+extern int trdos_active;     /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+  TRDOS_DRIVE_A = 0,
+  TRDOS_DRIVE_B,
+  TRDOS_DRIVE_C,
+  TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+                       int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+                                        const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif                  /* #ifndef FUSE_TRDOS_H */
Deleted: vendor/fuse/current/timer.c
===================================================================
--- vendor/fuse/current/timer.c	2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.c	2008-02-13 21:18:36 UTC (rev 473)
@@ -1,330 +0,0 @@
-/* timer.c: Speed routines for Fuse
-   Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
-
-   $Id: timer.c,v 1.39 2007/02/02 16:21:52 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
-   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
-
-   Author contact information:
-
-   E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "fuse.h"
-#include "event.h"
-#include "settings.h"
-#include "sound.h"
-#include "tape.h"
-#include "timer.h"
-#include "ui/ui.h"
-#include "ula.h"
-
-/*
- * Routines for estimating emulation speed
- */
-
-/* The actual time at the end of each of the last 10 emulated seconds */
-static timer_type stored_times[10];
-
-/* Which is the next entry in 'stored_times' that we will update */
-static size_t next_stored_time;
-
-/* The number of frames until we next update 'stored_times' */
-static int frames_until_update;
-
-/* The number of time samples we have for estimating speed */
-static int samples;
-
-float current_speed = 100.0;
-
-static timer_type start_time;
-
-static const int TEN_MS = 10;
-
-int
-timer_estimate_speed( void )
-{
-  timer_type current_time;
-  float difference;
-  int error;
-
-  if( frames_until_update-- ) return 0;
-
-  error = timer_get_real_time( ¤t_time ); if( error ) return error;
-
-  if( samples < 10 ) {
-
-    /* If we don't have enough data, assume we're running at the desired
-       speed :-) */
-    current_speed = settings_current.emulation_speed;
-
-  } else {
-
-    difference =
-      timer_get_time_difference( ¤t_time,
-				 &stored_times[ next_stored_time ] );
-    current_speed = 100 * ( 10.0 / difference );
-
-  }
-
-  ui_statusbar_update_speed( current_speed );
-
-  stored_times[ next_stored_time ] = current_time;
-
-  next_stored_time = ( next_stored_time + 1 ) % 10;
-  frames_until_update = 
-    ( machine_current->timings.processor_speed /
-    machine_current->timings.tstates_per_frame ) - 1;
-
-  samples++;
-
-  return 0;
-}
-
-#ifdef UI_SDL
-
-int
-timer_get_real_time( timer_type *real_time )
-{
-  *real_time = SDL_GetTicks();
-
-  return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
-  return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
-  *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
-  SDL_Delay( ms );
-}
-
-#elif defined(WIN32)            /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
-  *real_time = GetTickCount();
-
-  return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
-  return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
-  *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
-  Sleep( ms );
-}
-
-#else                           /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
-  int error;
-
-  error = gettimeofday( real_time, NULL );
-  if( error ) {
-    ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
-    return 1;
-  }
-
-  return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
-  return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
-  a->tv_usec += msec * 1000;
-  if( a->tv_usec >= 1000000 ) {
-    a->tv_usec -= 1000000;
-    a->tv_sec += 1;
-  } else if( a->tv_usec < 0 ) {
-    a->tv_usec += 1000000;
-    a->tv_sec -= 1;
-  }
-}
-
-void
-timer_sleep_ms( int ms )
-{
-  usleep( ms * 1000 );
-}
-
-#endif            /* #ifdef UI_SDL */
-
-int
-timer_estimate_reset( void )
-{
-  int error = timer_get_real_time( &start_time ); if( error ) return error;
-  samples = 0;
-  next_stored_time = 0;
-  frames_until_update = 0;
-
-  return 0;
-}
-
-int
-timer_init( void )
-{
-  int error = timer_get_real_time( &start_time ); if( error ) return error;
-
-  error = event_add( 0, EVENT_TYPE_TIMER );
-  if( error ) return error;
-
-  return 0;
-}
-
-int
-timer_end( void )
-{
-  return event_remove_type( EVENT_TYPE_TIMER );
-}
-
-#if defined UI_SDL || defined USE_COREAUDIO
-
-/* Callback-style sound based timer */
-#include "sound/sfifo.h"
-
-extern sfifo_t sound_fifo;
-
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
-  for(;;) {
-
-    /* Sleep while fifo is full */
-    if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
-      timer_sleep_ms( TEN_MS );
-    } else {
-      break;
-    }
-
-  }
-
-  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
-                 EVENT_TYPE_TIMER ) )
-    return 1;
-
-  return 0;
-}
-
-#else                           /* #ifdef UI_SDL */
-
-/* Blocking socket-style sound based timer */
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
-  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
-                 EVENT_TYPE_TIMER ) )
-    return 1;
-
-  return 0;
-}
-  
-#endif                          /* #ifdef UI_SDL */
-
-int
-timer_frame( libspectrum_dword last_tstates )
-{
-  int error;
-  timer_type current_time;
-  float difference;
-  float speed = ( settings_current.emulation_speed < 1 ?
-		  100                                  :
-		  settings_current.emulation_speed ) / 100.0;
-  long tstates;
-
-  if( sound_enabled )
-    return timer_frame_callback_sound( last_tstates );
-
-  /* If we're fastloading, just schedule another check in a frame's time
-     and do nothing else */
-  if( settings_current.fastload && tape_is_playing() ) {
-
-    libspectrum_dword next_check_time =
-      last_tstates + machine_current->timings.tstates_per_frame;
-
-    if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
-      return 1;
-
-  } else {
-
-    while( 1 ) {
-
-      error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-      
-      difference = timer_get_time_difference( ¤t_time, &start_time );
-
-      /* Sleep while we are still 10ms ahead */
-      if( difference < 0 ) {
-	timer_sleep_ms( TEN_MS );
-      } else {
-	break;
-      }
-
-    }
-
-    error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-    
-    difference = timer_get_time_difference( ¤t_time, &start_time );
-  
-    tstates = ( ( difference + TEN_MS / 1000.0 ) *
-		machine_current->timings.processor_speed
-		) * speed + 0.5;
-  
-    if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
-
-    start_time = current_time;
-    timer_add_time_difference( &start_time, TEN_MS );
-
-  }
-
-  return 0;
-}
Deleted: vendor/fuse/current/timer.h
===================================================================
--- vendor/fuse/current/timer.h	2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.h	2008-02-13 21:18:36 UTC (rev 473)
@@ -1,62 +0,0 @@
-/* timer.h: Speed routines for Fuse
-   Copyright (c) 1999-2004 Philip Kendall
-
-   $Id: timer.h,v 1.16 2007/02/02 16:21:52 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
-   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
-
-   Author contact information:
-
-   E-mail: phi...@sh...
-
-*/
-
-#ifndef FUSE_TIMER_H
-#define FUSE_TIMER_H
-
-#ifdef UI_SDL
-
-#include "SDL.h"
-
-typedef Uint32 timer_type;
-
-#elif defined(WIN32)		/* #ifdef UI_SDL */
-
-#include <windows.h>
-
-typedef DWORD timer_type;
-
-#else				/* #ifdef UI_SDL */
-
-#include <sys/time.h>
-#include <time.h>
-
-typedef struct timeval timer_type;
-
-#endif				/* #ifdef UI_SDL */
-
-int timer_estimate_reset( void );
-int timer_estimate_speed( void );
-int timer_get_real_time( timer_type *real_time );
-float timer_get_time_difference( timer_type *a, timer_type *b );
-
-int timer_init(void);
-void timer_sleep_ms( int ms );
-int timer_frame( libspectrum_dword last_tstates );
-int timer_end(void);
-
-extern float current_speed;
-
-#endif			/* #ifndef FUSE_TIMER_H */
Deleted: vendor/fuse/current/trdos.h
===================================================================
--- vendor/fuse/current/trdos.h	2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/trdos.h	2008-02-13 21:18:36 UTC (rev 473)
@@ -1,81 +0,0 @@
-/* trdos.h: Routines for handling the Betadisk interface
-   Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
-
-   $Id: trdos.h,v 1.14 2007/02/02 16:21:52 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
-   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
-
-   Author contact information:
-
-   E-mail: phi...@sh...
-
-     Fred: fr...@sp...
-
-*/
-
-#ifndef FUSE_TRDOS_H
-#define FUSE_TRDOS_H
-
-#include <libspectrum.h>
-
-extern int trdos_available;	/* Is TRDOS available for use? */
-extern int trdos_active;     /* TRDOS enabled? */
-
-int trdos_init( void );
-
-void trdos_reset( void );
-
-void trdos_end( void );
-
-void trdos_page( void );
-void trdos_unpage( void );
-void trdos_memory_map( void );
-
-int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
-int trdos_to_snapshot( libspectrum_snap *snap );
-
-void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
-
-libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
-void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
-void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
-void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
-void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
-
-typedef enum trdos_drive_number {
-  TRDOS_DRIVE_A = 0,
-  TRDOS_DRIVE_B,
-  TRDOS_DRIVE_C,
-  TRDOS_DRIVE_D,
-} trdos_drive_number;
-
-int trdos_disk_insert( trdos_drive_number which, const char *filename,
-                       int autoload );
-int trdos_disk_insert_default_autoload( trdos_drive_number which,
-                                        const char *filename );
-int trdos_disk_eject( trdos_drive_number which, int write );
-int trdos_disk_write( trdos_drive_number which, const char *filename );
-int trdos_event_cmd_done( libspectrum_dword last_tstates );
-int trdos_event_index( libspectrum_dword last_tstates );
-
-#endif                  /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fr...@us...> - 2008-02-14 11:33:36
       | 
| Revision: 474
          http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=474&view=rev
Author:   fredm
Date:     2008-02-14 03:33:39 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Revert last bad commit (pilot error on svn_load_dirs.pl).
Added Paths:
-----------
    vendor/fuse/current/timer.c
    vendor/fuse/current/timer.h
    vendor/fuse/current/trdos.h
Removed Paths:
-------------
    vendor/fuse/current/disk/
    vendor/fuse/current/timer/
Copied: vendor/fuse/current/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer.c	                        (rev 0)
+++ vendor/fuse/current/timer.c	2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+   Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+   $Id: timer.c,v 1.39 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+  timer_type current_time;
+  float difference;
+  int error;
+
+  if( frames_until_update-- ) return 0;
+
+  error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+  if( samples < 10 ) {
+
+    /* If we don't have enough data, assume we're running at the desired
+       speed :-) */
+    current_speed = settings_current.emulation_speed;
+
+  } else {
+
+    difference =
+      timer_get_time_difference( ¤t_time,
+				 &stored_times[ next_stored_time ] );
+    current_speed = 100 * ( 10.0 / difference );
+
+  }
+
+  ui_statusbar_update_speed( current_speed );
+
+  stored_times[ next_stored_time ] = current_time;
+
+  next_stored_time = ( next_stored_time + 1 ) % 10;
+  frames_until_update = 
+    ( machine_current->timings.processor_speed /
+    machine_current->timings.tstates_per_frame ) - 1;
+
+  samples++;
+
+  return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  *real_time = SDL_GetTicks();
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  SDL_Delay( ms );
+}
+
+#elif defined(WIN32)            /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  *real_time = GetTickCount();
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  Sleep( ms );
+}
+
+#else                           /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+  int error;
+
+  error = gettimeofday( real_time, NULL );
+  if( error ) {
+    ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+    return 1;
+  }
+
+  return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+  return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+  a->tv_usec += msec * 1000;
+  if( a->tv_usec >= 1000000 ) {
+    a->tv_usec -= 1000000;
+    a->tv_sec += 1;
+  } else if( a->tv_usec < 0 ) {
+    a->tv_usec += 1000000;
+    a->tv_sec -= 1;
+  }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+  usleep( ms * 1000 );
+}
+
+#endif            /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+  int error = timer_get_real_time( &start_time ); if( error ) return error;
+  samples = 0;
+  next_stored_time = 0;
+  frames_until_update = 0;
+
+  return 0;
+}
+
+int
+timer_init( void )
+{
+  int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+  error = event_add( 0, EVENT_TYPE_TIMER );
+  if( error ) return error;
+
+  return 0;
+}
+
+int
+timer_end( void )
+{
+  return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+  for(;;) {
+
+    /* Sleep while fifo is full */
+    if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+      timer_sleep_ms( TEN_MS );
+    } else {
+      break;
+    }
+
+  }
+
+  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+                 EVENT_TYPE_TIMER ) )
+    return 1;
+
+  return 0;
+}
+
+#else                           /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+  if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+                 EVENT_TYPE_TIMER ) )
+    return 1;
+
+  return 0;
+}
+  
+#endif                          /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+  int error;
+  timer_type current_time;
+  float difference;
+  float speed = ( settings_current.emulation_speed < 1 ?
+		  100                                  :
+		  settings_current.emulation_speed ) / 100.0;
+  long tstates;
+
+  if( sound_enabled )
+    return timer_frame_callback_sound( last_tstates );
+
+  /* If we're fastloading, just schedule another check in a frame's time
+     and do nothing else */
+  if( settings_current.fastload && tape_is_playing() ) {
+
+    libspectrum_dword next_check_time =
+      last_tstates + machine_current->timings.tstates_per_frame;
+
+    if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+      return 1;
+
+  } else {
+
+    while( 1 ) {
+
+      error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+      
+      difference = timer_get_time_difference( ¤t_time, &start_time );
+
+      /* Sleep while we are still 10ms ahead */
+      if( difference < 0 ) {
+	timer_sleep_ms( TEN_MS );
+      } else {
+	break;
+      }
+
+    }
+
+    error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+    
+    difference = timer_get_time_difference( ¤t_time, &start_time );
+  
+    tstates = ( ( difference + TEN_MS / 1000.0 ) *
+		machine_current->timings.processor_speed
+		) * speed + 0.5;
+  
+    if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+    start_time = current_time;
+    timer_add_time_difference( &start_time, TEN_MS );
+
+  }
+
+  return 0;
+}
Copied: vendor/fuse/current/timer.h (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/timer.h	                        (rev 0)
+++ vendor/fuse/current/timer.h	2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+   Copyright (c) 1999-2004 Philip Kendall
+
+   $Id: timer.h,v 1.16 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32)		/* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else				/* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif				/* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif			/* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/trdos.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/trdos.h	                        (rev 0)
+++ vendor/fuse/current/trdos.h	2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+   Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+   $Id: trdos.h,v 1.14 2007/02/02 16:21:52 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
+   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
+
+   Author contact information:
+
+   E-mail: phi...@sh...
+
+     Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available;	/* Is TRDOS available for use? */
+extern int trdos_active;     /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+  TRDOS_DRIVE_A = 0,
+  TRDOS_DRIVE_B,
+  TRDOS_DRIVE_C,
+  TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+                       int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+                                        const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif                  /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |