fuse-for-macosx-commits Mailing List for Fuse for macOS (Page 16)
Brought to you by:
fredm
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(9) |
Dec
(31) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(24) |
Feb
(11) |
Mar
(6) |
Apr
(48) |
May
(9) |
Jun
(38) |
Jul
(33) |
Aug
(15) |
Sep
|
Oct
(3) |
Nov
(6) |
Dec
(3) |
| 2008 |
Jan
|
Feb
(24) |
Mar
(11) |
Apr
(22) |
May
(7) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(18) |
Dec
(23) |
| 2009 |
Jan
(16) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(7) |
Jul
(4) |
Aug
(11) |
Sep
(9) |
Oct
|
Nov
(3) |
Dec
(2) |
| 2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(2) |
May
(8) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(9) |
Nov
|
Dec
(8) |
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(2) |
Dec
|
| 2012 |
Jan
(4) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
(13) |
Dec
(11) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
(8) |
Apr
(8) |
May
(16) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
| 2014 |
Jan
|
Feb
(6) |
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(6) |
| 2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(10) |
Jun
(9) |
Jul
(6) |
Aug
(5) |
Sep
(3) |
Oct
(6) |
Nov
(5) |
Dec
|
|
From: <fr...@us...> - 2007-11-16 23:51:44
|
Revision: 462
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=462&view=rev
Author: fredm
Date: 2007-11-16 15:51:49 -0800 (Fri, 16 Nov 2007)
Log Message:
-----------
Increment version number to reflect merge state.
Modified Paths:
--------------
trunk/fuse/fusepb/Info-Fuse.plist
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2007-11-16 23:49:20 UTC (rev 461)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2007-11-16 23:51:49 UTC (rev 462)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
@@ -407,7 +407,7 @@
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>3095</string>
+ <string>3254</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-11-16 23:49:15
|
Revision: 461
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=461&view=rev
Author: fredm
Date: 2007-11-16 15:49:20 -0800 (Fri, 16 Nov 2007)
Log Message:
-----------
Merge up to vendor r3254.
Modified Paths:
--------------
trunk/FuseImporter/libspectrum.h
trunk/audiofile/audiofile.xcodeproj/project.pbxproj
trunk/fuse/ChangeLog
trunk/fuse/Makefile.am
trunk/fuse/ay.c
trunk/fuse/compat/Makefile.am
trunk/fuse/compat/amiga/Makefile.am
trunk/fuse/compat/amiga/paths.c
trunk/fuse/compat/morphos/Makefile.am
trunk/fuse/compat/morphos/osname.c
trunk/fuse/compat/unix/Makefile.am
trunk/fuse/compat/unix/osname.c
trunk/fuse/compat/unix/paths.c
trunk/fuse/compat/win32/Makefile.am
trunk/fuse/compat/win32/osname.c
trunk/fuse/compat/win32/paths.c
trunk/fuse/compat.h
trunk/fuse/configure.in
trunk/fuse/debugger/Makefile.am
trunk/fuse/debugger/breakpoint.c
trunk/fuse/debugger/command.c
trunk/fuse/debugger/commandy.y
trunk/fuse/debugger/debugger.c
trunk/fuse/debugger/debugger_internals.h
trunk/fuse/debugger/disassemble.c
trunk/fuse/debugger/expression.c
trunk/fuse/disk/Makefile.am
trunk/fuse/disk/plusd.c
trunk/fuse/disk/plusd.h
trunk/fuse/divide.c
trunk/fuse/event.c
trunk/fuse/event.h
trunk/fuse/fuse.cpp
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/Makefile
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/models/Emulator.h
trunk/fuse/fusepb/models/Emulator.m
trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/nibs/Preferences.nib/classes.nib
trunk/fuse/fusepb/nibs/Preferences.nib/info.nib
trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
trunk/fuse/hacking/ChangeLog
trunk/fuse/hacking/cvs-tags
trunk/fuse/if1.c
trunk/fuse/if2.c
trunk/fuse/keyboard.h
trunk/fuse/keysyms.pl
trunk/fuse/lib/Makefile.am
trunk/fuse/machine.c
trunk/fuse/machines/Makefile.am
trunk/fuse/machines/machines.h
trunk/fuse/machines/pentagon.c
trunk/fuse/machines/scorpion.c
trunk/fuse/machines/scorpion.h
trunk/fuse/machines/spec128.c
trunk/fuse/machines/spec128.h
trunk/fuse/machines/spec16.c
trunk/fuse/machines/spec48.c
trunk/fuse/machines/spec48.h
trunk/fuse/machines/spec_se.c
trunk/fuse/machines/specplus2.c
trunk/fuse/machines/specplus2a.c
trunk/fuse/machines/specplus3.c
trunk/fuse/machines/specplus3.h
trunk/fuse/machines/specplus3e.c
trunk/fuse/machines/tc2048.c
trunk/fuse/machines/tc2068.c
trunk/fuse/machines/tc2068.h
trunk/fuse/machines/ts2068.c
trunk/fuse/man/fuse.1
trunk/fuse/memory.h
trunk/fuse/menu.c
trunk/fuse/menu_data.dat
trunk/fuse/menu_data.pl
trunk/fuse/periph.c
trunk/fuse/periph.h
trunk/fuse/pokefinder/Makefile.am
trunk/fuse/pokefinder/pokefinder.c
trunk/fuse/printer.c
trunk/fuse/profile.c
trunk/fuse/profile.h
trunk/fuse/roms/Makefile.am
trunk/fuse/roms/plus3e-0.rom
trunk/fuse/roms/plus3e-1.rom
trunk/fuse/roms/plus3e-2.rom
trunk/fuse/rzx.c
trunk/fuse/settings.dat
trunk/fuse/settings.pl
trunk/fuse/snapshot.c
trunk/fuse/sound/Makefile.am
trunk/fuse/sound/alsasound.c
trunk/fuse/sound/aosound.c
trunk/fuse/sound/dxsound.c
trunk/fuse/sound/hpsound.c
trunk/fuse/sound/nullsound.c
trunk/fuse/sound/osssound.c
trunk/fuse/sound/sdlsound.c
trunk/fuse/sound/sfifo.c
trunk/fuse/sound/sunsound.c
trunk/fuse/sound.c
trunk/fuse/spectrum.h
trunk/fuse/tape.c
trunk/fuse/timer/Makefile.am
trunk/fuse/timer/timer.c
trunk/fuse/timer/unix.c
trunk/fuse/ui/Makefile.am
trunk/fuse/ui/cocoa/cocoaui.m
trunk/fuse/ui/fb/Makefile.am
trunk/fuse/ui/fb/fbdisplay.c
trunk/fuse/ui/fb/fbjoystick.c
trunk/fuse/ui/fb/fbkeyboard.c
trunk/fuse/ui/fb/fbmouse.c
trunk/fuse/ui/fb/fbui.c
trunk/fuse/ui/gtk/Makefile.am
trunk/fuse/ui/gtk/binary.c
trunk/fuse/ui/gtk/browse.c
trunk/fuse/ui/gtk/confirm.c
trunk/fuse/ui/gtk/debugger.c
trunk/fuse/ui/gtk/fileselector.c
trunk/fuse/ui/gtk/gtkdisplay.c
trunk/fuse/ui/gtk/gtkjoystick.c
trunk/fuse/ui/gtk/gtkkeyboard.c
trunk/fuse/ui/gtk/gtkmouse.c
trunk/fuse/ui/gtk/gtkui.c
trunk/fuse/ui/gtk/memory.c
trunk/fuse/ui/gtk/options-header.pl
trunk/fuse/ui/gtk/options.pl
trunk/fuse/ui/gtk/picture.c
trunk/fuse/ui/gtk/pokefinder.c
trunk/fuse/ui/gtk/rollback.c
trunk/fuse/ui/gtk/roms.c
trunk/fuse/ui/gtk/statusbar.c
trunk/fuse/ui/options.dat
trunk/fuse/ui/scaler/Makefile.am
trunk/fuse/ui/scaler/scaler.c
trunk/fuse/ui/scaler/scalers.cpp
trunk/fuse/ui/sdl/Makefile.am
trunk/fuse/ui/sdl/sdldisplay.c
trunk/fuse/ui/sdl/sdljoystick.c
trunk/fuse/ui/sdl/sdlkeyboard.c
trunk/fuse/ui/sdl/sdlui.c
trunk/fuse/ui/svga/Makefile.am
trunk/fuse/ui/svga/svgadisplay.c
trunk/fuse/ui/svga/svgajoystick.c
trunk/fuse/ui/svga/svgakeyboard.c
trunk/fuse/ui/svga/svgaui.c
trunk/fuse/ui/ui.h
trunk/fuse/ui/uijoystick.c
trunk/fuse/ui/win32/Makefile.am
trunk/fuse/ui/win32/debugger.c
trunk/fuse/ui/win32/error.c
trunk/fuse/ui/win32/menu_data.c
trunk/fuse/ui/win32/menu_data.h
trunk/fuse/ui/win32/menu_data.rc
trunk/fuse/ui/win32/pokefinder.c
trunk/fuse/ui/win32/statusbar.c
trunk/fuse/ui/win32/win32display.c
trunk/fuse/ui/win32/win32display.h
trunk/fuse/ui/win32/win32internals.h
trunk/fuse/ui/win32/win32keyboard.c
trunk/fuse/ui/win32/win32ui.c
trunk/fuse/ui/xlib/Makefile.am
trunk/fuse/ui/xlib/xdisplay.c
trunk/fuse/ui/xlib/xerror.c
trunk/fuse/ui/xlib/xjoystick.c
trunk/fuse/ui/xlib/xkeyboard.c
trunk/fuse/ui/xlib/xui.c
trunk/fuse/ui.c
trunk/fuse/utils.c
trunk/fuse/utils.h
trunk/fuse/widget/Makefile.am
trunk/fuse/widget/browse.c
trunk/fuse/widget/debugger.c
trunk/fuse/widget/error.c
trunk/fuse/widget/filesel.c
trunk/fuse/widget/memory.c
trunk/fuse/widget/menu.c
trunk/fuse/widget/options.pl
trunk/fuse/widget/picture.c
trunk/fuse/widget/pokefinder.c
trunk/fuse/widget/query.c
trunk/fuse/widget/roms.c
trunk/fuse/widget/select.c
trunk/fuse/widget/text.c
trunk/fuse/widget/widget.c
trunk/fuse/widget/widget.h
trunk/fuse/widget/widget_internals.h
trunk/fuse/z80/Makefile.am
trunk/fuse/z80/coretest.c
trunk/fuse/z80/z80.c
trunk/fuse/z80/z80.pl
trunk/fuse/z80/z80_ops.c
trunk/libspectrum/libspectrum/ChangeLog
trunk/libspectrum/libspectrum/Makefile.am
trunk/libspectrum/libspectrum/configure.in
trunk/libspectrum/libspectrum/csw.c
trunk/libspectrum/libspectrum/doc/libspectrum.txt
trunk/libspectrum/libspectrum/generate.pl.in
trunk/libspectrum/libspectrum/hacking/ChangeLog
trunk/libspectrum/libspectrum/libspectrum.c
trunk/libspectrum/libspectrum/libspectrum.h.in
trunk/libspectrum/libspectrum/plusd.c
trunk/libspectrum/libspectrum/rzx.c
trunk/libspectrum/libspectrum/sna.c
trunk/libspectrum/libspectrum/szx.c
trunk/libspectrum/libspectrum/tape.c
trunk/libspectrum/libspectrum/test/Makefile.am
trunk/libspectrum/libspectrum/test/invalid-warajevo-blockoffset.tap
trunk/libspectrum/libspectrum/test/test.c
trunk/libspectrum/libspectrum/timings.c
trunk/libspectrum/libspectrum/z80.c
trunk/libspectrum/libspectrum.h
Added Paths:
-----------
trunk/fuse/bitmap.h
trunk/fuse/disk/beta.c
trunk/fuse/disk/beta.h
trunk/fuse/disk/crc.c
trunk/fuse/disk/crc.h
trunk/fuse/disk/disk.c
trunk/fuse/disk/disk.h
trunk/fuse/disk/fdd.c
trunk/fuse/disk/fdd.h
trunk/fuse/disk/wd_fdc.c
trunk/fuse/disk/wd_fdc.h
trunk/fuse/machines/pentagon1024.c
trunk/fuse/machines/pentagon512.c
trunk/fuse/roms/gluck.rom
trunk/fuse/ui/win32/options-header.pl
trunk/fuse/ui/win32/options-resource.pl
trunk/fuse/ui/win32/options.pl
trunk/fuse/z80/z80_checks.h
trunk/libspectrum/libspectrum/test/complete-tzx.pl
trunk/libspectrum/libspectrum/test/edges.c
trunk/libspectrum/libspectrum/test/jump.tzx
trunk/libspectrum/libspectrum/test/loop2.tzx
trunk/libspectrum/libspectrum/test/test.h
trunk/libspectrum/libspectrum/test/test15.c
Removed Paths:
-------------
trunk/fuse/disk/wd1770.c
trunk/fuse/disk/wd1770.h
trunk/fuse/trdos.c
trunk/fuse/trdos.h
trunk/fuse/ui/ggi/
Modified: trunk/FuseImporter/libspectrum.h
===================================================================
--- trunk/FuseImporter/libspectrum.h 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/FuseImporter/libspectrum.h 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* libspectrum.h: the library for dealing with ZX Spectrum emulator files
Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier
- $Id: libspectrum.h.in 3008 2007-06-17 18:54:58Z zubzero $
+ $Id: libspectrum.h.in 3237 2007-10-24 18:24:07Z zubzero $
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
@@ -358,6 +358,9 @@
LIBSPECTRUM_MACHINE_TS2068,
+ LIBSPECTRUM_MACHINE_PENT512,
+ LIBSPECTRUM_MACHINE_PENT1024,
+
} libspectrum_machine;
const char* WIN32_DLL libspectrum_machine_name( libspectrum_machine type );
@@ -1064,6 +1067,10 @@
} libspectrum_rzx_block_id;
+void
+libspectrum_rzx_insert_snap( libspectrum_rzx *rzx, libspectrum_snap *snap,
+ int where );
+
libspectrum_rzx_iterator WIN32_DLL
libspectrum_rzx_iterator_begin( libspectrum_rzx *rzx );
libspectrum_rzx_iterator WIN32_DLL
@@ -1074,6 +1081,12 @@
size_t WIN32_DLL
libspectrum_rzx_iterator_get_frames( libspectrum_rzx_iterator it );
+void WIN32_DLL
+libspectrum_rzx_iterator_delete( libspectrum_rzx *rzx,
+ libspectrum_rzx_iterator it );
+libspectrum_snap* WIN32_DLL
+libspectrum_rzx_iterator_get_snap( libspectrum_rzx_iterator it );
+
/*
* Microdrive image handling routines
*/
Modified: trunk/audiofile/audiofile.xcodeproj/project.pbxproj
===================================================================
--- trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2007-11-16 23:49:20 UTC (rev 461)
@@ -397,6 +397,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_VERSION = 0.2.6;
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Development;
@@ -411,6 +412,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
DEPLOYMENT_POSTPROCESSING = YES;
FRAMEWORK_VERSION = 0.2.6;
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
@@ -425,6 +427,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_VERSION = 0.2.6;
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Default;
Modified: trunk/fuse/ChangeLog
===================================================================
--- trunk/fuse/ChangeLog 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/ChangeLog 2007-11-16 23:49:20 UTC (rev 461)
@@ -4,15 +4,21 @@
* New features:
* Add +D disk interface support (Stuart Brady).
+ * New floppy disk controller emulation for +D and Beta disk
+ interface emulation (Gergely Szasz and Stuart Brady).
+ * Add Pentagon 512 and Pentagon 1024 emulation (Q-Master).
* Add Hi-Fi beeper for improved reproduction of multi-channel beeper
tunes (e.g. Fairlight 2, Wham - the Music Box) (Fredrick Meunier).
- * Add support for saving tape images without using tape traps (Fredrick
- Meunier).
+ * Add support for saving tape images without using tape traps
+ (Fredrick Meunier).
* Add support for loading from WAV tape images (Fredrick Meunier).
* Add support for saving CSW tape images and TZX direct recording
blocks (Fredrick Meunier).
- * Allow distinction between "soft" resets (activing the reset line on
- the Z80) and "hard" resets (pulling the power) (Philip Kendall).
+ * Allow distinction between "soft" resets (activating the reset line
+ on the Z80) and "hard" resets (pulling the power) (Philip Kendall).
+ * New ALSA sound driver (Gergely Szasz).
+ * AmigaOS support (Chris Young).
+ * MorphOS support (Q-Master).
* Emulation core improvements:
* Fix contention for LD?R, CP?R and IN?R (Philip Kendall; thanks,
@@ -23,6 +29,15 @@
* Separate out contention when MREQ isn't active, as the +2A/+3 ULA
applies contention only when MREQ is active (Philip Kendall).
+ * Miscellaneous:
+ * Removed the GTK 1.x UI (please note that GTK 2.x will remain
+ supported for the foreseeable future) (Philip Kendall).
+ * Enable Fuse to build in directories other than the source
+ directory itself (Philip Kendall).
+ * Updated X11 UI (Gergely Szasz).
+ * Updated Win32 UI (Stuart Brady).
+ * Man page fixes (Stuart Brady).
+
* Various other minor bugfixes.
2007-05-11 Philip Kendall <phi...@sh...>
@@ -486,7 +501,7 @@
* Changable emulation speed (Philip Kendall).
- * Change to lib765 0.3.0 for Mac OS X compatability
+ * Change to lib765 0.3.0 for Mac OS X compatibility
(Frederick Meunier).
* Reset the Timex's SCLD when loading snapshot (Philip Kendall,
@@ -602,8 +617,8 @@
* Add contention of memory and io ports. Should make multicolour
effects better (Philip Kendall).
- * Emulation of reading from unattached ports (eg #FF). Makes some
- more games (eg Sidewize) work (Philip Kendall).
+ * Emulation of reading from unattached ports (e.g. #FF). Makes some
+ more games (e.g. Sidewize) work (Philip Kendall).
* Add a keyboard picture -- see the Help menu (Philip Kendall,
Russell Marks).
@@ -663,12 +678,12 @@
* Various improvements to the widget dialog boxes: cursor keys,
Page Up, Page Down, Home and End all do what you would expect,
remove the use of `scandir' function to improve inter-Unix
- compatability, append `/' to directories to make them more
+ compatibility, append `/' to directories to make them more
obvious, stop the hangs if you tried to start a widget whilst
one was active. (Philip Kendall, Russell Marks).
* .z80 snapshots: deal with the case of the end marker being
- preceeded by 0x00 or 0x00 0xed (Philip Kendall).
+ preceded by 0x00 or 0x00 0xed (Philip Kendall).
* Lots of sound improvements (Russell Marks).
@@ -834,4 +849,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog 3048 2007-07-07 13:26:48Z fredm $
+$Id: ChangeLog 3253 2007-10-26 02:02:17Z zubzero $
Modified: trunk/fuse/Makefile.am
===================================================================
--- trunk/fuse/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
-## Process this file with automake to produce Makefile.in
+# Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
+## $Id: Makefile.am 3218 2007-10-21 23:25:23Z zubzero $
## 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
@@ -27,7 +27,7 @@
SUBDIRS = compat \
debugger \
- @DISK@ \
+ disk \
hacking \
lib \
machines \
@@ -52,6 +52,7 @@
pokefinder \
roms \
sound \
+ timer \
ui \
widget \
z80
@@ -88,7 +89,6 @@
sound.c \
spectrum.c \
tape.c \
- trdos.c \
ui.c \
uidisplay.c \
ula.c \
@@ -101,7 +101,7 @@
fuse_LDADD = debugger/libdebugger.a \
@UI_LIBS@ \
-@DISK_LIBS@ \
+disk/libdisk.a \
machines/libmachines.a \
pokefinder/libpokefinder.a \
sound/libsound.a \
@@ -118,11 +118,11 @@
@X_LIBS@ \
@XML_LIBS@ \
compat/libcompat.a \
-compat/unix/libcompatos.a \
+compat/@COMPAT_OSNAME@/libcompatos.a \
@WINDRES_OBJ@
fuse_DEPENDENCIES = @UI_LIBS@ \
- @DISK_LIBS@ \
+ disk/libdisk.a \
debugger/libdebugger.a \
machines/libmachines.a \
sound/libsound.a \
@@ -132,18 +132,19 @@
BUILT_SOURCES = settings.c settings.h
windres.o: windres.rc winfuse.ico
- @WINDRES@ windres.rc windres.o
+ @WINDRES@ -I$(srcdir) -I. $(srcdir)/windres.rc windres.o
settings.c: settings.pl settings.dat
- @PERL@ settings.pl settings.dat > settings.c
+ @PERL@ -I$(srcdir)/perl $(srcdir)/settings.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@
settings.h: settings-header.pl settings.dat
- @PERL@ settings-header.pl settings.dat > settings.h
+ @PERL@ -I$(srcdir)/perl $(srcdir)/settings-header.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ @DSK_CFLAGS@\
@XML_CFLAGS@ @SAMPLERATE_CFLAGS@ -DFUSEDATADIR="\"${pkgdatadir}\""
noinst_HEADERS = ay.h \
+ bitmap.h \
compat.h \
dck.h \
display.h \
@@ -172,7 +173,6 @@
sound.h \
spectrum.h \
tape.h \
- trdos.h \
utils.h \
joystick.h \
printer.h \
@@ -192,3 +192,6 @@
settings.pl \
settings-header.pl \
settings.dat
+
+CLEANFILES = settings.c \
+ settings.h
Modified: trunk/fuse/ay.c
===================================================================
--- trunk/fuse/ay.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/ay.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* ay.c: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.c 2993 2007-06-17 13:54:49Z pak21 $
+ $Id: ay.c 3213 2007-10-21 16:37:52Z pak21 $
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
@@ -41,13 +41,14 @@
};
+static void ay_reset( int hard_reset );
static void ay_from_snapshot( libspectrum_snap *snap );
static void ay_to_snapshot( libspectrum_snap *snap );
static module_info_t ay_module_info = {
+ ay_reset,
NULL,
- NULL,
ay_from_snapshot,
ay_to_snapshot,
@@ -61,6 +62,15 @@
return 0;
}
+static void
+ay_reset( int hard_reset )
+{
+ ayinfo *ay = &machine_current->ay;
+
+ ay->current_register = 0;
+ memset( ay->registers, 0, sizeof( ay->registers ) );
+}
+
/* What happens when the AY register port (traditionally 0xfffd on the 128K
machines) is read from */
libspectrum_byte
Copied: trunk/fuse/bitmap.h (from rev 458, vendor/fuse-emulator/current/fuse/bitmap.h)
===================================================================
--- trunk/fuse/bitmap.h (rev 0)
+++ trunk/fuse/bitmap.h 2007-11-16 23:49:20 UTC (rev 461)
@@ -0,0 +1,49 @@
+/* bitmap.h: Bitmap routines
+ Copyright (c) 2007 Stuart Brady
+
+ $Id: bitmap.h 3218 2007-10-21 23:25:23Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: phi...@sh...
+
+ Stuart: sd...@nt...
+
+*/
+
+#ifndef FUSE_BITMAP_H
+#define FUSE_BITMAP_H
+
+inline static void
+bitmap_set( libspectrum_byte *b, const size_t n )
+{
+ b[ n / 8 ] |= ( 1 << ( n % 8 ) );
+}
+
+inline static void
+bitmap_reset( libspectrum_byte *b, const size_t n )
+{
+ b[ n / 8 ] &= ~( 1 << ( n % 8 ) );
+}
+
+inline static int
+bitmap_test( const libspectrum_byte *b, const size_t n )
+{
+ return b[ n / 8 ] & ( 1 << ( n % 8 ) );
+}
+
+#endif /* #ifndef FUSE_BITMAP_H */
Modified: trunk/fuse/compat/Makefile.am
===================================================================
--- trunk/fuse/compat/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
SUBDIRS = @COMPAT_OSNAME@
DIST_SUBDIRS = amiga \
Modified: trunk/fuse/compat/amiga/Makefile.am
===================================================================
--- trunk/fuse/compat/amiga/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/amiga/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = ../unix/osname.c \
Modified: trunk/fuse/compat/amiga/paths.c
===================================================================
--- trunk/fuse/compat/amiga/paths.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/amiga/paths.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -38,3 +38,10 @@
{
return "PROGDIR:settings";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ /* Is this correct? */
+ return path[0] == '/';
+}
Modified: trunk/fuse/compat/morphos/Makefile.am
===================================================================
--- trunk/fuse/compat/morphos/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/morphos/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: trunk/fuse/compat/morphos/osname.c
===================================================================
--- trunk/fuse/compat/morphos/osname.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/morphos/osname.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+ $Id: osname.c 3139 2007-09-03 10:27:57Z fredm $
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
@@ -31,4 +31,6 @@
int compat_osname( char *buffer, size_t length )
{
snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" );
+
+ return 0;
}
Modified: trunk/fuse/compat/unix/Makefile.am
===================================================================
--- trunk/fuse/compat/unix/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/unix/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: trunk/fuse/compat/unix/osname.c
===================================================================
--- trunk/fuse/compat/unix/osname.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/unix/osname.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3094 2007-08-05 14:20:15Z fredm $
+ $Id: osname.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/compat/unix/paths.c
===================================================================
--- trunk/fuse/compat/unix/paths.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/unix/paths.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -46,3 +46,9 @@
dir = getenv( "HOME" ); if( dir ) return dir;
return ".";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ return path[0] == '/';
+}
Modified: trunk/fuse/compat/win32/Makefile.am
===================================================================
--- trunk/fuse/compat/win32/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/win32/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: trunk/fuse/compat/win32/osname.c
===================================================================
--- trunk/fuse/compat/win32/osname.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/win32/osname.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+ $Id: osname.c 3163 2007-09-06 21:41:45Z zubzero $
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
@@ -27,14 +27,17 @@
#include <windows.h>
+#include "ui/ui.h"
+
int compat_osname( char *osname, size_t length )
{
- OSVERSIONINFO buf;
- char *windows_name;
+ OSVERSIONINFO buf;
+ char *windows_name;
+ int error;
buf.dwOSVersionInfoSize = sizeof( buf );
- sys_error = GetVersionEx( &buf );
- if( sys_error == 0 ) {
+ error = GetVersionEx( &buf );
+ if( error == 0 ) {
ui_error( UI_ERROR_ERROR, "error getting system information." );
return 1;
}
@@ -46,9 +49,7 @@
default: windows_name = "unknown"; break;
}
- snprintf( osname, length,
- "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
- gcrypt_version, libspectrum_version(),
+ snprintf( osname, length, "Windows %s %ld.%ld build %ld %s",
windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
buf.dwBuildNumber, buf.szCSDVersion );
Modified: trunk/fuse/compat/win32/paths.c
===================================================================
--- trunk/fuse/compat/win32/paths.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat/win32/paths.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -50,3 +50,11 @@
dir = getenv( "WINDIR" ); if( dir ) return dir;
return ".";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ if( path[0] == '\\' ) return 1;
+ if( path[0] && path[1] == ':' ) return 1;
+ return 0;
+}
Modified: trunk/fuse/compat.h
===================================================================
--- trunk/fuse/compat.h 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/compat.h 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* compat.h: various compatibility bits
Copyright (c) 2003 Philip Kendall
- $Id: compat.h 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: compat.h 3129 2007-08-30 12:46:32Z pak21 $
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
@@ -75,5 +75,6 @@
int compat_osname( char *buffer, size_t length );
const char* compat_get_temp_path( void );
const char* compat_get_home_path( void );
+int compat_is_absolute_path( const char *path );
#endif /* #ifndef FUSE_COMPAT_H */
Modified: trunk/fuse/configure.in
===================================================================
--- trunk/fuse/configure.in 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/configure.in 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3093 2007-08-04 20:51:34Z pak21 $
+dnl $Id: configure.in 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -336,14 +336,6 @@
lib/tape_se.szx
lib/tape_ts2068.szx])
-dnl LibDsk/lib765 prefix
-AC_ARG_WITH(disk-prefix,
-[ --with-disk-prefix=PFX where the LibDsk and/or lib765 libraries are installed (optional)],
-DSK_CFLAGS=-I$withval/include; DSKLIBS=-L$withval/lib,
-DSK_CFLAGS=""; DSK_LIBS="")
-ac_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $DSK_CFLAGS"
-
dnl Do we want +3 disk support?
AC_MSG_CHECKING(whether +3 disk support requested)
AC_ARG_WITH(plus3-disk,
@@ -352,28 +344,21 @@
plus3disk=yes)
AC_MSG_RESULT($plus3disk)
if test "$plus3disk" = yes; then
- AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765" lib765=yes,
- AC_MSG_WARN(765.h not found - +3 disk support disabled))
+ AC_ARG_WITH(plus3-disk-prefix,
+ [ --with-plus3-disk-prefix=PFX where the +3 libraries are installed (optional)],
+ DSK_CFLAGS=-I$withval/include; DSKLIBS=-L$withval/lib,
+ DSK_CFLAGS=""; DSK_LIBS="")
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $DSK_CFLAGS"
+ AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765"; lib765=yes,
+ AC_MSG_WARN(765.h not found - disk support disabled))
+ if test "$lib765" = yes; then
+ AC_CHECK_HEADERS(libdsk.h, DSKLIBS="$DSKLIBS -ldsk")
+ fi
+ CPPFLAGS="$ac_save_CPPFLAGS"
fi
-
-dnl Do we want LibDsk support?
-AC_MSG_CHECKING(whether libdsk is available)
-AC_ARG_WITH(libdsk,
- [ --without-libdsk disable LibDsk support],
- if test "$withval" = no; then libdsk=no; else libdsk=yes; fi,
- libdsk=yes)
-AC_MSG_RESULT($libdsk)
-if test "$libdsk" = yes; then
- AC_CHECK_HEADERS(libdsk.h, DSKLIBS="$DSKLIBS -ldsk";
- DISK_LIBS="disk/libdisk.a"; DISK="disk",
- AC_MSG_WARN(libdsk.h not found - LibDsk support disabled))
-fi
-
-CPPFLAGS="$ac_save_CPPFLAGS"
AC_SUBST(DSK_CFLAGS)
AC_SUBST(DSKLIBS)
-AC_SUBST(DISK_LIBS)
-AC_SUBST(DISK)
dnl Check if a version of libpng which supplies png_write_png is available
AC_CHECK_LIB( png, png_write_png,
@@ -430,9 +415,19 @@
[AC_MSG_WARN(dsound.h not found - no DirectSound output)]
)
-PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
- AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
- [AC_MSG_NOTICE([libsamplerate not present.])])
+dnl Check if libsamplerate is available
+AC_MSG_CHECKING(whether libsamplerate support requested)
+ AC_ARG_WITH(libsamplerate,
+ [ --without-libsamplerate use libsamplerate],
+ if test "$withval" = no; then libsamplerate=no; else libsamplerate=yes; fi,
+ libsamplerate=yes)
+AC_MSG_RESULT($libsamplerate)
+if test "$libsamplerate" = yes; then
+ PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
+ AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
+ [AC_MSG_NOTICE([libsamplerate not present.])])
+fi
+
AC_SUBST(SAMPLERATE_CFLAGS)
AC_SUBST(SAMPLERATE_LIBS)
@@ -505,7 +500,7 @@
AC_MSG_CHECKING(whether hardware joystick support requested)
AC_ARG_WITH(joystick,
- [ --with-joystick use a real joystick for Kempston emulation etc.],
+ [ --without-joystick use a real joystick for Kempston emulation etc.],
if test "$withval" = no; then stick=no; else stick=yes; fi,
stick=yes)
AC_MSG_RESULT($stick)
@@ -544,9 +539,17 @@
fi
dnl See if libxml2 is available (for the config file handling)
-AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1,
- [Defined if we've got libxml2]),
- AC_WARN(libxml2 not found - config file use disabled))
+AC_MSG_CHECKING(whether libxml2 support requested)
+ AC_ARG_WITH(libxml2,
+ [ --without-libxml2 use a libxml2 for settings],
+ if test "$withval" = no; then libxml2=no; else libxml2=yes; fi,
+ libxml2=yes)
+AC_MSG_RESULT($libxml2)
+if test "$libxml2" = yes; then
+ AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1,
+ [Defined if we've got libxml2]),
+ AC_WARN(libxml2 not found - config file use disabled))
+fi
dnl Work out which timer routines to use
AC_MSG_CHECKING(which timer routines to use)
@@ -557,7 +560,7 @@
AC_MSG_RESULT(SDL)
else
case "$target_os" in
- win32)
+ mingw32*)
TIMER_LIBADD='win32.$(OBJEXT)'
timer_header='<windows.h>'
timer_type='DWORD'
@@ -586,7 +589,7 @@
fi
if test "$ac_cv_func_getopt_long" = no; then
case "$target_os" in
- amiga|morphos)
+ amigaos|morphos)
dnl Our getopt_long replacement doesn't work, so don't use it
;;
*)
@@ -605,16 +608,16 @@
AC_MSG_RESULT($missing_routines)
AC_SUBST(COMPAT_LIBADD)
-dnl Work out which compatability routines to use
-AC_MSG_CHECKING(which compatability routines to use)
+dnl Work out which compatibility routines to use
+AC_MSG_CHECKING(which compatibility routines to use)
case "$target_os" in
- amiga)
+ amigaos)
COMPAT_OSNAME='amiga'
;;
morphos)
COMPAT_OSNAME='morphos'
;;
- win32)
+ mingw32*)
COMPAT_OSNAME='win32'
;;
*)
Modified: trunk/fuse/debugger/Makefile.am
===================================================================
--- trunk/fuse/debugger/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2001-2004 Philip Kendall
-## $Id: Makefile.am 2889 2007-05-26 17:45:08Z zubzero $
+## $Id: Makefile.am 3150 2007-09-05 14:05:00Z pak21 $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
noinst_LIBRARIES = libdebugger.a
@@ -42,3 +44,7 @@
commandy.h \
debugger.h \
debugger_internals.h
+
+CLEANFILES = commandl.c \
+ commandy.c \
+ commandy.h
Modified: trunk/fuse/debugger/breakpoint.c
===================================================================
--- trunk/fuse/debugger/breakpoint.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/breakpoint.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* breakpoint.c: a debugger breakpoint
- Copyright (c) 2002-2004 Philip Kendall
+ Copyright (c) 2002-2007 Philip Kendall
- $Id: breakpoint.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: breakpoint.c 3138 2007-09-02 12:19:16Z pak21 $
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 @@
/* Timed breakpoints trigger if we're past the relevant time */
case DEBUGGER_BREAKPOINT_TYPE_TIME:
- if( bp->value.tstates < tstates ) return 0;
+ if( bp->value.tstates > tstates ) return 0;
break;
default:
Modified: trunk/fuse/debugger/command.c
===================================================================
--- trunk/fuse/debugger/command.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/command.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* command.c: Parse a debugger command
Copyright (c) 2002 Philip Kendall
- $Id: command.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: command.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/debugger/commandy.y
===================================================================
--- trunk/fuse/debugger/commandy.y 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/commandy.y 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* commandy.y: Parse a debugger command
Copyright (c) 2002-2004 Philip Kendall
- $Id: commandy.y 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: commandy.y 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/debugger/debugger.c
===================================================================
--- trunk/fuse/debugger/debugger.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/debugger.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* debugger.c: Fuse's monitor/debugger
Copyright (c) 2002-2004 Philip Kendall
- $Id: debugger.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: debugger.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/debugger/debugger_internals.h
===================================================================
--- trunk/fuse/debugger/debugger_internals.h 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/debugger_internals.h 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* debugger_internals.h: The internals of Fuse's monitor/debugger
Copyright (c) 2002-2003 Philip Kendall
- $Id: debugger_internals.h 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: debugger_internals.h 3111 2007-08-17 12:42:10Z pak21 $
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,7 @@
#ifndef FUSE_DEBUGGER_INTERNALS_H
#define FUSE_DEBUGGER_INTERNALS_H
-#ifndef FUSE_DEBUGGER_H
#include "debugger.h"
-#endif /* #ifndef FUSE_DEBUGGER_H */
int debugger_breakpoint_remove( size_t id );
int debugger_breakpoint_remove_all( void );
Modified: trunk/fuse/debugger/disassemble.c
===================================================================
--- trunk/fuse/debugger/disassemble.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/disassemble.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* disassemble.c: Fuse's disassembler
Copyright (c) 2002-2003 Darren Salt, Philip Kendall
- $Id: disassemble.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: disassemble.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/debugger/expression.c
===================================================================
--- trunk/fuse/debugger/expression.c 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/debugger/expression.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
/* expression.c: A numeric expression
Copyright (c) 2003 Philip Kendall
- $Id: expression.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: expression.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: trunk/fuse/disk/Makefile.am
===================================================================
--- trunk/fuse/disk/Makefile.am 2007-11-09 23:10:38 UTC (rev 460)
+++ trunk/fuse/disk/Makefile.am 2007-11-16 23:49:20 UTC (rev 461)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Stuart Brady
-## $Id: Makefile.am 3059 2007-07-15 21:14:44Z zubzero $
+## $Id: Makefile.am 3207 2007-10-19 20:04:47Z zubzero $
## 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
@@ -23,12 +23,22 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
noinst_LIBRARIES = libdisk.a
INCLUDES = @LIBSPEC_CFLAGS@ @GTK_CFLAGS@ @GLIB_CFLAGS@
-libdisk_a_SOURCES = plusd.c \
- wd1770.c
+libdisk_a_SOURCES = beta.c \
+ crc.c \
+ disk.c \
+ fdd.c \
+ plusd.c \
+ wd_fdc.c
-noinst_HEADERS = plusd.h \
- wd1770.h
+noinst_HEADERS = beta.h \
+ crc.h \
+ disk.h \
+ fdd.h \
+ plusd.h \
+ wd_fdc.h
Copied: trunk/fuse/disk/beta.c (from rev 458, vendor/fuse-emulator/current/fuse/disk/beta.c)
===================================================================
--- trunk/fuse/disk/beta.c (rev 0)
+++ trunk/fuse/disk/beta.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -0,0 +1,506 @@
+/* beta.c: Routines for handling the Beta disk interface
+ Copyright (c) 2004-2007 Stuart Brady
+
+ $Id: beta.c 3227 2007-10-23 14:11:20Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: pak...@sr...
+ Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+
+ Stuart: sd...@nt...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h> /* Needed for strncasecmp() on QNX6 */
+#endif /* #ifdef HAVE_STRINGS_H */
+#include <limits.h>
+#include <sys/stat.h>
+
+#include <libspectrum.h>
+
+#include "beta.h"
+#include "compat.h"
+#include "event.h"
+#include "machine.h"
+#include "module.h"
+#include "settings.h"
+#include "ui/ui.h"
+#include "utils.h"
+#include "wd_fdc.h"
+#include "z80/z80.h"
+#include "z80/z80_macros.h"
+
+int beta_available = 0;
+int beta_active = 0;
+
+static int beta_index_pulse = 0;
+
+#define BETA_NUM_DRIVES 4
+
+static int beta_datarq;
+static int beta_intrq;
+
+static wd_fdc *beta_fdc;
+static wd_fdc_drive beta_drives[ BETA_NUM_DRIVES ];
+
+void beta_reset( void );
+static void beta_memory_map( void );
+static void beta_from_snapshot( libspectrum_snap *snap );
+static void beta_to_snapshot( libspectrum_snap *snap );
+
+static module_info_t beta_module_info = {
+
+ NULL,
+ beta_memory_map,
+ beta_from_snapshot,
+ beta_to_snapshot,
+
+};
+
+
+void
+beta_page( void )
+{
+ beta_active = 1;
+ machine_current->ram.romcs = 1;
+ machine_current->memory_map();
+}
+
+void
+beta_unpage( void )
+{
+ beta_active = 0;
+ machine_current->ram.romcs = 0;
+ machine_current->memory_map();
+}
+
+static void
+beta_memory_map( void )
+{
+ if( !beta_active ) return;
+
+ memory_map_read[0] = memory_map_write[0] = memory_map_romcs[ 0 ];
+ memory_map_read[1] = memory_map_write[1] = memory_map_romcs[ 1 ];
+}
+
+static void
+beta_set_intrq( wd_fdc *f )
+{
+ beta_intrq = 1;
+}
+
+static void
+beta_set_datarq( wd_fdc *f )
+{
+ beta_datarq = 1;
+}
+
+static void
+beta_reset_datarq( wd_fdc *f )
+{
+ beta_datarq = 0;
+}
+
+int
+beta_init( void )
+{
+ int i;
+ wd_fdc_drive *d;
+
+ beta_fdc = wd_fdc_alloc_fdc( FD1793 );
+ beta_fdc->current_drive = &beta_drives[ 0 ];
+
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ d = &beta_drives[ i ];
+ fdd_init( &d->fdd, 0, 0 ); /* drive geometry 'autodetect' */
+ }
+
+ beta_fdc->dden = 1;
+ beta_fdc->set_intrq = beta_set_intrq;
+ beta_fdc->reset_intrq = NULL;
+ beta_fdc->set_datarq = beta_set_datarq;
+ beta_fdc->reset_datarq = beta_reset_datarq;
+
+ module_register( &beta_module_info );
+
+ return 0;
+}
+
+void
+beta_reset( void )
+{
+ int i;
+ wd_fdc_drive *d;
+
+ beta_active = 0;
+
+ event_remove_type( EVENT_TYPE_BETA_INDEX );
+
+ wd_fdc_master_reset( beta_fdc );
+
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ d = &beta_drives[ i ];
+
+ d->index_pulse = 0;
+ d->index_interrupt = 0;
+ }
+
+ /* We can eject disks only if they are currently present */
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT,
+ beta_drives[ BETA_DRIVE_A ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT,
+ beta_drives[ BETA_DRIVE_B ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT,
+ beta_drives[ BETA_DRIVE_C ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT,
+ beta_drives[ BETA_DRIVE_D ].fdd.loaded );
+
+ beta_fdc->current_drive = &beta_drives[ 0 ];
+ machine_current->memory_map();
+ beta_event_index( 0 );
+
+ ui_statusbar_update( UI_STATUSBAR_ITEM_DISK, UI_STATUSBAR_STATE_INACTIVE );
+}
+
+void
+beta_end( void )
+{
+ beta_available = 0;
+}
+
+libspectrum_byte
+beta_sr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_sr_read( beta_fdc );
+}
+
+void
+beta_cr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_cr_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_tr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_tr_read( beta_fdc );
+}
+
+void
+beta_tr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_tr_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_sec_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_sec_read( beta_fdc );
+}
+
+void
+beta_sec_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_sec_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_dr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_dr_read( beta_fdc );
+}
+
+void
+beta_dr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_dr_write( beta_fdc, b );
+}
+
+void
+beta_sp_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ beta_fdc->current_drive = &beta_drives[ b & 0x03 ];
+ /* reset 0x04 and then set it to reset controller */
+ /* 0x08 = block hlt, normally set */
+ fdd_set_head( &beta_fdc->current_drive->fdd, ( ( b & 0x10 ) ? 0 : 1 ) );
+ /* 0x20 = density, reset = FM, set = MFM */
+ beta_fdc->dden = b & 0x20 ? 1 : 0;
+}
+
+libspectrum_byte
+beta_sp_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ libspectrum_byte b;
+
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ b = 0;
+
+ if( beta_intrq )
+ b |= 0x80;
+
+ if( beta_datarq )
+ b |= 0x40;
+
+ beta_intrq = 0;
+/* we should reset beta_datarq, but we first need to raise it for each byte
+ * transferred in wd_fdc.c */
+/* beta_datarq = 0; */
+
+ return b;
+}
+
+int
+beta_disk_insert( beta_drive_number which, const char *filename,
+ int autoload )
+{
+ int error;
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES ) {
+ ui_error( UI_ERROR_ERROR, "beta_disk_insert: unknown drive %d",
+ which );
+ fuse_abort();
+ }
+
+ d = &beta_drives[ which ];
+
+ /* Eject any disk already in the drive */
+ if( d->fdd.loaded ) {
+ /* Abort the insert if we want to keep the current disk */
+ if( beta_disk_eject( which, 0 ) ) return 0;
+ }
+ if( ( error = disk_open( &d->disk, filename, 0 ) != DISK_OK ) ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( d->disk.status ) );
+ return 1;
+ }
+ fdd_load( &d->fdd, &d->disk, 0 );
+
+ /* Set the 'eject' item active */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT, 1 );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 1 );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 1 );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 1 );
+ break;
+ }
+
+ if( autoload ) {
+ PC = 0;
+ machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */
+ beta_page();
+ }
+
+ return 0;
+}
+
+int
+beta_disk_insert_default_autoload( beta_drive_number which,
+ const char *filename )
+{
+ return beta_disk_insert( which, filename, settings_current.auto_load );
+}
+
+int
+beta_disk_eject( beta_drive_number which, int write )
+{
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES )
+ return 1;
+
+ d = &beta_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 0;
+
+ if( write ) {
+
+ if( ui_beta_disk_write( which ) ) return 1;
+
+ } else {
+
+ if( d->disk.dirty ) {
+
+ ui_confirm_save_t confirm = ui_confirm_save(
+ "Disk has been modified.\nDo you want to save it?"
+ );
+
+ switch( confirm ) {
+
+ case UI_CONFIRM_SAVE_SAVE:
+ if( ui_beta_disk_write( which ) ) return 1;
+ break;
+
+ case UI_CONFIRM_SAVE_DONTSAVE: break;
+ case UI_CONFIRM_SAVE_CANCEL: return 1;
+
+ }
+ }
+ }
+
+ fdd_unload( &d->fdd );
+ disk_close( &d->disk );
+
+ /* Set the 'eject' item inactive */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT, 0 );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 0 );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 0 );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 0 );
+ break;
+ }
+ return 0;
+}
+
+int
+beta_disk_write( beta_drive_number which, const char *filename )
+{
+ wd_fdc_drive *d = &beta_drives[ which ];
+ int error;
+
+ d->disk.type = DISK_TYPE_NONE;
+ error = disk_write( &d->disk, filename );
+
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "couldn't write '%s' file: %s", filename,
+ disk_strerror( error ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+int
+beta_event_cmd_done( libspectrum_dword last_tstates )
+{
+ beta_fdc->status_register &= ~WD_FDC_SR_BUSY;
+ return 0;
+}
+
+int
+beta_event_index( libspectrum_dword last_tstates )
+{
+ int error;
+ int next_tstates;
+ int i;
+
+ beta_index_pulse = !beta_index_pulse;
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ wd_fdc_drive *d = &beta_drives[ i ];
+
+ d->index_pulse = beta_index_pulse;
+/* disabled, until we have better timing emulation,
+ * to avoid interrupts while reading/writing data */
+ if( !beta_index_pulse && d->index_interrupt ) {
+ wd_fdc_set_intrq( beta_fdc );
+ d->index_interrupt = 0;
+ }
+ }
+ next_tstates = ( beta_index_pulse ? 10 : 190 ) *
+ machine_current->timings.processor_speed / 1000;
+ error = event_add( last_tstates + next_tstates, EVENT_TYPE_BETA_INDEX );
+ if( error )
+ return error;
+ return 0;
+}
+
+static void
+beta_from_snapshot( libspectrum_snap *snap )
+{
+ if( !( machine_current->capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK ) )
+ return;
+
+ beta_active = libspectrum_snap_beta_paged( snap );
+
+ if( beta_active ) {
+ beta_page();
+ } else {
+ beta_unpage();
+ }
+
+ beta_fdc->direction = libspectrum_snap_beta_direction( snap );
+
+ beta_cr_write ( 0x001f, 0 );
+ beta_tr_write ( 0x003f, libspectrum_snap_beta_track ( snap ) );
+ beta_sec_write( 0x005f, libspectrum_snap_beta_sector( snap ) );
+ beta_dr_write ( 0x007f, libspectrum_snap_beta_data ( snap ) );
+ beta_sp_write ( 0x00ff, libspectrum_snap_beta_system( snap ) );
+}
+
+void
+beta_to_snapshot( libspectrum_snap *snap )
+{
+ int attached;
+ wd_fdc *f = beta_fdc;
+
+ libspectrum_snap_set_beta_paged ( snap, beta_active );
+ libspectrum_snap_set_beta_direction( snap, beta_fdc->direction );
+ libspectrum_snap_set_beta_status( snap, beta_sr_read( 0x001f, &attached ) );
+ libspectrum_snap_set_beta_track ( snap, f->track_register );
+ libspectrum_snap_set_beta_sector( snap, f->sector_register );
+ libspectrum_snap_set_beta_data ( snap, f->data_register );
+ libspectrum_snap_set_beta_system( snap, beta_sp_read( 0x00ff, &attached ) );
+}
Copied: trunk/fuse/disk/beta.h (from rev 458, vendor/fuse-emulator/current/fuse/disk/beta.h)
===================================================================
--- trunk/fuse/disk/beta.h (rev 0)
+++ trunk/fuse/disk/beta.h 2007-11-16 23:49:20 UTC (rev 461)
@@ -0,0 +1,77 @@
+/* beta.h: Routines for handling the Beta disk interface
+ Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+ $Id: beta.h 3207 2007-10-19 20:04:47Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+ Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_BETA_H
+#define FUSE_BETA_H
+
+#include <libspectrum.h>
+
+extern int beta_available; /* Is the Beta disk interface available for use? */
+extern int beta_active; /* Is the Beta disk interface enabled? */
+
+int beta_init( void );
+
+void beta_end( void );
+
+void beta_page( void );
+void beta_unpage( void );
+
+void beta_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte beta_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte beta_tr_read( libspectrum_word port, int *attached );
+void beta_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte beta_sec_read( libspectrum_word port, int *attached );
+void beta_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte beta_dr_read( libspectrum_word port, int *attached );
+void beta_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte beta_sp_read( libspectrum_word port, int *attached );
+void beta_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum beta_drive_number {
+ BETA_DRIVE_A = 0,
+ BETA_DRIVE_B,
+ BETA_DRIVE_C,
+ BETA_DRIVE_D,
+} beta_drive_number;
+
+void beta_reset( void );
+
+int beta_disk_insert( beta_drive_number which, const char *filename,
+ int autoload );
+int beta_disk_insert_default_autoload( beta_drive_number which,
+ const char *filename );
+int beta_disk_eject( beta_drive_number which, int write );
+int beta_disk_write( beta_drive_number which, const char *filename );
+int beta_event_cmd_done( libspectrum_dword last_tstates );
+int beta_event_index( libspectrum_dword last_tstates );
+
+#endif /* #ifndef FUSE_BETA_H */
Copied: trunk/fuse/disk/crc.c (from rev 458, vendor/fuse-emulator/current/fuse/disk/crc.c)
===================================================================
--- trunk/fuse/disk/crc.c (rev 0)
+++ trunk/fuse/disk/crc.c 2007-11-16 23:49:20 UTC (rev 461)
@@ -0,0 +1,87 @@
+/* crc.c: Routines for CRC16/CRC32
+ Copyright (c) 2007 Gergely Szasz
+
+ $Id: crc.c 3202 2007-10-16 21:27:07Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <libspectrum.h>
+
+libspectrum_word crc_fdc_table[] = {
+ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
+ 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
+ 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
+ 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
+ 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
+ 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
+ 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
+ 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
+ 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
+ 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
+ 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a1...
[truncated message content] |
|
From: <fr...@us...> - 2007-11-09 23:10:34
|
Revision: 460
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=460&view=rev
Author: fredm
Date: 2007-11-09 15:10:38 -0800 (Fri, 09 Nov 2007)
Log Message:
-----------
Move to XCode 2.5 and 10.4 target for all frameworks. Link to libbz2 in
/usr/lib instead of framework.
Modified Paths:
--------------
trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj
trunk/audiofile/audiofile.xcodeproj/project.pbxproj
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/lib765/lib765.xcodeproj/project.pbxproj
trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj
trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj
Removed Paths:
-------------
trunk/bzip2/
Modified: trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj
===================================================================
--- trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -562,6 +562,7 @@
isa = XCBuildConfiguration;
buildSettings = {
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEPLOYMENT_POSTPROCESSING = YES;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
Modified: trunk/audiofile/audiofile.xcodeproj/project.pbxproj
===================================================================
--- trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -395,11 +395,9 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_VERSION = 0.2.6;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Development;
};
@@ -411,11 +409,9 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEPLOYMENT_POSTPROCESSING = YES;
FRAMEWORK_VERSION = 0.2.6;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
};
@@ -427,11 +423,9 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_VERSION = 0.2.6;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Default;
};
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -24,7 +24,6 @@
B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; };
B61F45A309121DF100C8096C /* 765.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C0750396490901C2A5B9 /* 765.framework */; };
B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; };
- B61F45A709121DF100C8096C /* libbz2.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6202BD105BD43D800A1EA8F /* libbz2.framework */; };
B61F45AA09121DF100C8096C /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = F5598598038921C501A804BA /* config.h */; };
B61F45AD09121DF100C8096C /* ui.h in Headers */ = {isa = PBXBuildFile; fileRef = F55985AD0389222701A804BA /* ui.h */; };
B61F45AE09121DF100C8096C /* uidisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = F55985AE0389222701A804BA /* uidisplay.h */; };
@@ -234,7 +233,6 @@
B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; };
B61F469E09121DF100C8096C /* 765.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F541C0750396490901C2A5B9 /* 765.framework */; };
B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; };
- B61F46A209121DF100C8096C /* libbz2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6202BD105BD43D800A1EA8F /* libbz2.framework */; };
B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */ = {isa = PBXBuildFile; fileRef = B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */; };
B6251C3E0C2EB24500BD5543 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */; };
B63225EC0C66BA1300BB081B /* osname.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225EB0C66BA1300BB081B /* osname.c */; };
@@ -356,7 +354,6 @@
B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */,
B61F45A309121DF100C8096C /* 765.framework in CopyFiles */,
B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */,
- B61F45A709121DF100C8096C /* libbz2.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -393,7 +390,6 @@
B619FC2E090D9BC200344F94 /* SavePanelAccessoryView.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = SavePanelAccessoryView.nib; path = nibs/SavePanelAccessoryView.nib; sourceTree = "<group>"; };
B61F46A909121DF100C8096C /* Info-Fuse.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Info-Fuse.plist"; sourceTree = "<group>"; };
B61F46AA09121DF200C8096C /* Fuse.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fuse.app; sourceTree = BUILT_PRODUCTS_DIR; };
- B6202BD105BD43D800A1EA8F /* libbz2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libbz2.framework; path = ../../bzip2/build/Deployment/libbz2.framework; sourceTree = SOURCE_ROOT; };
B621A11E062E92FB00F63DBC /* if2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = if2.c; path = ../if2.c; sourceTree = SOURCE_ROOT; };
B621A11F062E92FB00F63DBC /* if2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = if2.h; path = ../if2.h; sourceTree = SOURCE_ROOT; };
B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
@@ -696,7 +692,6 @@
B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */,
B61F469E09121DF100C8096C /* 765.framework in Frameworks */,
B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */,
- B61F46A209121DF100C8096C /* libbz2.framework in Frameworks */,
B64E2A170A6534A3006863D9 /* Carbon.framework in Frameworks */,
B6A6F0EE0B3D5F9E000B88E9 /* CoreAudio.framework in Frameworks */,
B6A6F0F30B3D602F000B88E9 /* AudioUnit.framework in Frameworks */,
@@ -733,7 +728,6 @@
F541C0750396490901C2A5B9 /* 765.framework */,
B6FA759C0C1D7507007F5A10 /* audiofile.framework */,
B6BA1A8B04E4F3290017354F /* gcrypt.framework */,
- B6202BD105BD43D800A1EA8F /* libbz2.framework */,
F541C04303963A9F01C2A5B9 /* spectrum.framework */,
);
name = "Linked Frameworks";
@@ -1814,7 +1808,7 @@
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
YACCFLAGS = "-d";
YACC_GENERATED_FILE_STEM = InputFileStem;
- ZERO_LINK = YES;
+ ZERO_LINK = NO;
};
name = Deployment;
};
@@ -1832,7 +1826,7 @@
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
YACCFLAGS = "-d";
YACC_GENERATED_FILE_STEM = InputFileStem;
- ZERO_LINK = YES;
+ ZERO_LINK = NO;
};
name = Default;
};
Modified: trunk/lib765/lib765.xcodeproj/project.pbxproj
===================================================================
--- trunk/lib765/lib765.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/lib765/lib765.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -77,7 +77,6 @@
B69A008A0A5D3CEA00EEA5ED /* dskcheck.c in Sources */ = {isa = PBXBuildFile; fileRef = 00000000000000001641C410 /* dskcheck.c */; };
B69A008B0A5D3CEA00EEA5ED /* dskcmt.c in Sources */ = {isa = PBXBuildFile; fileRef = 00000000000000001641AD00 /* dskcmt.c */; };
B69A008C0A5D3CEA00EEA5ED /* dskerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 00000000000000001641D480 /* dskerror.c */; };
- B69A008E0A5D3CEA00EEA5ED /* libbz2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69AFFFA0A5D366300EEA5ED /* libbz2.framework */; };
B69A00D90A5D403300EEA5ED /* libdsk.h in Headers */ = {isa = PBXBuildFile; fileRef = B69A00D80A5D403300EEA5ED /* libdsk.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
@@ -187,7 +186,6 @@
B69A00950A5D3CEA00EEA5ED /* 765.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = 765.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B69A00D80A5D403300EEA5ED /* libdsk.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = libdsk.h; sourceTree = "<group>"; };
B69AFFCE0A5D343500EEA5ED /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
- B69AFFFA0A5D366300EEA5ED /* libbz2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libbz2.framework; path = ../bzip2/build/Deployment/libbz2.framework; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -195,7 +193,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- B69A008E0A5D3CEA00EEA5ED /* libbz2.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -374,7 +371,6 @@
B69A000C0A5D36D400EEA5ED /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
- B69AFFFA0A5D366300EEA5ED /* libbz2.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
@@ -575,7 +571,10 @@
INSTALL_PATH = "@executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = "";
OTHER_CFLAGS = "";
- OTHER_LDFLAGS = "-lz";
+ OTHER_LDFLAGS = (
+ "-lbz2",
+ "-lz",
+ );
OTHER_LIBTOOL_FLAGS = "";
OTHER_REZFLAGS = "";
PRINCIPAL_CLASS = "";
@@ -616,7 +615,10 @@
INSTALL_PATH = "@executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = "";
OTHER_CFLAGS = "";
- OTHER_LDFLAGS = "-lz";
+ OTHER_LDFLAGS = (
+ "-lbz2",
+ "-lz",
+ );
OTHER_LIBTOOL_FLAGS = "";
OTHER_REZFLAGS = "";
PRINCIPAL_CLASS = "";
@@ -655,7 +657,10 @@
INSTALL_PATH = "@executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = "";
OTHER_CFLAGS = "";
- OTHER_LDFLAGS = "-lz";
+ OTHER_LDFLAGS = (
+ "-lbz2",
+ "-lz",
+ );
OTHER_LIBTOOL_FLAGS = "";
OTHER_REZFLAGS = "";
PRINCIPAL_CLASS = "";
@@ -674,10 +679,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Development;
};
@@ -689,10 +691,8 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ DEPLOYMENT_POSTPROCESSING = YES;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
};
@@ -704,10 +704,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Default;
};
Modified: trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj
===================================================================
--- trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -554,10 +554,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Development;
};
@@ -569,10 +566,8 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ DEPLOYMENT_POSTPROCESSING = YES;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
};
@@ -584,10 +579,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Default;
};
Modified: trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj
===================================================================
--- trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2007-11-09 22:38:34 UTC (rev 459)
+++ trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2007-11-09 23:10:38 UTC (rev 460)
@@ -40,7 +40,6 @@
B6CBAD6F0A5F3C2900F826D6 /* z80.c in Sources */ = {isa = PBXBuildFile; fileRef = 0000000000000000164148A0 /* z80.c */; };
B6CBAD700A5F3C2900F826D6 /* zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 0000000000000000164151D0 /* zlib.c */; };
B6CBAD710A5F3C2900F826D6 /* zxs.c in Sources */ = {isa = PBXBuildFile; fileRef = 000000000000000016415CE0 /* zxs.c */; };
- B6CBADA00A5F3E7C00F826D6 /* libbz2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6CBAD9F0A5F3E7C00F826D6 /* libbz2.framework */; };
B6CBADB80A5F3F3400F826D6 /* gcrypt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6CBADB70A5F3F3400F826D6 /* gcrypt.framework */; };
B6CBAE240A5FDDE300F826D6 /* snap_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6CBAE200A5FDDC700F826D6 /* snap_accessors.txt */; };
B6CBAE3A0A5FF42200F826D6 /* tape_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6CBAE390A5FF42200F826D6 /* tape_accessors.txt */; };
@@ -122,7 +121,6 @@
B6BF2AA40A6005E800D16624 /* libspectrum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = libspectrum.h; sourceTree = SOURCE_ROOT; };
B6CBAD780A5F3C2900F826D6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
B6CBAD790A5F3C2900F826D6 /* spectrum.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = spectrum.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- B6CBAD9F0A5F3E7C00F826D6 /* libbz2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libbz2.framework; path = ../bzip2/build/Deployment/libbz2.framework; sourceTree = SOURCE_ROOT; };
B6CBADB70A5F3F3400F826D6 /* gcrypt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = gcrypt.framework; path = ../libgcrypt/build/Deployment/gcrypt.framework; sourceTree = SOURCE_ROOT; };
B6CBAE200A5FDDC700F826D6 /* snap_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = snap_accessors.txt; sourceTree = "<group>"; };
B6CBAE390A5FF42200F826D6 /* tape_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = tape_accessors.txt; sourceTree = "<group>"; };
@@ -133,7 +131,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- B6CBADA00A5F3E7C00F826D6 /* libbz2.framework in Frameworks */,
B6CBADB80A5F3F3400F826D6 /* gcrypt.framework in Frameworks */,
B66F97CF0C1D70B9003CB91F /* audiofile.framework in Frameworks */,
);
@@ -225,7 +222,6 @@
children = (
B66F97CE0C1D70B9003CB91F /* audiofile.framework */,
B6CBADB70A5F3F3400F826D6 /* gcrypt.framework */,
- B6CBAD9F0A5F3E7C00F826D6 /* libbz2.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
@@ -354,10 +350,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Development;
};
@@ -370,10 +363,7 @@
);
DEBUG_INFORMATION_FORMAT = dwarf;
DEPLOYMENT_POSTPROCESSING = YES;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Deployment;
};
@@ -385,10 +375,7 @@
ppc,
);
DEBUG_INFORMATION_FORMAT = dwarf;
- MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
- MACOSX_DEPLOYMENT_TARGET_ppc = 10.3;
- SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
- SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdk;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Default;
};
@@ -428,6 +415,7 @@
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "-all_load";
OTHER_LDFLAGS = (
+ "-lbz2",
"-lz",
"-seg1addr",
0x10000000,
@@ -478,6 +466,7 @@
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "-all_load";
OTHER_LDFLAGS = (
+ "-lbz2",
"-lz",
"-seg1addr",
0x10000000,
@@ -526,6 +515,7 @@
INSTALL_PATH = "@executable_path/../Frameworks";
OTHER_CFLAGS = "-all_load";
OTHER_LDFLAGS = (
+ "-lbz2",
"-lz",
"-seg1addr",
0x10000000,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-11-09 22:39:18
|
Revision: 459
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=459&view=rev
Author: fredm
Date: 2007-11-09 14:38:34 -0800 (Fri, 09 Nov 2007)
Log Message:
-----------
Update for last few changes.
Modified Paths:
--------------
trunk/fuse/TODO
Modified: trunk/fuse/TODO
===================================================================
--- trunk/fuse/TODO 2007-10-26 10:14:55 UTC (rev 458)
+++ trunk/fuse/TODO 2007-11-09 22:38:34 UTC (rev 459)
@@ -33,19 +33,19 @@
X Add .WAV loader using audiofile
X Figure out why minimise icon image is partially blanked when minimise starts
X Quit keyhandling when command key is pressed
-* Use sheets rather than modal dialogs (for Save As)
-* Put in latest hq[23]x filters (HQ2x_555 from ScummVM should do the trick)
-* Make border display optional
-* Allow Cmd-w to close as many windows as possible
-* Make activity icons transparent
+X Allow zoom in fullscreen mode for widescreen displays
+X Shouldn't be able to load Interface II carts in Pentagon
* Seperate out sound buffer interleaving code to allow for the use of hardware etc.
sound mixing
-* Shouldn't be able to load Interface II carts in Pentagon
* Add volume option to standard fuse + a sound API method to set volume (or a
parameter to sound_lowlevel_init)
* Save ROM into szx when using a non-default one
* Randomise FRAMES sys var after autoload snapshot loaded in order to try and
get less deterministic program behaviour after load is complete
-* Allow zoom in fullscreen mode for widescreen displays
+* Use sheets rather than modal dialogs (for Save As)
+* Put in latest hq[23]x filters (HQ2x_555 from ScummVM should do the trick)
+* Allow Cmd-w to close as many windows as possible
+* Make border display optional
+* Make activity icons transparent
$Id: TODO 2026 2004-03-02 13:38:08Z pak21 $
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-10-26 10:15:02
|
Revision: 458
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=458&view=rev
Author: fredm
Date: 2007-10-26 03:14:55 -0700 (Fri, 26 Oct 2007)
Log Message:
-----------
Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-r3254.
Added Paths:
-----------
vendor/fuse-emulator/fuse-r3254/
Copied: vendor/fuse-emulator/fuse-r3254 (from rev 457, vendor/fuse-emulator/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-10-26 10:14:34
|
Revision: 457
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=457&view=rev
Author: fredm
Date: 2007-10-26 03:14:37 -0700 (Fri, 26 Oct 2007)
Log Message:
-----------
Load . into vendor/fuse-emulator/current.
Modified Paths:
--------------
vendor/fuse-emulator/current/fuse/ChangeLog
vendor/fuse-emulator/current/fuse/Makefile.am
vendor/fuse-emulator/current/fuse/ay.c
vendor/fuse-emulator/current/fuse/compat/Makefile.am
vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am
vendor/fuse-emulator/current/fuse/compat/amiga/paths.c
vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am
vendor/fuse-emulator/current/fuse/compat/morphos/osname.c
vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am
vendor/fuse-emulator/current/fuse/compat/unix/osname.c
vendor/fuse-emulator/current/fuse/compat/unix/paths.c
vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am
vendor/fuse-emulator/current/fuse/compat/win32/osname.c
vendor/fuse-emulator/current/fuse/compat/win32/paths.c
vendor/fuse-emulator/current/fuse/compat.h
vendor/fuse-emulator/current/fuse/configure.in
vendor/fuse-emulator/current/fuse/debugger/Makefile.am
vendor/fuse-emulator/current/fuse/debugger/breakpoint.c
vendor/fuse-emulator/current/fuse/debugger/command.c
vendor/fuse-emulator/current/fuse/debugger/commandy.y
vendor/fuse-emulator/current/fuse/debugger/debugger.c
vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h
vendor/fuse-emulator/current/fuse/debugger/disassemble.c
vendor/fuse-emulator/current/fuse/debugger/expression.c
vendor/fuse-emulator/current/fuse/disk/Makefile.am
vendor/fuse-emulator/current/fuse/disk/plusd.c
vendor/fuse-emulator/current/fuse/disk/plusd.h
vendor/fuse-emulator/current/fuse/disk/wd_fdc.c
vendor/fuse-emulator/current/fuse/disk/wd_fdc.h
vendor/fuse-emulator/current/fuse/divide.c
vendor/fuse-emulator/current/fuse/event.c
vendor/fuse-emulator/current/fuse/event.h
vendor/fuse-emulator/current/fuse/fuse.c
vendor/fuse-emulator/current/fuse/hacking/ChangeLog
vendor/fuse-emulator/current/fuse/hacking/cvs-tags
vendor/fuse-emulator/current/fuse/if1.c
vendor/fuse-emulator/current/fuse/if2.c
vendor/fuse-emulator/current/fuse/keyboard.h
vendor/fuse-emulator/current/fuse/keysyms.pl
vendor/fuse-emulator/current/fuse/lib/Makefile.am
vendor/fuse-emulator/current/fuse/machine.c
vendor/fuse-emulator/current/fuse/machines/Makefile.am
vendor/fuse-emulator/current/fuse/machines/machines.h
vendor/fuse-emulator/current/fuse/machines/pentagon.c
vendor/fuse-emulator/current/fuse/machines/scorpion.c
vendor/fuse-emulator/current/fuse/machines/scorpion.h
vendor/fuse-emulator/current/fuse/machines/spec128.c
vendor/fuse-emulator/current/fuse/machines/spec128.h
vendor/fuse-emulator/current/fuse/machines/spec16.c
vendor/fuse-emulator/current/fuse/machines/spec48.c
vendor/fuse-emulator/current/fuse/machines/spec48.h
vendor/fuse-emulator/current/fuse/machines/spec_se.c
vendor/fuse-emulator/current/fuse/machines/specplus2.c
vendor/fuse-emulator/current/fuse/machines/specplus2a.c
vendor/fuse-emulator/current/fuse/machines/specplus3.c
vendor/fuse-emulator/current/fuse/machines/specplus3.h
vendor/fuse-emulator/current/fuse/machines/specplus3e.c
vendor/fuse-emulator/current/fuse/machines/tc2048.c
vendor/fuse-emulator/current/fuse/machines/tc2068.c
vendor/fuse-emulator/current/fuse/machines/tc2068.h
vendor/fuse-emulator/current/fuse/machines/ts2068.c
vendor/fuse-emulator/current/fuse/man/fuse.1
vendor/fuse-emulator/current/fuse/memory.h
vendor/fuse-emulator/current/fuse/menu.c
vendor/fuse-emulator/current/fuse/menu_data.dat
vendor/fuse-emulator/current/fuse/menu_data.pl
vendor/fuse-emulator/current/fuse/periph.c
vendor/fuse-emulator/current/fuse/periph.h
vendor/fuse-emulator/current/fuse/pokefinder/Makefile.am
vendor/fuse-emulator/current/fuse/pokefinder/pokefinder.c
vendor/fuse-emulator/current/fuse/printer.c
vendor/fuse-emulator/current/fuse/profile.c
vendor/fuse-emulator/current/fuse/profile.h
vendor/fuse-emulator/current/fuse/roms/Makefile.am
vendor/fuse-emulator/current/fuse/roms/plus3e-0.rom
vendor/fuse-emulator/current/fuse/roms/plus3e-1.rom
vendor/fuse-emulator/current/fuse/roms/plus3e-2.rom
vendor/fuse-emulator/current/fuse/rzx.c
vendor/fuse-emulator/current/fuse/settings.dat
vendor/fuse-emulator/current/fuse/settings.pl
vendor/fuse-emulator/current/fuse/snapshot.c
vendor/fuse-emulator/current/fuse/sound/Makefile.am
vendor/fuse-emulator/current/fuse/sound/alsasound.c
vendor/fuse-emulator/current/fuse/sound/aosound.c
vendor/fuse-emulator/current/fuse/sound/dxsound.c
vendor/fuse-emulator/current/fuse/sound/hpsound.c
vendor/fuse-emulator/current/fuse/sound/nullsound.c
vendor/fuse-emulator/current/fuse/sound/osssound.c
vendor/fuse-emulator/current/fuse/sound/sdlsound.c
vendor/fuse-emulator/current/fuse/sound/sfifo.c
vendor/fuse-emulator/current/fuse/sound/sunsound.c
vendor/fuse-emulator/current/fuse/sound.c
vendor/fuse-emulator/current/fuse/spectrum.h
vendor/fuse-emulator/current/fuse/tape.c
vendor/fuse-emulator/current/fuse/timer/Makefile.am
vendor/fuse-emulator/current/fuse/timer/timer.c
vendor/fuse-emulator/current/fuse/timer/unix.c
vendor/fuse-emulator/current/fuse/ui/Makefile.am
vendor/fuse-emulator/current/fuse/ui/fb/Makefile.am
vendor/fuse-emulator/current/fuse/ui/fb/fbdisplay.c
vendor/fuse-emulator/current/fuse/ui/fb/fbjoystick.c
vendor/fuse-emulator/current/fuse/ui/fb/fbkeyboard.c
vendor/fuse-emulator/current/fuse/ui/fb/fbmouse.c
vendor/fuse-emulator/current/fuse/ui/fb/fbui.c
vendor/fuse-emulator/current/fuse/ui/gtk/Makefile.am
vendor/fuse-emulator/current/fuse/ui/gtk/binary.c
vendor/fuse-emulator/current/fuse/ui/gtk/browse.c
vendor/fuse-emulator/current/fuse/ui/gtk/confirm.c
vendor/fuse-emulator/current/fuse/ui/gtk/debugger.c
vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkdisplay.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkjoystick.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkkeyboard.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkmouse.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkui.c
vendor/fuse-emulator/current/fuse/ui/gtk/memory.c
vendor/fuse-emulator/current/fuse/ui/gtk/options-header.pl
vendor/fuse-emulator/current/fuse/ui/gtk/options.pl
vendor/fuse-emulator/current/fuse/ui/gtk/picture.c
vendor/fuse-emulator/current/fuse/ui/gtk/pokefinder.c
vendor/fuse-emulator/current/fuse/ui/gtk/rollback.c
vendor/fuse-emulator/current/fuse/ui/gtk/roms.c
vendor/fuse-emulator/current/fuse/ui/gtk/statusbar.c
vendor/fuse-emulator/current/fuse/ui/options.dat
vendor/fuse-emulator/current/fuse/ui/scaler/Makefile.am
vendor/fuse-emulator/current/fuse/ui/scaler/scaler.c
vendor/fuse-emulator/current/fuse/ui/scaler/scalers.c
vendor/fuse-emulator/current/fuse/ui/sdl/Makefile.am
vendor/fuse-emulator/current/fuse/ui/sdl/sdldisplay.c
vendor/fuse-emulator/current/fuse/ui/sdl/sdljoystick.c
vendor/fuse-emulator/current/fuse/ui/sdl/sdlkeyboard.c
vendor/fuse-emulator/current/fuse/ui/sdl/sdlui.c
vendor/fuse-emulator/current/fuse/ui/svga/Makefile.am
vendor/fuse-emulator/current/fuse/ui/svga/svgadisplay.c
vendor/fuse-emulator/current/fuse/ui/svga/svgajoystick.c
vendor/fuse-emulator/current/fuse/ui/svga/svgakeyboard.c
vendor/fuse-emulator/current/fuse/ui/svga/svgaui.c
vendor/fuse-emulator/current/fuse/ui/ui.h
vendor/fuse-emulator/current/fuse/ui/uijoystick.c
vendor/fuse-emulator/current/fuse/ui/win32/Makefile.am
vendor/fuse-emulator/current/fuse/ui/win32/debugger.c
vendor/fuse-emulator/current/fuse/ui/win32/error.c
vendor/fuse-emulator/current/fuse/ui/win32/menu_data.c
vendor/fuse-emulator/current/fuse/ui/win32/menu_data.h
vendor/fuse-emulator/current/fuse/ui/win32/menu_data.rc
vendor/fuse-emulator/current/fuse/ui/win32/pokefinder.c
vendor/fuse-emulator/current/fuse/ui/win32/statusbar.c
vendor/fuse-emulator/current/fuse/ui/win32/win32display.c
vendor/fuse-emulator/current/fuse/ui/win32/win32display.h
vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h
vendor/fuse-emulator/current/fuse/ui/win32/win32keyboard.c
vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c
vendor/fuse-emulator/current/fuse/ui/xlib/Makefile.am
vendor/fuse-emulator/current/fuse/ui/xlib/xdisplay.c
vendor/fuse-emulator/current/fuse/ui/xlib/xerror.c
vendor/fuse-emulator/current/fuse/ui/xlib/xjoystick.c
vendor/fuse-emulator/current/fuse/ui/xlib/xkeyboard.c
vendor/fuse-emulator/current/fuse/ui/xlib/xui.c
vendor/fuse-emulator/current/fuse/ui.c
vendor/fuse-emulator/current/fuse/utils.c
vendor/fuse-emulator/current/fuse/utils.h
vendor/fuse-emulator/current/fuse/widget/Makefile.am
vendor/fuse-emulator/current/fuse/widget/browse.c
vendor/fuse-emulator/current/fuse/widget/debugger.c
vendor/fuse-emulator/current/fuse/widget/error.c
vendor/fuse-emulator/current/fuse/widget/filesel.c
vendor/fuse-emulator/current/fuse/widget/memory.c
vendor/fuse-emulator/current/fuse/widget/menu.c
vendor/fuse-emulator/current/fuse/widget/options.pl
vendor/fuse-emulator/current/fuse/widget/picture.c
vendor/fuse-emulator/current/fuse/widget/pokefinder.c
vendor/fuse-emulator/current/fuse/widget/query.c
vendor/fuse-emulator/current/fuse/widget/roms.c
vendor/fuse-emulator/current/fuse/widget/select.c
vendor/fuse-emulator/current/fuse/widget/text.c
vendor/fuse-emulator/current/fuse/widget/widget.c
vendor/fuse-emulator/current/fuse/widget/widget.h
vendor/fuse-emulator/current/fuse/widget/widget_internals.h
vendor/fuse-emulator/current/fuse/z80/Makefile.am
vendor/fuse-emulator/current/fuse/z80/coretest.c
vendor/fuse-emulator/current/fuse/z80/z80.c
vendor/fuse-emulator/current/fuse/z80/z80.pl
vendor/fuse-emulator/current/fuse/z80/z80_ops.c
vendor/fuse-emulator/current/fuse-utils/ChangeLog
vendor/fuse-emulator/current/fuse-utils/Makefile.am
vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog
vendor/fuse-emulator/current/fuse-utils/listbasic.c
vendor/fuse-emulator/current/fuse-utils/man/listbasic.1
vendor/fuse-emulator/current/fuse-utils/man/rzxtool.1
vendor/fuse-emulator/current/fuse-utils/rzxtool.c
vendor/fuse-emulator/current/fusetest/Makefile
vendor/fuse-emulator/current/fusetest/fusetest.asm
vendor/fuse-emulator/current/fusetest/print.asm
vendor/fuse-emulator/current/fusetest/sync.asm
vendor/fuse-emulator/current/fusetest/tests.asm
vendor/fuse-emulator/current/libspectrum/ChangeLog
vendor/fuse-emulator/current/libspectrum/Makefile.am
vendor/fuse-emulator/current/libspectrum/configure.in
vendor/fuse-emulator/current/libspectrum/csw.c
vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt
vendor/fuse-emulator/current/libspectrum/generate.pl.in
vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog
vendor/fuse-emulator/current/libspectrum/libspectrum.c
vendor/fuse-emulator/current/libspectrum/libspectrum.h.in
vendor/fuse-emulator/current/libspectrum/plusd.c
vendor/fuse-emulator/current/libspectrum/rzx.c
vendor/fuse-emulator/current/libspectrum/sna.c
vendor/fuse-emulator/current/libspectrum/szx.c
vendor/fuse-emulator/current/libspectrum/tape.c
vendor/fuse-emulator/current/libspectrum/test/Makefile.am
vendor/fuse-emulator/current/libspectrum/test/invalid-warajevo-blockoffset.tap
vendor/fuse-emulator/current/libspectrum/test/test.c
vendor/fuse-emulator/current/libspectrum/timings.c
vendor/fuse-emulator/current/libspectrum/z80.c
vendor/fuse-emulator/current/website/.inc/fuse.inc
vendor/fuse-emulator/current/website/COPYING
vendor/fuse-emulator/current/website/fuse.php
Added Paths:
-----------
vendor/fuse-emulator/current/fuse/bitmap.h
vendor/fuse-emulator/current/fuse/disk/beta.c
vendor/fuse-emulator/current/fuse/disk/beta.h
vendor/fuse-emulator/current/fuse/disk/crc.c
vendor/fuse-emulator/current/fuse/disk/crc.h
vendor/fuse-emulator/current/fuse/disk/disk.c
vendor/fuse-emulator/current/fuse/disk/disk.h
vendor/fuse-emulator/current/fuse/disk/fdd.c
vendor/fuse-emulator/current/fuse/disk/fdd.h
vendor/fuse-emulator/current/fuse/machines/pentagon1024.c
vendor/fuse-emulator/current/fuse/roms/gluck.rom
vendor/fuse-emulator/current/fuse/ui/win32/options-header.pl
vendor/fuse-emulator/current/fuse/ui/win32/options-resource.pl
vendor/fuse-emulator/current/fuse/ui/win32/options.pl
vendor/fuse-emulator/current/fuse/z80/z80_checks.h
vendor/fuse-emulator/current/fuse-mgt/
vendor/fuse-emulator/current/fuse-mgt/COPYING
vendor/fuse-emulator/current/fuse-mgt/Makefile
vendor/fuse-emulator/current/fuse-mgt/README
vendor/fuse-emulator/current/fuse-mgt/fuse-mgt.c
vendor/fuse-emulator/current/fusetest/contention.asm
vendor/fuse-emulator/current/fusetest/framelength.asm
vendor/fuse-emulator/current/fusetest/guessmachine.asm
vendor/fuse-emulator/current/libspectrum/test/complete-tzx.pl
vendor/fuse-emulator/current/libspectrum/test/edges.c
vendor/fuse-emulator/current/libspectrum/test/jump.tzx
vendor/fuse-emulator/current/libspectrum/test/loop2.tzx
vendor/fuse-emulator/current/libspectrum/test/test.h
vendor/fuse-emulator/current/libspectrum/test/test15.c
Removed Paths:
-------------
vendor/fuse-emulator/current/fuse/TODO
vendor/fuse-emulator/current/fuse/trdos.c
vendor/fuse-emulator/current/fuse/trdos.h
vendor/fuse-emulator/current/fuse/ui/ggi/
Modified: vendor/fuse-emulator/current/fuse/ChangeLog
===================================================================
--- vendor/fuse-emulator/current/fuse/ChangeLog 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/ChangeLog 2007-10-26 10:14:37 UTC (rev 457)
@@ -4,15 +4,21 @@
* New features:
* Add +D disk interface support (Stuart Brady).
+ * New floppy disk controller emulation for +D and Beta disk
+ interface emulation (Gergely Szasz and Stuart Brady).
+ * Add Pentagon 512 and Pentagon 1024 emulation (Q-Master).
* Add Hi-Fi beeper for improved reproduction of multi-channel beeper
tunes (e.g. Fairlight 2, Wham - the Music Box) (Fredrick Meunier).
- * Add support for saving tape images without using tape traps (Fredrick
- Meunier).
+ * Add support for saving tape images without using tape traps
+ (Fredrick Meunier).
* Add support for loading from WAV tape images (Fredrick Meunier).
* Add support for saving CSW tape images and TZX direct recording
blocks (Fredrick Meunier).
- * Allow distinction between "soft" resets (activing the reset line on
- the Z80) and "hard" resets (pulling the power) (Philip Kendall).
+ * Allow distinction between "soft" resets (activating the reset line
+ on the Z80) and "hard" resets (pulling the power) (Philip Kendall).
+ * New ALSA sound driver (Gergely Szasz).
+ * AmigaOS support (Chris Young).
+ * MorphOS support (Q-Master).
* Emulation core improvements:
* Fix contention for LD?R, CP?R and IN?R (Philip Kendall; thanks,
@@ -23,6 +29,15 @@
* Separate out contention when MREQ isn't active, as the +2A/+3 ULA
applies contention only when MREQ is active (Philip Kendall).
+ * Miscellaneous:
+ * Removed the GTK 1.x UI (please note that GTK 2.x will remain
+ supported for the foreseeable future) (Philip Kendall).
+ * Enable Fuse to build in directories other than the source
+ directory itself (Philip Kendall).
+ * Updated X11 UI (Gergely Szasz).
+ * Updated Win32 UI (Stuart Brady).
+ * Man page fixes (Stuart Brady).
+
* Various other minor bugfixes.
2007-05-11 Philip Kendall <phi...@sh...>
@@ -486,7 +501,7 @@
* Changable emulation speed (Philip Kendall).
- * Change to lib765 0.3.0 for Mac OS X compatability
+ * Change to lib765 0.3.0 for Mac OS X compatibility
(Frederick Meunier).
* Reset the Timex's SCLD when loading snapshot (Philip Kendall,
@@ -602,8 +617,8 @@
* Add contention of memory and io ports. Should make multicolour
effects better (Philip Kendall).
- * Emulation of reading from unattached ports (eg #FF). Makes some
- more games (eg Sidewize) work (Philip Kendall).
+ * Emulation of reading from unattached ports (e.g. #FF). Makes some
+ more games (e.g. Sidewize) work (Philip Kendall).
* Add a keyboard picture -- see the Help menu (Philip Kendall,
Russell Marks).
@@ -663,12 +678,12 @@
* Various improvements to the widget dialog boxes: cursor keys,
Page Up, Page Down, Home and End all do what you would expect,
remove the use of `scandir' function to improve inter-Unix
- compatability, append `/' to directories to make them more
+ compatibility, append `/' to directories to make them more
obvious, stop the hangs if you tried to start a widget whilst
one was active. (Philip Kendall, Russell Marks).
* .z80 snapshots: deal with the case of the end marker being
- preceeded by 0x00 or 0x00 0xed (Philip Kendall).
+ preceded by 0x00 or 0x00 0xed (Philip Kendall).
* Lots of sound improvements (Russell Marks).
@@ -834,4 +849,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog 3048 2007-07-07 13:26:48Z fredm $
+$Id: ChangeLog 3253 2007-10-26 02:02:17Z zubzero $
Modified: vendor/fuse-emulator/current/fuse/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
-## Process this file with automake to produce Makefile.in
+# Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
+## $Id: Makefile.am 3218 2007-10-21 23:25:23Z zubzero $
## 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
@@ -27,7 +27,7 @@
SUBDIRS = compat \
debugger \
- @DISK@ \
+ disk \
hacking \
lib \
machines \
@@ -52,6 +52,7 @@
pokefinder \
roms \
sound \
+ timer \
ui \
widget \
z80
@@ -88,7 +89,6 @@
sound.c \
spectrum.c \
tape.c \
- trdos.c \
ui.c \
uidisplay.c \
ula.c \
@@ -101,7 +101,7 @@
fuse_LDADD = debugger/libdebugger.a \
@UI_LIBS@ \
-@DISK_LIBS@ \
+disk/libdisk.a \
machines/libmachines.a \
pokefinder/libpokefinder.a \
sound/libsound.a \
@@ -118,11 +118,11 @@
@X_LIBS@ \
@XML_LIBS@ \
compat/libcompat.a \
-compat/unix/libcompatos.a \
+compat/@COMPAT_OSNAME@/libcompatos.a \
@WINDRES_OBJ@
fuse_DEPENDENCIES = @UI_LIBS@ \
- @DISK_LIBS@ \
+ disk/libdisk.a \
debugger/libdebugger.a \
machines/libmachines.a \
sound/libsound.a \
@@ -132,18 +132,19 @@
BUILT_SOURCES = settings.c settings.h
windres.o: windres.rc winfuse.ico
- @WINDRES@ windres.rc windres.o
+ @WINDRES@ -I$(srcdir) -I. $(srcdir)/windres.rc windres.o
settings.c: settings.pl settings.dat
- @PERL@ settings.pl settings.dat > settings.c
+ @PERL@ -I$(srcdir)/perl $(srcdir)/settings.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@
settings.h: settings-header.pl settings.dat
- @PERL@ settings-header.pl settings.dat > settings.h
+ @PERL@ -I$(srcdir)/perl $(srcdir)/settings-header.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@ @DSK_CFLAGS@\
@XML_CFLAGS@ @SAMPLERATE_CFLAGS@ -DFUSEDATADIR="\"${pkgdatadir}\""
noinst_HEADERS = ay.h \
+ bitmap.h \
compat.h \
dck.h \
display.h \
@@ -172,7 +173,6 @@
sound.h \
spectrum.h \
tape.h \
- trdos.h \
utils.h \
joystick.h \
printer.h \
@@ -192,3 +192,6 @@
settings.pl \
settings-header.pl \
settings.dat
+
+CLEANFILES = settings.c \
+ settings.h
Deleted: vendor/fuse-emulator/current/fuse/TODO
===================================================================
--- vendor/fuse-emulator/current/fuse/TODO 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/TODO 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,3 +0,0 @@
-TODO
-
-$Id: TODO 2026 2004-03-02 13:38:08Z pak21 $
Modified: vendor/fuse-emulator/current/fuse/ay.c
===================================================================
--- vendor/fuse-emulator/current/fuse/ay.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/ay.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* ay.c: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.c 2993 2007-06-17 13:54:49Z pak21 $
+ $Id: ay.c 3213 2007-10-21 16:37:52Z pak21 $
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
@@ -41,13 +41,14 @@
};
+static void ay_reset( int hard_reset );
static void ay_from_snapshot( libspectrum_snap *snap );
static void ay_to_snapshot( libspectrum_snap *snap );
static module_info_t ay_module_info = {
+ ay_reset,
NULL,
- NULL,
ay_from_snapshot,
ay_to_snapshot,
@@ -61,6 +62,15 @@
return 0;
}
+static void
+ay_reset( int hard_reset )
+{
+ ayinfo *ay = &machine_current->ay;
+
+ ay->current_register = 0;
+ memset( ay->registers, 0, sizeof( ay->registers ) );
+}
+
/* What happens when the AY register port (traditionally 0xfffd on the 128K
machines) is read from */
libspectrum_byte
Added: vendor/fuse-emulator/current/fuse/bitmap.h
===================================================================
--- vendor/fuse-emulator/current/fuse/bitmap.h (rev 0)
+++ vendor/fuse-emulator/current/fuse/bitmap.h 2007-10-26 10:14:37 UTC (rev 457)
@@ -0,0 +1,49 @@
+/* bitmap.h: Bitmap routines
+ Copyright (c) 2007 Stuart Brady
+
+ $Id: bitmap.h 3218 2007-10-21 23:25:23Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: phi...@sh...
+
+ Stuart: sd...@nt...
+
+*/
+
+#ifndef FUSE_BITMAP_H
+#define FUSE_BITMAP_H
+
+inline static void
+bitmap_set( libspectrum_byte *b, const size_t n )
+{
+ b[ n / 8 ] |= ( 1 << ( n % 8 ) );
+}
+
+inline static void
+bitmap_reset( libspectrum_byte *b, const size_t n )
+{
+ b[ n / 8 ] &= ~( 1 << ( n % 8 ) );
+}
+
+inline static int
+bitmap_test( const libspectrum_byte *b, const size_t n )
+{
+ return b[ n / 8 ] & ( 1 << ( n % 8 ) );
+}
+
+#endif /* #ifndef FUSE_BITMAP_H */
Modified: vendor/fuse-emulator/current/fuse/compat/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
SUBDIRS = @COMPAT_OSNAME@
DIST_SUBDIRS = amiga \
Modified: vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = ../unix/osname.c \
Modified: vendor/fuse-emulator/current/fuse/compat/amiga/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/paths.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/amiga/paths.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -38,3 +38,10 @@
{
return "PROGDIR:settings";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ /* Is this correct? */
+ return path[0] == '/';
+}
Modified: vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: vendor/fuse-emulator/current/fuse/compat/morphos/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/osname.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/morphos/osname.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+ $Id: osname.c 3139 2007-09-03 10:27:57Z fredm $
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
@@ -31,4 +31,6 @@
int compat_osname( char *buffer, size_t length )
{
snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" );
+
+ return 0;
}
Modified: vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: vendor/fuse-emulator/current/fuse/compat/unix/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3094 2007-08-05 14:20:15Z fredm $
+ $Id: osname.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/compat/unix/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/paths.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/unix/paths.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -46,3 +46,9 @@
dir = getenv( "HOME" ); if( dir ) return dir;
return ".";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ return path[0] == '/';
+}
Modified: vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Philip Kendall
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/../..
+
noinst_LIBRARIES = libcompatos.a
libcompatos_a_SOURCES = osname.c \
Modified: vendor/fuse-emulator/current/fuse/compat/win32/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* osname.c: Get a representation of the OS we're running on
Copyright (c) 1999-2007 Philip Kendall
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+ $Id: osname.c 3163 2007-09-06 21:41:45Z zubzero $
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
@@ -27,14 +27,17 @@
#include <windows.h>
+#include "ui/ui.h"
+
int compat_osname( char *osname, size_t length )
{
- OSVERSIONINFO buf;
- char *windows_name;
+ OSVERSIONINFO buf;
+ char *windows_name;
+ int error;
buf.dwOSVersionInfoSize = sizeof( buf );
- sys_error = GetVersionEx( &buf );
- if( sys_error == 0 ) {
+ error = GetVersionEx( &buf );
+ if( error == 0 ) {
ui_error( UI_ERROR_ERROR, "error getting system information." );
return 1;
}
@@ -46,9 +49,7 @@
default: windows_name = "unknown"; break;
}
- snprintf( osname, length,
- "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
- gcrypt_version, libspectrum_version(),
+ snprintf( osname, length, "Windows %s %ld.%ld build %ld %s",
windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
buf.dwBuildNumber, buf.szCSDVersion );
Modified: vendor/fuse-emulator/current/fuse/compat/win32/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/paths.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat/win32/paths.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
-/* paths.c: Path-related compatability routines
+/* paths.c: Path-related compatibility routines
Copyright (c) 1999-2007 Philip Kendall
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: paths.c 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -50,3 +50,11 @@
dir = getenv( "WINDIR" ); if( dir ) return dir;
return ".";
}
+
+int
+compat_is_absolute_path( const char *path )
+{
+ if( path[0] == '\\' ) return 1;
+ if( path[0] && path[1] == ':' ) return 1;
+ return 0;
+}
Modified: vendor/fuse-emulator/current/fuse/compat.h
===================================================================
--- vendor/fuse-emulator/current/fuse/compat.h 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/compat.h 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* compat.h: various compatibility bits
Copyright (c) 2003 Philip Kendall
- $Id: compat.h 3092 2007-08-04 19:20:58Z pak21 $
+ $Id: compat.h 3129 2007-08-30 12:46:32Z pak21 $
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
@@ -75,5 +75,6 @@
int compat_osname( char *buffer, size_t length );
const char* compat_get_temp_path( void );
const char* compat_get_home_path( void );
+int compat_is_absolute_path( const char *path );
#endif /* #ifndef FUSE_COMPAT_H */
Modified: vendor/fuse-emulator/current/fuse/configure.in
===================================================================
--- vendor/fuse-emulator/current/fuse/configure.in 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/configure.in 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3093 2007-08-04 20:51:34Z pak21 $
+dnl $Id: configure.in 3253 2007-10-26 02:02:17Z zubzero $
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
@@ -335,14 +335,6 @@
lib/tape_se.szx
lib/tape_ts2068.szx])
-dnl LibDsk/lib765 prefix
-AC_ARG_WITH(disk-prefix,
-[ --with-disk-prefix=PFX where the LibDsk and/or lib765 libraries are installed (optional)],
-DSK_CFLAGS=-I$withval/include; DSKLIBS=-L$withval/lib,
-DSK_CFLAGS=""; DSK_LIBS="")
-ac_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $DSK_CFLAGS"
-
dnl Do we want +3 disk support?
AC_MSG_CHECKING(whether +3 disk support requested)
AC_ARG_WITH(plus3-disk,
@@ -351,28 +343,21 @@
plus3disk=yes)
AC_MSG_RESULT($plus3disk)
if test "$plus3disk" = yes; then
- AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765" lib765=yes,
- AC_MSG_WARN(765.h not found - +3 disk support disabled))
+ AC_ARG_WITH(plus3-disk-prefix,
+ [ --with-plus3-disk-prefix=PFX where the +3 libraries are installed (optional)],
+ DSK_CFLAGS=-I$withval/include; DSKLIBS=-L$withval/lib,
+ DSK_CFLAGS=""; DSK_LIBS="")
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $DSK_CFLAGS"
+ AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765"; lib765=yes,
+ AC_MSG_WARN(765.h not found - disk support disabled))
+ if test "$lib765" = yes; then
+ AC_CHECK_HEADERS(libdsk.h, DSKLIBS="$DSKLIBS -ldsk")
+ fi
+ CPPFLAGS="$ac_save_CPPFLAGS"
fi
-
-dnl Do we want LibDsk support?
-AC_MSG_CHECKING(whether libdsk is available)
-AC_ARG_WITH(libdsk,
- [ --without-libdsk disable LibDsk support],
- if test "$withval" = no; then libdsk=no; else libdsk=yes; fi,
- libdsk=yes)
-AC_MSG_RESULT($libdsk)
-if test "$libdsk" = yes; then
- AC_CHECK_HEADERS(libdsk.h, DSKLIBS="$DSKLIBS -ldsk";
- DISK_LIBS="disk/libdisk.a"; DISK="disk",
- AC_MSG_WARN(libdsk.h not found - LibDsk support disabled))
-fi
-
-CPPFLAGS="$ac_save_CPPFLAGS"
AC_SUBST(DSK_CFLAGS)
AC_SUBST(DSKLIBS)
-AC_SUBST(DISK_LIBS)
-AC_SUBST(DISK)
dnl Check if a version of libpng which supplies png_write_png is available
AC_CHECK_LIB( png, png_write_png,
@@ -429,9 +414,19 @@
[AC_MSG_WARN(dsound.h not found - no DirectSound output)]
)
-PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
- AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
- [AC_MSG_NOTICE([libsamplerate not present.])])
+dnl Check if libsamplerate is available
+AC_MSG_CHECKING(whether libsamplerate support requested)
+ AC_ARG_WITH(libsamplerate,
+ [ --without-libsamplerate use libsamplerate],
+ if test "$withval" = no; then libsamplerate=no; else libsamplerate=yes; fi,
+ libsamplerate=yes)
+AC_MSG_RESULT($libsamplerate)
+if test "$libsamplerate" = yes; then
+ PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
+ AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
+ [AC_MSG_NOTICE([libsamplerate not present.])])
+fi
+
AC_SUBST(SAMPLERATE_CFLAGS)
AC_SUBST(SAMPLERATE_LIBS)
@@ -504,7 +499,7 @@
AC_MSG_CHECKING(whether hardware joystick support requested)
AC_ARG_WITH(joystick,
- [ --with-joystick use a real joystick for Kempston emulation etc.],
+ [ --without-joystick use a real joystick for Kempston emulation etc.],
if test "$withval" = no; then stick=no; else stick=yes; fi,
stick=yes)
AC_MSG_RESULT($stick)
@@ -543,9 +538,17 @@
fi
dnl See if libxml2 is available (for the config file handling)
-AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1,
- [Defined if we've got libxml2]),
- AC_WARN(libxml2 not found - config file use disabled))
+AC_MSG_CHECKING(whether libxml2 support requested)
+ AC_ARG_WITH(libxml2,
+ [ --without-libxml2 use a libxml2 for settings],
+ if test "$withval" = no; then libxml2=no; else libxml2=yes; fi,
+ libxml2=yes)
+AC_MSG_RESULT($libxml2)
+if test "$libxml2" = yes; then
+ AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1,
+ [Defined if we've got libxml2]),
+ AC_WARN(libxml2 not found - config file use disabled))
+fi
dnl Work out which timer routines to use
AC_MSG_CHECKING(which timer routines to use)
@@ -556,7 +559,7 @@
AC_MSG_RESULT(SDL)
else
case "$target_os" in
- win32)
+ mingw32*)
TIMER_LIBADD='win32.$(OBJEXT)'
timer_header='<windows.h>'
timer_type='DWORD'
@@ -585,7 +588,7 @@
fi
if test "$ac_cv_func_getopt_long" = no; then
case "$target_os" in
- amiga|morphos)
+ amigaos|morphos)
dnl Our getopt_long replacement doesn't work, so don't use it
;;
*)
@@ -604,16 +607,16 @@
AC_MSG_RESULT($missing_routines)
AC_SUBST(COMPAT_LIBADD)
-dnl Work out which compatability routines to use
-AC_MSG_CHECKING(which compatability routines to use)
+dnl Work out which compatibility routines to use
+AC_MSG_CHECKING(which compatibility routines to use)
case "$target_os" in
- amiga)
+ amigaos)
COMPAT_OSNAME='amiga'
;;
morphos)
COMPAT_OSNAME='morphos'
;;
- win32)
+ mingw32*)
COMPAT_OSNAME='win32'
;;
*)
Modified: vendor/fuse-emulator/current/fuse/debugger/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2001-2004 Philip Kendall
-## $Id: Makefile.am 2889 2007-05-26 17:45:08Z zubzero $
+## $Id: Makefile.am 3150 2007-09-05 14:05:00Z pak21 $
## 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
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
noinst_LIBRARIES = libdebugger.a
@@ -42,3 +44,7 @@
commandy.h \
debugger.h \
debugger_internals.h
+
+CLEANFILES = commandl.c \
+ commandy.c \
+ commandy.h
Modified: vendor/fuse-emulator/current/fuse/debugger/breakpoint.c
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/breakpoint.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* breakpoint.c: a debugger breakpoint
- Copyright (c) 2002-2004 Philip Kendall
+ Copyright (c) 2002-2007 Philip Kendall
- $Id: breakpoint.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: breakpoint.c 3138 2007-09-02 12:19:16Z pak21 $
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 @@
/* Timed breakpoints trigger if we're past the relevant time */
case DEBUGGER_BREAKPOINT_TYPE_TIME:
- if( bp->value.tstates < tstates ) return 0;
+ if( bp->value.tstates > tstates ) return 0;
break;
default:
Modified: vendor/fuse-emulator/current/fuse/debugger/command.c
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/command.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/command.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* command.c: Parse a debugger command
Copyright (c) 2002 Philip Kendall
- $Id: command.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: command.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/debugger/commandy.y
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/commandy.y 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/commandy.y 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* commandy.y: Parse a debugger command
Copyright (c) 2002-2004 Philip Kendall
- $Id: commandy.y 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: commandy.y 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/debugger/debugger.c
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/debugger.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/debugger.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* debugger.c: Fuse's monitor/debugger
Copyright (c) 2002-2004 Philip Kendall
- $Id: debugger.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: debugger.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* debugger_internals.h: The internals of Fuse's monitor/debugger
Copyright (c) 2002-2003 Philip Kendall
- $Id: debugger_internals.h 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: debugger_internals.h 3111 2007-08-17 12:42:10Z pak21 $
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,7 @@
#ifndef FUSE_DEBUGGER_INTERNALS_H
#define FUSE_DEBUGGER_INTERNALS_H
-#ifndef FUSE_DEBUGGER_H
#include "debugger.h"
-#endif /* #ifndef FUSE_DEBUGGER_H */
int debugger_breakpoint_remove( size_t id );
int debugger_breakpoint_remove_all( void );
Modified: vendor/fuse-emulator/current/fuse/debugger/disassemble.c
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/disassemble.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/disassemble.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* disassemble.c: Fuse's disassembler
Copyright (c) 2002-2003 Darren Salt, Philip Kendall
- $Id: disassemble.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: disassemble.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/debugger/expression.c
===================================================================
--- vendor/fuse-emulator/current/fuse/debugger/expression.c 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/debugger/expression.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
/* expression.c: A numeric expression
Copyright (c) 2003 Philip Kendall
- $Id: expression.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: expression.c 3115 2007-08-19 02:49:14Z fredm $
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
Modified: vendor/fuse-emulator/current/fuse/disk/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/Makefile.am 2007-10-26 10:12:08 UTC (rev 456)
+++ vendor/fuse-emulator/current/fuse/disk/Makefile.am 2007-10-26 10:14:37 UTC (rev 457)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2007 Stuart Brady
-## $Id: Makefile.am 3059 2007-07-15 21:14:44Z zubzero $
+## $Id: Makefile.am 3207 2007-10-19 20:04:47Z zubzero $
## 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
@@ -23,12 +23,22 @@
AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS = -I$(srcdir)/..
+
noinst_LIBRARIES = libdisk.a
INCLUDES = @LIBSPEC_CFLAGS@ @GTK_CFLAGS@ @GLIB_CFLAGS@
-libdisk_a_SOURCES = plusd.c \
- wd1770.c
+libdisk_a_SOURCES = beta.c \
+ crc.c \
+ disk.c \
+ fdd.c \
+ plusd.c \
+ wd_fdc.c
-noinst_HEADERS = plusd.h \
- wd1770.h
+noinst_HEADERS = beta.h \
+ crc.h \
+ disk.h \
+ fdd.h \
+ plusd.h \
+ wd_fdc.h
Added: vendor/fuse-emulator/current/fuse/disk/beta.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/beta.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/disk/beta.c 2007-10-26 10:14:37 UTC (rev 457)
@@ -0,0 +1,506 @@
+/* beta.c: Routines for handling the Beta disk interface
+ Copyright (c) 2004-2007 Stuart Brady
+
+ $Id: beta.c 3227 2007-10-23 14:11:20Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: pak...@sr...
+ Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+
+ Stuart: sd...@nt...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h> /* Needed for strncasecmp() on QNX6 */
+#endif /* #ifdef HAVE_STRINGS_H */
+#include <limits.h>
+#include <sys/stat.h>
+
+#include <libspectrum.h>
+
+#include "beta.h"
+#include "compat.h"
+#include "event.h"
+#include "machine.h"
+#include "module.h"
+#include "settings.h"
+#include "ui/ui.h"
+#include "utils.h"
+#include "wd_fdc.h"
+#include "z80/z80.h"
+#include "z80/z80_macros.h"
+
+int beta_available = 0;
+int beta_active = 0;
+
+static int beta_index_pulse = 0;
+
+#define BETA_NUM_DRIVES 4
+
+static int beta_datarq;
+static int beta_intrq;
+
+static wd_fdc *beta_fdc;
+static wd_fdc_drive beta_drives[ BETA_NUM_DRIVES ];
+
+void beta_reset( void );
+static void beta_memory_map( void );
+static void beta_from_snapshot( libspectrum_snap *snap );
+static void beta_to_snapshot( libspectrum_snap *snap );
+
+static module_info_t beta_module_info = {
+
+ NULL,
+ beta_memory_map,
+ beta_from_snapshot,
+ beta_to_snapshot,
+
+};
+
+
+void
+beta_page( void )
+{
+ beta_active = 1;
+ machine_current->ram.romcs = 1;
+ machine_current->memory_map();
+}
+
+void
+beta_unpage( void )
+{
+ beta_active = 0;
+ machine_current->ram.romcs = 0;
+ machine_current->memory_map();
+}
+
+static void
+beta_memory_map( void )
+{
+ if( !beta_active ) return;
+
+ memory_map_read[0] = memory_map_write[0] = memory_map_romcs[ 0 ];
+ memory_map_read[1] = memory_map_write[1] = memory_map_romcs[ 1 ];
+}
+
+static void
+beta_set_intrq( wd_fdc *f )
+{
+ beta_intrq = 1;
+}
+
+static void
+beta_set_datarq( wd_fdc *f )
+{
+ beta_datarq = 1;
+}
+
+static void
+beta_reset_datarq( wd_fdc *f )
+{
+ beta_datarq = 0;
+}
+
+int
+beta_init( void )
+{
+ int i;
+ wd_fdc_drive *d;
+
+ beta_fdc = wd_fdc_alloc_fdc( FD1793 );
+ beta_fdc->current_drive = &beta_drives[ 0 ];
+
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ d = &beta_drives[ i ];
+ fdd_init( &d->fdd, 0, 0 ); /* drive geometry 'autodetect' */
+ }
+
+ beta_fdc->dden = 1;
+ beta_fdc->set_intrq = beta_set_intrq;
+ beta_fdc->reset_intrq = NULL;
+ beta_fdc->set_datarq = beta_set_datarq;
+ beta_fdc->reset_datarq = beta_reset_datarq;
+
+ module_register( &beta_module_info );
+
+ return 0;
+}
+
+void
+beta_reset( void )
+{
+ int i;
+ wd_fdc_drive *d;
+
+ beta_active = 0;
+
+ event_remove_type( EVENT_TYPE_BETA_INDEX );
+
+ wd_fdc_master_reset( beta_fdc );
+
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ d = &beta_drives[ i ];
+
+ d->index_pulse = 0;
+ d->index_interrupt = 0;
+ }
+
+ /* We can eject disks only if they are currently present */
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT,
+ beta_drives[ BETA_DRIVE_A ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT,
+ beta_drives[ BETA_DRIVE_B ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT,
+ beta_drives[ BETA_DRIVE_C ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT,
+ beta_drives[ BETA_DRIVE_D ].fdd.loaded );
+
+ beta_fdc->current_drive = &beta_drives[ 0 ];
+ machine_current->memory_map();
+ beta_event_index( 0 );
+
+ ui_statusbar_update( UI_STATUSBAR_ITEM_DISK, UI_STATUSBAR_STATE_INACTIVE );
+}
+
+void
+beta_end( void )
+{
+ beta_available = 0;
+}
+
+libspectrum_byte
+beta_sr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_sr_read( beta_fdc );
+}
+
+void
+beta_cr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_cr_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_tr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_tr_read( beta_fdc );
+}
+
+void
+beta_tr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_tr_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_sec_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_sec_read( beta_fdc );
+}
+
+void
+beta_sec_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_sec_write( beta_fdc, b );
+}
+
+libspectrum_byte
+beta_dr_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ return wd_fdc_dr_read( beta_fdc );
+}
+
+void
+beta_dr_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ wd_fdc_dr_write( beta_fdc, b );
+}
+
+void
+beta_sp_write( libspectrum_word port GCC_UNUSED, libspectrum_byte b )
+{
+ if( !beta_active ) return;
+
+ beta_fdc->current_drive = &beta_drives[ b & 0x03 ];
+ /* reset 0x04 and then set it to reset controller */
+ /* 0x08 = block hlt, normally set */
+ fdd_set_head( &beta_fdc->current_drive->fdd, ( ( b & 0x10 ) ? 0 : 1 ) );
+ /* 0x20 = density, reset = FM, set = MFM */
+ beta_fdc->dden = b & 0x20 ? 1 : 0;
+}
+
+libspectrum_byte
+beta_sp_read( libspectrum_word port GCC_UNUSED, int *attached )
+{
+ libspectrum_byte b;
+
+ if( !beta_active ) return 0;
+
+ *attached = 1;
+ b = 0;
+
+ if( beta_intrq )
+ b |= 0x80;
+
+ if( beta_datarq )
+ b |= 0x40;
+
+ beta_intrq = 0;
+/* we should reset beta_datarq, but we first need to raise it for each byte
+ * transferred in wd_fdc.c */
+/* beta_datarq = 0; */
+
+ return b;
+}
+
+int
+beta_disk_insert( beta_drive_number which, const char *filename,
+ int autoload )
+{
+ int error;
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES ) {
+ ui_error( UI_ERROR_ERROR, "beta_disk_insert: unknown drive %d",
+ which );
+ fuse_abort();
+ }
+
+ d = &beta_drives[ which ];
+
+ /* Eject any disk already in the drive */
+ if( d->fdd.loaded ) {
+ /* Abort the insert if we want to keep the current disk */
+ if( beta_disk_eject( which, 0 ) ) return 0;
+ }
+ if( ( error = disk_open( &d->disk, filename, 0 ) != DISK_OK ) ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( d->disk.status ) );
+ return 1;
+ }
+ fdd_load( &d->fdd, &d->disk, 0 );
+
+ /* Set the 'eject' item active */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT, 1 );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 1 );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 1 );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 1 );
+ break;
+ }
+
+ if( autoload ) {
+ PC = 0;
+ machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */
+ beta_page();
+ }
+
+ return 0;
+}
+
+int
+beta_disk_insert_default_autoload( beta_drive_number which,
+ const char *filename )
+{
+ return beta_disk_insert( which, filename, settings_current.auto_load );
+}
+
+int
+beta_disk_eject( beta_drive_number which, int write )
+{
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES )
+ return 1;
+
+ d = &beta_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 0;
+
+ if( write ) {
+
+ if( ui_beta_disk_write( which ) ) return 1;
+
+ } else {
+
+ if( d->disk.dirty ) {
+
+ ui_confirm_save_t confirm = ui_confirm_save(
+ "Disk has been modified.\nDo you want to save it?"
+ );
+
+ switch( confirm ) {
+
+ case UI_CONFIRM_SAVE_SAVE:
+ if( ui_beta_disk_write( which ) ) return 1;
+ break;
+
+ case UI_CONFIRM_SAVE_DONTSAVE: break;
+ case UI_CONFIRM_SAVE_CANCEL: return 1;
+
+ }
+ }
+ }
+
+ fdd_unload( &d->fdd );
+ disk_close( &d->disk );
+
+ /* Set the 'eject' item inactive */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT, 0 );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 0 );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 0 );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 0 );
+ break;
+ }
+ return 0;
+}
+
+int
+beta_disk_write( beta_drive_number which, const char *filename )
+{
+ wd_fdc_drive *d = &beta_drives[ which ];
+ int error;
+
+ d->disk.type = DISK_TYPE_NONE;
+ error = disk_write( &d->disk, filename );
+
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "couldn't write '%s' file: %s", filename,
+ disk_strerror( error ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+int
+beta_event_cmd_done( libspectrum_dword last_tstates )
+{
+ beta_fdc->status_register &= ~WD_FDC_SR_BUSY;
+ return 0;
+}
+
+int
+beta_event_index( libspectrum_dword last_tstates )
+{
+ int error;
+ int next_tstates;
+ int i;
+
+ beta_index_pulse = !beta_index_pulse;
+ for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
+ wd_fdc_drive *d = &beta_drives[ i ];
+
+ d->index_pulse = beta_index_pulse;
+/* disabled, until we have better timing emulation,
+ * to avoid interrupts while reading/writing data */
+ if( !beta_index_pulse && d->index_interrupt ) {
+ wd_fdc_set_intrq( beta_fdc );
+ d->index_interrupt = 0;
+ }
+ }
+ next_tstates = ( beta_index_pulse ? 10 : 190 ) *
+ machine_current->timings.processor_speed / 1000;
+ error = event_add( last_tstates + next_tstates, EVENT_TYPE_BETA_INDEX );
+ if( error )
+ return error;
+ return 0;
+}
+
+static void
+beta_from_snapshot( libspectrum_snap *snap )
+{
+ if( !( machine_current->capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK ) )
+ return;
+
+ beta_active = libspectrum_snap_beta_paged( snap );
+
+ if( beta_active ) {
+ beta_page();
+ } else {
+ beta_unpage();
+ }
+
+ beta_fdc->direction = libspectrum_snap_beta_direction( snap );
+
+ beta_cr_write ( 0x001f, 0 );
+ beta_tr_write ( 0x003f, libspectrum_snap_beta_track ( snap ) );
+ beta_sec_write( 0x005f, libspectrum_snap_beta_sector( snap ) );
+ beta_dr_write ( 0x007f, libspectrum_snap_beta_data ( snap ) );
+ beta_sp_write ( 0x00ff, libspectrum_snap_beta_system( snap ) );
+}
+
+void
+beta_to_snapshot( libspectrum_snap *snap )
+{
+ int attached;
+ wd_fdc *f = beta_fdc;
+
+ libspectrum_snap_set_beta_paged ( snap, beta_active );
+ libspectrum_snap_set_beta_direction( snap, beta_fdc->direction );
+ libspectrum_snap_set_beta_status( snap, beta_sr_read( 0x001f, &attached ) );
+ libspectrum_snap_set_beta_track ( snap, f->track_register );
+ libspectrum_snap_set_beta_sector( snap, f->sector_register );
+ libspectrum_snap_set_beta_data ( snap, f->data_register );
+ libspectrum_snap_set_beta_system( snap, beta_sp_read( 0x00ff, &attached ) );
+}
Added: vendor/fuse-emulator/current/fuse/disk/beta.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/beta.h (rev 0)
+++ vendor/fuse-emulator/current/fuse/disk/beta.h 2007-10-26 10:14:37 UTC (rev 457)
@@ -0,0 +1,77 @@
+/* beta.h: Routines for handling the Beta disk interface
+ Copyright (c) 2003-2004 Fredrick Meunier...
[truncated message content] |
|
From: <fr...@us...> - 2007-10-26 10:12:05
|
Revision: 456
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=456&view=rev
Author: fredm
Date: 2007-10-26 03:12:08 -0700 (Fri, 26 Oct 2007)
Log Message:
-----------
To prepare to load . into vendor/fuse-emulator/current, perform 2
renames.
* vendor/fuse-emulator/current/fuse/disk/wd_fdc.c: Renamed from
vendor/fuse-emulator/current/fuse/disk/wd1770.c.
* vendor/fuse-emulator/current/fuse/disk/wd_fdc.h: Renamed from
vendor/fuse-emulator/current/fuse/disk/wd1770.h.
Added Paths:
-----------
vendor/fuse-emulator/current/fuse/disk/wd_fdc.c
vendor/fuse-emulator/current/fuse/disk/wd_fdc.h
Removed Paths:
-------------
vendor/fuse-emulator/current/fuse/disk/wd1770.c
vendor/fuse-emulator/current/fuse/disk/wd1770.h
Deleted: vendor/fuse-emulator/current/fuse/disk/wd1770.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd1770.c 2007-08-15 23:23:58 UTC (rev 455)
+++ vendor/fuse-emulator/current/fuse/disk/wd1770.c 2007-10-26 10:12:08 UTC (rev 456)
@@ -1,391 +0,0 @@
-/* wd1770.c: Routines for handling the WD1770 floppy disk controller
- Copyright (c) 2002-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
- Dmitry Sanarin
-
- $Id: wd1770.c 3062 2007-07-15 21:59:08Z zubzero $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- Philip: phi...@sh...
-
- Stuart: sd...@nt...
-
-*/
-
-#include <config.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#ifdef HAVE_STRINGS_H
-#include <strings.h> /* Needed for strncasecmp() on QNX6 */
-#endif /* #ifdef HAVE_STRINGS_H */
-#include <limits.h>
-#include <sys/stat.h>
-
-#include <libdsk.h>
-
-#include <libspectrum.h>
-
-#include "compat.h"
-#include "event.h"
-#include "machine.h"
-#include "ui/ui.h"
-#include "wd1770.h"
-#include "z80/z80.h"
-
-static void statusbar_update( int busy );
-
-static char secbuf[1024];
-
-static void
-statusbar_update( int busy )
-{
- ui_statusbar_update( UI_STATUSBAR_ITEM_DISK,
- busy ? UI_STATUSBAR_STATE_ACTIVE :
- UI_STATUSBAR_STATE_INACTIVE );
-}
-
-void
-wd1770_set_cmdint( wd1770_fdc *f )
-{
- if( f->set_cmdint )
- f->set_cmdint( f );
-}
-
-void
-wd1770_reset_cmdint( wd1770_fdc *f )
-{
- if( f->reset_cmdint )
- f->reset_cmdint( f );
-}
-
-void
-wd1770_set_datarq( wd1770_fdc *f )
-{
- f->status_register |= WD1770_SR_IDX_DRQ;
- if( f->set_datarq )
- f->set_datarq( f );
-}
-
-void
-wd1770_reset_datarq( wd1770_fdc *f )
-{
- f->status_register &= ~WD1770_SR_IDX_DRQ;
- if( f->reset_datarq )
- f->reset_datarq( f );
-}
-
-static void
-wd1770_seek( wd1770_fdc *f, int track, int update, int verify )
-{
- wd1770_drive *d = f->current_drive;
-
- if( track < d->track ) {
- f->direction = -1;
- if( f->track_register == 0 )
- f->track_register = 255;
- else if( update ) {
- int trk = f->track_register;
-
- trk += track - d->track + 256;
- trk %= 256;
- f->track_register = trk;
- }
- } else if( track > d->track ) {
- f->direction = 1;
- if( f->track_register == 255 )
- f->track_register = 0;
- else if( update ) {
- int trk = f->track_register;
-
- trk += track - d->track;
- trk %= 256;
- f->track_register = trk;
- }
- }
-
- if( verify ) {
- if( track < 0 )
- f->status_register |= WD1770_SR_RNF;
- else if( track >= d->geom.dg_cylinders )
- f->status_register |= WD1770_SR_RNF;
- else
- f->status_register &= ~WD1770_SR_RNF;
- } else
- f->status_register &= ~WD1770_SR_RNF;
-
- if( track < 0 )
- track = 0;
- if( track > 255 )
- track = 255;
- d->track = track;
-
- if( d->track == 0 )
- f->status_register |= WD1770_SR_LOST;
- else
- f->status_register &= ~WD1770_SR_LOST;
-}
-
-libspectrum_byte
-wd1770_sr_read( wd1770_fdc *f )
-{
- wd1770_drive *d = f->current_drive;
-
- f->status_register &= ~( WD1770_SR_MOTORON | WD1770_SR_SPINUP |
- WD1770_SR_WRPROT | WD1770_SR_CRCERR );
- if( f->status_type == WD1770_STATUS_TYPE1 ) {
- f->status_register &= ~WD1770_SR_IDX_DRQ;
- if( !d->disk || d->index_pulse )
- f->status_register |= WD1770_SR_IDX_DRQ;
- }
- return f->status_register;
-}
-
-
-void
-wd1770_cr_write( wd1770_fdc *f, libspectrum_byte b )
-{
- wd1770_drive *d = f->current_drive;
-
- /* command register: */
- if( ( b & 0xf0 ) == 0xd0 ) { /* Type IV - Force Interrupt */
- statusbar_update(0);
- f->status_register &= ~WD1770_SR_BUSY;
- f->status_register &= ~WD1770_SR_WRPROT;
- f->status_register &= ~WD1770_SR_CRCERR;
- f->status_register &= ~WD1770_SR_IDX_DRQ;
- f->state = WD1770_STATE_NONE;
- f->status_type = WD1770_STATUS_TYPE1;
- if( d->track == 0 )
- f->status_register |= WD1770_SR_LOST;
- else
- f->status_register &= ~WD1770_SR_LOST;
- wd1770_reset_datarq( f );
- if( b & 0x08 )
- wd1770_set_cmdint( f );
- if( b & 0x04 )
- d->index_interrupt = 1;
- return;
- }
-
- if( f->status_register & WD1770_SR_BUSY )
- return;
-
- /*
- f->status_register |= WD1770_SR_BUSY;
- event_add( tstates +
- 10 * machine_current->timings.processor_speed / 1000,
- EVENT_TYPE_PLUSD_CMD_DONE );
- */
-
- if( !( b & 0x08 ) ) {
- f->spin_cycles = 5;
- f->status_register |= WD1770_SR_MOTORON;
- f->status_register |= WD1770_SR_SPINUP;
- }
-
- if( !( b & 0x80 ) ) { /* Type I */
- int update = b & 0x10 ? 1 : 0;
- int verify = b & 0x04 ? 1 : 0;
-/* int rate = b & 0x03 ? 1 : 0; */
-
- switch( ( b >> 5 ) & 0x03 ) {
- case 0x00:
- if( ( b & 0x4 ) ) { /* Restore */
- f->track_register = d->track;
- wd1770_seek( f, 0, update, verify );
- } else { /* Seek */
- wd1770_seek( f, f->data_register, 0, verify );
- }
- f->direction = 1;
- break;
- case 0x01: /* Step */
- wd1770_seek( f, d->track + f->direction, update, verify );
- break;
- case 0x02: /* Step In */
- wd1770_seek( f, d->track + 1, update, verify );
- break;
- case 0x03: /* Step Out */
- wd1770_seek( f, d->track - 1, update, verify );
- break;
- }
- f->status_type = WD1770_STATUS_TYPE1;
- wd1770_set_cmdint( f );
- wd1770_reset_datarq( f );
- } else if( !( b & 0x40 ) ) { /* Type II */
- int multisector = b & 0x10 ? 1 : 0;
-/* int delay = b & 0x04 ? 1 : 0; */
-
- if( !( b & 0x20 ) ) { /* Read Sector */
- f->state = WD1770_STATE_READ;
- } else { /* Write Sector */
-/* int dammark = b & 0x01; */
-
- f->state = WD1770_STATE_WRITE;
- }
- if( f->sector_register < d->geom.dg_secbase ||
- f->sector_register >= d->geom.dg_secbase + d->geom.dg_sectors ||
- d->track >= d->geom.dg_cylinders ||
- d->track < 0 ) {
- f->status_register |= WD1770_SR_RNF;
- wd1770_set_cmdint( f );
- wd1770_reset_datarq( f );
- } else {
- wd1770_set_datarq( f );
- statusbar_update(1);
- f->status_register |= WD1770_SR_BUSY;
- f->status_register &= ~( WD1770_SR_WRPROT | WD1770_SR_RNF |
- WD1770_SR_CRCERR | WD1770_SR_LOST );
- f->status_type = WD1770_STATUS_TYPE2;
- f->data_track = d->track;
- f->data_sector = f->sector_register;
- f->data_side = d->side;
- f->data_offset = 0;
- f->data_multisector = multisector;
- }
- } else if( ( b & 0xf0 ) != 0xd0 ) { /* Type III */
-/* int delay = b & 0x04; */
-
- switch( b & 0xf0 ) {
- case 0x00: /* Read Track */
- fprintf( stderr, "read track not yet implemented\n" );
- break;
- case 0x01: /* Write Track */
- fprintf( stderr, "write track not yet implemented\n" );
- break;
- case 0x02: /* Read Address */
- fprintf( stderr, "read address not yet implemented\n" );
- break;
- }
- f->status_type = WD1770_STATUS_TYPE2;
- }
-}
-
-libspectrum_byte
-wd1770_tr_read( wd1770_fdc *f )
-{
- return f->track_register;
-}
-
-void
-wd1770_tr_write( wd1770_fdc *f, libspectrum_byte b )
-{
- f->track_register = b;
-}
-
-libspectrum_byte
-wd1770_sec_read( wd1770_fdc *f )
-{
- return f->sector_register;
-}
-
-void
-wd1770_sec_write( wd1770_fdc *f, libspectrum_byte b )
-{
- f->sector_register = b;
-}
-
-libspectrum_byte
-wd1770_dr_read( wd1770_fdc *f )
-{
- wd1770_drive *d = f->current_drive;
-
- if( f->state == WD1770_STATE_READ ) {
- if( !d->disk ||
- f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ||
- f->data_track >= d->geom.dg_cylinders ||
- f->data_side >= d->geom.dg_heads ) {
- f->status_register |= WD1770_SR_RNF;
- fprintf( stderr, "read from non-existent sector\n" );
- return f->data_register;
- }
-
- if( f->data_offset == 0 &&
- ( d->geom.dg_secsize > sizeof( secbuf ) ||
- dsk_pread( d->disk, &d->geom, secbuf, f->data_track,
- f->data_side, f->data_sector ) != DSK_ERR_OK ) ) {
- f->status_register |= WD1770_SR_RNF;
- statusbar_update(0);
- f->status_register &= ~WD1770_SR_BUSY;
- f->status_type = WD1770_STATUS_TYPE2;
- f->state = WD1770_STATE_NONE;
- wd1770_set_cmdint( f );
- wd1770_reset_datarq( f );
- } else if( f->data_offset < d->geom.dg_secsize ) {
- f->data_register = secbuf[ f->data_offset++ ];
- if( f->data_offset == d->geom.dg_secsize ) {
- if( f->data_multisector &&
- f->data_sector < d->geom.dg_secbase + d->geom.dg_sectors ) {
- f->data_sector++;
- f->data_offset = 0;
- }
- if( !f->data_multisector ||
- f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ) {
- statusbar_update(0);
- f->status_register &= ~WD1770_SR_BUSY;
- f->status_type = WD1770_STATUS_TYPE2;
- f->state = WD1770_STATE_NONE;
- wd1770_set_cmdint( f );
- wd1770_reset_datarq( f );
- }
- }
- }
- }
- return f->data_register;
-}
-
-void
-wd1770_dr_write( wd1770_fdc *f, libspectrum_byte b )
-{
- wd1770_drive *d = f->current_drive;
-
- f->data_register = b;
- if( f->state == WD1770_STATE_WRITE ) {
- if( !d->disk || f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ||
- f->data_track >= d->geom.dg_cylinders ||
- f->data_side >= d->geom.dg_heads ) {
- f->status_register |= WD1770_SR_RNF;
- fprintf( stderr, "write to non-existent sector\n" );
- return;
- }
-
- if( f->data_offset < sizeof( secbuf ) )
- secbuf[ f->data_offset++ ] = b;
- if( f->data_offset == d->geom.dg_secsize ) {
- dsk_pwrite( d->disk, &d->geom, secbuf, f->data_track,
- f->data_side, f->data_sector );
- if( f->data_multisector &&
- f->data_sector < d->geom.dg_secbase + d->geom.dg_sectors ) {
- f->data_sector++;
- f->data_offset = 0;
- }
- if( !f->data_multisector ||
- f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ) {
- statusbar_update(0);
- f->status_register &= ~WD1770_SR_BUSY;
- f->status_type = WD1770_STATUS_TYPE2;
- f->state = WD1770_STATE_NONE;
- wd1770_set_cmdint( f );
- wd1770_reset_datarq( f );
- }
- }
- }
-}
Deleted: vendor/fuse-emulator/current/fuse/disk/wd1770.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd1770.h 2007-08-15 23:23:58 UTC (rev 455)
+++ vendor/fuse-emulator/current/fuse/disk/wd1770.h 2007-10-26 10:12:08 UTC (rev 456)
@@ -1,119 +0,0 @@
-/* wd1770.h: Routines for handling the WD1770 floppy disk controller
- Copyright (c) 2003-2007 Stuart Brady, Fredrick Meunier, Philip Kendall
-
- $Id: wd1770.h 3062 2007-07-15 21:59:08Z zubzero $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- Philip: phi...@sh...
-
- Stuart: sd...@nt...
-
-*/
-
-#ifndef FUSE_WD1770_H
-#define FUSE_WD1770_H
-
-#include <libdsk.h>
-
-#include <libspectrum.h>
-
-#include "fuse.h"
-
-static const int WD1770_SR_MOTORON = 1<<7; /* Motor on */
-static const int WD1770_SR_WRPROT = 1<<6; /* Write-protect */
-static const int WD1770_SR_SPINUP = 1<<5; /* Record type / Spin-up complete */
-static const int WD1770_SR_RNF = 1<<4; /* Record Not Found */
-static const int WD1770_SR_CRCERR = 1<<3; /* CRC error */
-static const int WD1770_SR_LOST = 1<<2; /* Lost data */
-static const int WD1770_SR_IDX_DRQ = 1<<1; /* Index pulse / Data request */
-static const int WD1770_SR_BUSY = 1<<0; /* Busy (command under execution) */
-
-extern int wd1770_index_pulse;
-extern int wd1770_index_interrupt;
-
-typedef struct wd1770_drive {
- DSK_PDRIVER disk;
- DSK_GEOMETRY geom;
- char filename[ PATH_MAX ];
-
- int index_pulse;
- int index_interrupt;
-
- int track;
- int side;
-} wd1770_drive;
-
-typedef struct wd1770_fdc {
- wd1770_drive *current_drive;
-
- int rates[ 4 ];
- int spin_cycles;
- int direction; /* 0 = spindlewards, 1 = rimwards */
-
- enum wd1770_state {
- WD1770_STATE_NONE = 0,
- WD1770_STATE_SEEK,
- WD1770_STATE_READ,
- WD1770_STATE_WRITE,
- WD1770_STATE_READTRACK,
- WD1770_STATE_WRITETRACK,
- WD1770_STATE_READID,
- } state;
-
- enum wd1770_status_type {
- WD1770_STATUS_TYPE1,
- WD1770_STATUS_TYPE2,
- } status_type;
-
- /* state during transfer */
- int data_track;
- int data_sector;
- int data_side;
- int data_multisector;
- int data_offset;
-
- libspectrum_byte status_register; /* status register */
- libspectrum_byte track_register; /* track register */
- libspectrum_byte sector_register; /* sector register */
- libspectrum_byte data_register; /* data register */
-
- void ( *set_cmdint ) ( struct wd1770_fdc *f );
- void ( *reset_cmdint ) ( struct wd1770_fdc *f );
- void ( *set_datarq ) ( struct wd1770_fdc *f );
- void ( *reset_datarq ) ( struct wd1770_fdc *f );
- void *iface;
-} wd1770_fdc;
-
-libspectrum_byte wd1770_sr_read( wd1770_fdc *f );
-void wd1770_cr_write( wd1770_fdc *f, libspectrum_byte b );
-
-libspectrum_byte wd1770_tr_read( wd1770_fdc *f );
-void wd1770_tr_write( wd1770_fdc *f, libspectrum_byte b );
-
-libspectrum_byte wd1770_sec_read( wd1770_fdc *f );
-void wd1770_sec_write( wd1770_fdc *f, libspectrum_byte b );
-
-libspectrum_byte wd1770_dr_read( wd1770_fdc *f );
-void wd1770_dr_write( wd1770_fdc *f, libspectrum_byte b );
-
-void wd1770_set_cmdint( wd1770_fdc *f );
-void wd1770_reset_cmdint( wd1770_fdc *f );
-void wd1770_set_datarq( wd1770_fdc *f );
-void wd1770_reset_datarq( wd1770_fdc *f );
-
-#endif /* #ifndef FUSE_WD1770_H */
Copied: vendor/fuse-emulator/current/fuse/disk/wd_fdc.c (from rev 455, vendor/fuse-emulator/current/fuse/disk/wd1770.c)
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd_fdc.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/disk/wd_fdc.c 2007-10-26 10:12:08 UTC (rev 456)
@@ -0,0 +1,391 @@
+/* wd1770.c: Routines for handling the WD1770 floppy disk controller
+ Copyright (c) 2002-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
+ Dmitry Sanarin
+
+ $Id: wd1770.c 3062 2007-07-15 21:59:08Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: phi...@sh...
+
+ Stuart: sd...@nt...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h> /* Needed for strncasecmp() on QNX6 */
+#endif /* #ifdef HAVE_STRINGS_H */
+#include <limits.h>
+#include <sys/stat.h>
+
+#include <libdsk.h>
+
+#include <libspectrum.h>
+
+#include "compat.h"
+#include "event.h"
+#include "machine.h"
+#include "ui/ui.h"
+#include "wd1770.h"
+#include "z80/z80.h"
+
+static void statusbar_update( int busy );
+
+static char secbuf[1024];
+
+static void
+statusbar_update( int busy )
+{
+ ui_statusbar_update( UI_STATUSBAR_ITEM_DISK,
+ busy ? UI_STATUSBAR_STATE_ACTIVE :
+ UI_STATUSBAR_STATE_INACTIVE );
+}
+
+void
+wd1770_set_cmdint( wd1770_fdc *f )
+{
+ if( f->set_cmdint )
+ f->set_cmdint( f );
+}
+
+void
+wd1770_reset_cmdint( wd1770_fdc *f )
+{
+ if( f->reset_cmdint )
+ f->reset_cmdint( f );
+}
+
+void
+wd1770_set_datarq( wd1770_fdc *f )
+{
+ f->status_register |= WD1770_SR_IDX_DRQ;
+ if( f->set_datarq )
+ f->set_datarq( f );
+}
+
+void
+wd1770_reset_datarq( wd1770_fdc *f )
+{
+ f->status_register &= ~WD1770_SR_IDX_DRQ;
+ if( f->reset_datarq )
+ f->reset_datarq( f );
+}
+
+static void
+wd1770_seek( wd1770_fdc *f, int track, int update, int verify )
+{
+ wd1770_drive *d = f->current_drive;
+
+ if( track < d->track ) {
+ f->direction = -1;
+ if( f->track_register == 0 )
+ f->track_register = 255;
+ else if( update ) {
+ int trk = f->track_register;
+
+ trk += track - d->track + 256;
+ trk %= 256;
+ f->track_register = trk;
+ }
+ } else if( track > d->track ) {
+ f->direction = 1;
+ if( f->track_register == 255 )
+ f->track_register = 0;
+ else if( update ) {
+ int trk = f->track_register;
+
+ trk += track - d->track;
+ trk %= 256;
+ f->track_register = trk;
+ }
+ }
+
+ if( verify ) {
+ if( track < 0 )
+ f->status_register |= WD1770_SR_RNF;
+ else if( track >= d->geom.dg_cylinders )
+ f->status_register |= WD1770_SR_RNF;
+ else
+ f->status_register &= ~WD1770_SR_RNF;
+ } else
+ f->status_register &= ~WD1770_SR_RNF;
+
+ if( track < 0 )
+ track = 0;
+ if( track > 255 )
+ track = 255;
+ d->track = track;
+
+ if( d->track == 0 )
+ f->status_register |= WD1770_SR_LOST;
+ else
+ f->status_register &= ~WD1770_SR_LOST;
+}
+
+libspectrum_byte
+wd1770_sr_read( wd1770_fdc *f )
+{
+ wd1770_drive *d = f->current_drive;
+
+ f->status_register &= ~( WD1770_SR_MOTORON | WD1770_SR_SPINUP |
+ WD1770_SR_WRPROT | WD1770_SR_CRCERR );
+ if( f->status_type == WD1770_STATUS_TYPE1 ) {
+ f->status_register &= ~WD1770_SR_IDX_DRQ;
+ if( !d->disk || d->index_pulse )
+ f->status_register |= WD1770_SR_IDX_DRQ;
+ }
+ return f->status_register;
+}
+
+
+void
+wd1770_cr_write( wd1770_fdc *f, libspectrum_byte b )
+{
+ wd1770_drive *d = f->current_drive;
+
+ /* command register: */
+ if( ( b & 0xf0 ) == 0xd0 ) { /* Type IV - Force Interrupt */
+ statusbar_update(0);
+ f->status_register &= ~WD1770_SR_BUSY;
+ f->status_register &= ~WD1770_SR_WRPROT;
+ f->status_register &= ~WD1770_SR_CRCERR;
+ f->status_register &= ~WD1770_SR_IDX_DRQ;
+ f->state = WD1770_STATE_NONE;
+ f->status_type = WD1770_STATUS_TYPE1;
+ if( d->track == 0 )
+ f->status_register |= WD1770_SR_LOST;
+ else
+ f->status_register &= ~WD1770_SR_LOST;
+ wd1770_reset_datarq( f );
+ if( b & 0x08 )
+ wd1770_set_cmdint( f );
+ if( b & 0x04 )
+ d->index_interrupt = 1;
+ return;
+ }
+
+ if( f->status_register & WD1770_SR_BUSY )
+ return;
+
+ /*
+ f->status_register |= WD1770_SR_BUSY;
+ event_add( tstates +
+ 10 * machine_current->timings.processor_speed / 1000,
+ EVENT_TYPE_PLUSD_CMD_DONE );
+ */
+
+ if( !( b & 0x08 ) ) {
+ f->spin_cycles = 5;
+ f->status_register |= WD1770_SR_MOTORON;
+ f->status_register |= WD1770_SR_SPINUP;
+ }
+
+ if( !( b & 0x80 ) ) { /* Type I */
+ int update = b & 0x10 ? 1 : 0;
+ int verify = b & 0x04 ? 1 : 0;
+/* int rate = b & 0x03 ? 1 : 0; */
+
+ switch( ( b >> 5 ) & 0x03 ) {
+ case 0x00:
+ if( ( b & 0x4 ) ) { /* Restore */
+ f->track_register = d->track;
+ wd1770_seek( f, 0, update, verify );
+ } else { /* Seek */
+ wd1770_seek( f, f->data_register, 0, verify );
+ }
+ f->direction = 1;
+ break;
+ case 0x01: /* Step */
+ wd1770_seek( f, d->track + f->direction, update, verify );
+ break;
+ case 0x02: /* Step In */
+ wd1770_seek( f, d->track + 1, update, verify );
+ break;
+ case 0x03: /* Step Out */
+ wd1770_seek( f, d->track - 1, update, verify );
+ break;
+ }
+ f->status_type = WD1770_STATUS_TYPE1;
+ wd1770_set_cmdint( f );
+ wd1770_reset_datarq( f );
+ } else if( !( b & 0x40 ) ) { /* Type II */
+ int multisector = b & 0x10 ? 1 : 0;
+/* int delay = b & 0x04 ? 1 : 0; */
+
+ if( !( b & 0x20 ) ) { /* Read Sector */
+ f->state = WD1770_STATE_READ;
+ } else { /* Write Sector */
+/* int dammark = b & 0x01; */
+
+ f->state = WD1770_STATE_WRITE;
+ }
+ if( f->sector_register < d->geom.dg_secbase ||
+ f->sector_register >= d->geom.dg_secbase + d->geom.dg_sectors ||
+ d->track >= d->geom.dg_cylinders ||
+ d->track < 0 ) {
+ f->status_register |= WD1770_SR_RNF;
+ wd1770_set_cmdint( f );
+ wd1770_reset_datarq( f );
+ } else {
+ wd1770_set_datarq( f );
+ statusbar_update(1);
+ f->status_register |= WD1770_SR_BUSY;
+ f->status_register &= ~( WD1770_SR_WRPROT | WD1770_SR_RNF |
+ WD1770_SR_CRCERR | WD1770_SR_LOST );
+ f->status_type = WD1770_STATUS_TYPE2;
+ f->data_track = d->track;
+ f->data_sector = f->sector_register;
+ f->data_side = d->side;
+ f->data_offset = 0;
+ f->data_multisector = multisector;
+ }
+ } else if( ( b & 0xf0 ) != 0xd0 ) { /* Type III */
+/* int delay = b & 0x04; */
+
+ switch( b & 0xf0 ) {
+ case 0x00: /* Read Track */
+ fprintf( stderr, "read track not yet implemented\n" );
+ break;
+ case 0x01: /* Write Track */
+ fprintf( stderr, "write track not yet implemented\n" );
+ break;
+ case 0x02: /* Read Address */
+ fprintf( stderr, "read address not yet implemented\n" );
+ break;
+ }
+ f->status_type = WD1770_STATUS_TYPE2;
+ }
+}
+
+libspectrum_byte
+wd1770_tr_read( wd1770_fdc *f )
+{
+ return f->track_register;
+}
+
+void
+wd1770_tr_write( wd1770_fdc *f, libspectrum_byte b )
+{
+ f->track_register = b;
+}
+
+libspectrum_byte
+wd1770_sec_read( wd1770_fdc *f )
+{
+ return f->sector_register;
+}
+
+void
+wd1770_sec_write( wd1770_fdc *f, libspectrum_byte b )
+{
+ f->sector_register = b;
+}
+
+libspectrum_byte
+wd1770_dr_read( wd1770_fdc *f )
+{
+ wd1770_drive *d = f->current_drive;
+
+ if( f->state == WD1770_STATE_READ ) {
+ if( !d->disk ||
+ f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ||
+ f->data_track >= d->geom.dg_cylinders ||
+ f->data_side >= d->geom.dg_heads ) {
+ f->status_register |= WD1770_SR_RNF;
+ fprintf( stderr, "read from non-existent sector\n" );
+ return f->data_register;
+ }
+
+ if( f->data_offset == 0 &&
+ ( d->geom.dg_secsize > sizeof( secbuf ) ||
+ dsk_pread( d->disk, &d->geom, secbuf, f->data_track,
+ f->data_side, f->data_sector ) != DSK_ERR_OK ) ) {
+ f->status_register |= WD1770_SR_RNF;
+ statusbar_update(0);
+ f->status_register &= ~WD1770_SR_BUSY;
+ f->status_type = WD1770_STATUS_TYPE2;
+ f->state = WD1770_STATE_NONE;
+ wd1770_set_cmdint( f );
+ wd1770_reset_datarq( f );
+ } else if( f->data_offset < d->geom.dg_secsize ) {
+ f->data_register = secbuf[ f->data_offset++ ];
+ if( f->data_offset == d->geom.dg_secsize ) {
+ if( f->data_multisector &&
+ f->data_sector < d->geom.dg_secbase + d->geom.dg_sectors ) {
+ f->data_sector++;
+ f->data_offset = 0;
+ }
+ if( !f->data_multisector ||
+ f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ) {
+ statusbar_update(0);
+ f->status_register &= ~WD1770_SR_BUSY;
+ f->status_type = WD1770_STATUS_TYPE2;
+ f->state = WD1770_STATE_NONE;
+ wd1770_set_cmdint( f );
+ wd1770_reset_datarq( f );
+ }
+ }
+ }
+ }
+ return f->data_register;
+}
+
+void
+wd1770_dr_write( wd1770_fdc *f, libspectrum_byte b )
+{
+ wd1770_drive *d = f->current_drive;
+
+ f->data_register = b;
+ if( f->state == WD1770_STATE_WRITE ) {
+ if( !d->disk || f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ||
+ f->data_track >= d->geom.dg_cylinders ||
+ f->data_side >= d->geom.dg_heads ) {
+ f->status_register |= WD1770_SR_RNF;
+ fprintf( stderr, "write to non-existent sector\n" );
+ return;
+ }
+
+ if( f->data_offset < sizeof( secbuf ) )
+ secbuf[ f->data_offset++ ] = b;
+ if( f->data_offset == d->geom.dg_secsize ) {
+ dsk_pwrite( d->disk, &d->geom, secbuf, f->data_track,
+ f->data_side, f->data_sector );
+ if( f->data_multisector &&
+ f->data_sector < d->geom.dg_secbase + d->geom.dg_sectors ) {
+ f->data_sector++;
+ f->data_offset = 0;
+ }
+ if( !f->data_multisector ||
+ f->data_sector >= d->geom.dg_secbase + d->geom.dg_sectors ) {
+ statusbar_update(0);
+ f->status_register &= ~WD1770_SR_BUSY;
+ f->status_type = WD1770_STATUS_TYPE2;
+ f->state = WD1770_STATE_NONE;
+ wd1770_set_cmdint( f );
+ wd1770_reset_datarq( f );
+ }
+ }
+ }
+}
Copied: vendor/fuse-emulator/current/fuse/disk/wd_fdc.h (from rev 455, vendor/fuse-emulator/current/fuse/disk/wd1770.h)
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd_fdc.h (rev 0)
+++ vendor/fuse-emulator/current/fuse/disk/wd_fdc.h 2007-10-26 10:12:08 UTC (rev 456)
@@ -0,0 +1,119 @@
+/* wd1770.h: Routines for handling the WD1770 floppy disk controller
+ Copyright (c) 2003-2007 Stuart Brady, Fredrick Meunier, Philip Kendall
+
+ $Id: wd1770.h 3062 2007-07-15 21:59:08Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ Philip: phi...@sh...
+
+ Stuart: sd...@nt...
+
+*/
+
+#ifndef FUSE_WD1770_H
+#define FUSE_WD1770_H
+
+#include <libdsk.h>
+
+#include <libspectrum.h>
+
+#include "fuse.h"
+
+static const int WD1770_SR_MOTORON = 1<<7; /* Motor on */
+static const int WD1770_SR_WRPROT = 1<<6; /* Write-protect */
+static const int WD1770_SR_SPINUP = 1<<5; /* Record type / Spin-up complete */
+static const int WD1770_SR_RNF = 1<<4; /* Record Not Found */
+static const int WD1770_SR_CRCERR = 1<<3; /* CRC error */
+static const int WD1770_SR_LOST = 1<<2; /* Lost data */
+static const int WD1770_SR_IDX_DRQ = 1<<1; /* Index pulse / Data request */
+static const int WD1770_SR_BUSY = 1<<0; /* Busy (command under execution) */
+
+extern int wd1770_index_pulse;
+extern int wd1770_index_interrupt;
+
+typedef struct wd1770_drive {
+ DSK_PDRIVER disk;
+ DSK_GEOMETRY geom;
+ char filename[ PATH_MAX ];
+
+ int index_pulse;
+ int index_interrupt;
+
+ int track;
+ int side;
+} wd1770_drive;
+
+typedef struct wd1770_fdc {
+ wd1770_drive *current_drive;
+
+ int rates[ 4 ];
+ int spin_cycles;
+ int direction; /* 0 = spindlewards, 1 = rimwards */
+
+ enum wd1770_state {
+ WD1770_STATE_NONE = 0,
+ WD1770_STATE_SEEK,
+ WD1770_STATE_READ,
+ WD1770_STATE_WRITE,
+ WD1770_STATE_READTRACK,
+ WD1770_STATE_WRITETRACK,
+ WD1770_STATE_READID,
+ } state;
+
+ enum wd1770_status_type {
+ WD1770_STATUS_TYPE1,
+ WD1770_STATUS_TYPE2,
+ } status_type;
+
+ /* state during transfer */
+ int data_track;
+ int data_sector;
+ int data_side;
+ int data_multisector;
+ int data_offset;
+
+ libspectrum_byte status_register; /* status register */
+ libspectrum_byte track_register; /* track register */
+ libspectrum_byte sector_register; /* sector register */
+ libspectrum_byte data_register; /* data register */
+
+ void ( *set_cmdint ) ( struct wd1770_fdc *f );
+ void ( *reset_cmdint ) ( struct wd1770_fdc *f );
+ void ( *set_datarq ) ( struct wd1770_fdc *f );
+ void ( *reset_datarq ) ( struct wd1770_fdc *f );
+ void *iface;
+} wd1770_fdc;
+
+libspectrum_byte wd1770_sr_read( wd1770_fdc *f );
+void wd1770_cr_write( wd1770_fdc *f, libspectrum_byte b );
+
+libspectrum_byte wd1770_tr_read( wd1770_fdc *f );
+void wd1770_tr_write( wd1770_fdc *f, libspectrum_byte b );
+
+libspectrum_byte wd1770_sec_read( wd1770_fdc *f );
+void wd1770_sec_write( wd1770_fdc *f, libspectrum_byte b );
+
+libspectrum_byte wd1770_dr_read( wd1770_fdc *f );
+void wd1770_dr_write( wd1770_fdc *f, libspectrum_byte b );
+
+void wd1770_set_cmdint( wd1770_fdc *f );
+void wd1770_reset_cmdint( wd1770_fdc *f );
+void wd1770_set_datarq( wd1770_fdc *f );
+void wd1770_reset_datarq( wd1770_fdc *f );
+
+#endif /* #ifndef FUSE_WD1770_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-15 23:23:56
|
Revision: 455
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=455&view=rev
Author: fredm
Date: 2007-08-15 16:23:58 -0700 (Wed, 15 Aug 2007)
Log Message:
-----------
Disable Tape->Record menu item when tape traps are enabled.
Modified Paths:
--------------
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-08-14 14:04:35 UTC (rev 454)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-08-15 23:23:58 UTC (rev 455)
@@ -13,8 +13,8 @@
<string>446.1</string>
<key>IBOpenObjects</key>
<array>
+ <integer>877</integer>
<integer>29</integer>
- <integer>877</integer>
</array>
<key>IBSystem Version</key>
<string>8R2218</string>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-14 14:04:54
|
Revision: 454
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=454&view=rev
Author: fredm
Date: 2007-08-14 07:04:35 -0700 (Tue, 14 Aug 2007)
Log Message:
-----------
Refactor display link starting and stopping and try to only stop and start the
display link at appropriate times, add support for panoramic fullscreen mode.
Modified Paths:
--------------
trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
trunk/fuse/settings.dat
Modified: trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
===================================================================
--- trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2007-08-12 05:49:27 UTC (rev 453)
+++ trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2007-08-14 14:04:35 UTC (rev 454)
@@ -11,32 +11,32 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>1565</integer>
+ <integer>1577</integer>
</dict>
<key>NSAccessibilityConnectors</key>
<dict>
<key>CF$UID</key>
- <integer>1562</integer>
+ <integer>1574</integer>
</dict>
<key>NSAccessibilityOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1563</integer>
+ <integer>1575</integer>
</dict>
<key>NSAccessibilityOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1564</integer>
+ <integer>1576</integer>
</dict>
<key>NSClassesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1256</integer>
+ <integer>1266</integer>
</dict>
<key>NSClassesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1257</integer>
+ <integer>1267</integer>
</dict>
<key>NSConnections</key>
<dict>
@@ -56,34 +56,34 @@
<key>NSNamesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1190</integer>
+ <integer>1199</integer>
</dict>
<key>NSNamesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1191</integer>
+ <integer>1200</integer>
</dict>
<key>NSNextOid</key>
- <integer>1116</integer>
+ <integer>1119</integer>
<key>NSObjectsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1183</integer>
+ <integer>1192</integer>
</dict>
<key>NSObjectsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1189</integer>
+ <integer>1198</integer>
</dict>
<key>NSOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1258</integer>
+ <integer>1268</integer>
</dict>
<key>NSOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1259</integer>
+ <integer>1269</integer>
</dict>
<key>NSRoot</key>
<dict>
@@ -160,267 +160,263 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>833</integer>
+ <integer>836</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>840</integer>
+ <integer>845</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>841</integer>
+ <integer>846</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>845</integer>
+ <integer>850</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>848</integer>
+ <integer>853</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>851</integer>
+ <integer>856</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>854</integer>
+ <integer>859</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>857</integer>
+ <integer>862</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>860</integer>
+ <integer>865</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>863</integer>
+ <integer>868</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>866</integer>
+ <integer>871</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>869</integer>
+ <integer>874</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>872</integer>
+ <integer>877</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>875</integer>
+ <integer>880</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>878</integer>
+ <integer>883</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>881</integer>
+ <integer>886</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>884</integer>
+ <integer>889</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>887</integer>
+ <integer>892</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>890</integer>
+ <integer>895</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>893</integer>
+ <integer>898</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>896</integer>
+ <integer>901</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>899</integer>
+ <integer>904</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>902</integer>
+ <integer>907</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>905</integer>
+ <integer>910</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>914</integer>
+ <integer>919</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>921</integer>
+ <integer>926</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>924</integer>
+ <integer>929</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>925</integer>
+ <integer>930</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>927</integer>
+ <integer>932</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>936</integer>
+ <integer>941</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>939</integer>
+ <integer>944</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>943</integer>
+ <integer>948</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>959</integer>
+ <integer>964</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>963</integer>
+ <integer>968</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>967</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>972</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>975</integer>
+ <integer>977</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>978</integer>
+ <integer>980</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>981</integer>
+ <integer>983</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>987</integer>
+ <integer>986</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>990</integer>
+ <integer>992</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>993</integer>
+ <integer>995</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>997</integer>
+ <integer>998</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>999</integer>
+ <integer>1002</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1001</integer>
+ <integer>1004</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1003</integer>
+ <integer>1006</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1005</integer>
+ <integer>1008</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1007</integer>
+ <integer>1010</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1008</integer>
+ <integer>1012</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1009</integer>
+ <integer>1013</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1010</integer>
+ <integer>1014</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1012</integer>
+ <integer>1015</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1015</integer>
+ <integer>1017</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1018</integer>
+ <integer>1020</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1021</integer>
+ <integer>1023</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1024</integer>
+ <integer>1026</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1031</integer>
+ <integer>1029</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1032</integer>
+ <integer>1036</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1033</integer>
+ <integer>1037</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1034</integer>
+ <integer>1038</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1037</integer>
+ <integer>1039</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1038</integer>
+ <integer>1042</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1041</integer>
+ <integer>1043</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1044</integer>
+ <integer>1046</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1045</integer>
+ <integer>1049</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1048</integer>
+ <integer>1050</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -428,19 +424,19 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1054</integer>
+ <integer>1058</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1055</integer>
+ <integer>1059</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1056</integer>
+ <integer>1060</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1057</integer>
+ <integer>1061</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -448,11 +444,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1066</integer>
+ <integer>1067</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1072</integer>
+ <integer>1071</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -460,47 +456,43 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1081</integer>
+ <integer>1082</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1085</integer>
+ <integer>1086</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1087</integer>
+ <integer>1090</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1088</integer>
+ <integer>1092</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1091</integer>
+ <integer>1093</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1094</integer>
+ <integer>1096</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1098</integer>
+ <integer>1099</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1100</integer>
+ <integer>1103</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1102</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>1105</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1108</integer>
+ <integer>1107</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -508,7 +500,7 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1112</integer>
+ <integer>1113</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -516,15 +508,15 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1118</integer>
+ <integer>1117</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1121</integer>
+ <integer>1120</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1124</integer>
+ <integer>1123</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -532,35 +524,35 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1128</integer>
+ <integer>1129</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1129</integer>
+ <integer>1131</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1130</integer>
+ <integer>1133</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1131</integer>
+ <integer>1134</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1133</integer>
+ <integer>1135</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1135</integer>
+ <integer>1136</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1137</integer>
+ <integer>1138</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1139</integer>
+ <integer>1140</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -568,31 +560,31 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1145</integer>
+ <integer>1144</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1148</integer>
+ <integer>1147</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1151</integer>
+ <integer>1150</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1155</integer>
+ <integer>1153</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1157</integer>
+ <integer>1156</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1159</integer>
+ <integer>1160</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1161</integer>
+ <integer>1162</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -604,32 +596,44 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1168</integer>
+ <integer>1169</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1170</integer>
+ <integer>1171</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1172</integer>
+ <integer>1173</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1174</integer>
+ <integer>1175</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1176</integer>
+ <integer>1177</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1178</integer>
+ <integer>1179</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1180</integer>
+ <integer>1181</integer>
</dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1183</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1185</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1188</integer>
+ </dict>
</array>
</dict>
<dict>
@@ -689,12 +693,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>118</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>322</integer>
+ <integer>220</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -704,7 +708,7 @@
<key>NSSubviews</key>
<dict>
<key>CF$UID</key>
- <integer>256</integer>
+ <integer>123</integer>
</dict>
</dict>
<string>{{18, 127}, {105, 18}}</string>
@@ -1124,7 +1128,7 @@
<key>NSLabel</key>
<dict>
<key>CF$UID</key>
- <integer>832</integer>
+ <integer>835</integer>
</dict>
<key>NSSource</key>
<dict>
@@ -1136,22 +1140,22 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>831</integer>
+ <integer>834</integer>
</dict>
<key>NSMaxSize</key>
<dict>
<key>CF$UID</key>
- <integer>830</integer>
+ <integer>833</integer>
</dict>
<key>NSMinSize</key>
<dict>
<key>CF$UID</key>
- <integer>829</integer>
+ <integer>832</integer>
</dict>
<key>NSScreenRect</key>
<dict>
<key>CF$UID</key>
- <integer>828</integer>
+ <integer>831</integer>
</dict>
<key>NSViewClass</key>
<dict>
@@ -1211,12 +1215,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>118</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>827</integer>
+ <integer>830</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1243,11 +1247,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>789</integer>
+ <integer>792</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>822</integer>
+ <integer>825</integer>
</dict>
</array>
</dict>
@@ -1255,7 +1259,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>788</integer>
+ <integer>791</integer>
</dict>
<key>NSAllowTruncatedLabels</key>
<true/>
@@ -1269,7 +1273,7 @@
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>252</integer>
+ <integer>119</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1279,7 +1283,7 @@
<key>NSSelectedTabViewItem</key>
<dict>
<key>CF$UID</key>
- <integer>366</integer>
+ <integer>789</integer>
</dict>
<key>NSSubviews</key>
<dict>
@@ -1294,7 +1298,7 @@
<key>NSTabViewItems</key>
<dict>
<key>CF$UID</key>
- <integer>253</integer>
+ <integer>120</integer>
</dict>
<key>NSTvFlags</key>
<integer>4</integer>
@@ -1317,12 +1321,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>118</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>251</integer>
+ <integer>117</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1354,19 +1358,19 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>56</integer>
+ <integer>101</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>60</integer>
+ <integer>105</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>64</integer>
+ <integer>109</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>211</integer>
+ <integer>113</integer>
</dict>
</array>
</dict>
@@ -1374,25 +1378,71 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>23</integer>
+ <integer>100</integer>
</dict>
- <key>NSCell</key>
+ <key>NSBackgroundColor</key>
<dict>
<key>CF$UID</key>
+ <integer>94</integer>
+ </dict>
+ <key>NSCellBackgroundColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>99</integer>
+ </dict>
+ <key>NSCellClass</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>92</integer>
+ </dict>
+ <key>NSCellSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>90</integer>
+ </dict>
+ <key>NSCells</key>
+ <dict>
+ <key>CF$UID</key>
<integer>54</integer>
</dict>
<key>NSEnabled</key>
<true/>
+ <key>NSFont</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
<integer>53</integer>
</dict>
+ <key>NSIntercellSpacing</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>91</integer>
+ </dict>
+ <key>NSMatrixFlags</key>
+ <integer>1143472128</integer>
<key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
<integer>50</integer>
</dict>
+ <key>NSNumCols</key>
+ <integer>2</integer>
+ <key>NSNumRows</key>
+ <integer>8</integer>
+ <key>NSProtoCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>93</integer>
+ </dict>
+ <key>NSSelectedCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>55</integer>
+ </dict>
<key>NSSuperview</key>
<dict>
<key>CF$UID</key>
@@ -1401,11 +1451,85 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{378, 287}, {198, 18}}</string>
+ <string>{{13, 146}, {244, 158}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>55</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>59</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>63</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>65</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>67</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>69</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>71</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>73</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>77</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>79</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>81</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>83</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>85</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>87</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
<integer>22</integer>
</dict>
<key>NSAlternateContents</key>
@@ -1416,20 +1540,20 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>18</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>2</integer>
+ <integer>0</integer>
<key>NSCellFlags</key>
- <integer>67239424</integer>
+ <integer>-2080244224</integer>
<key>NSCellFlags2</key>
<integer>0</integer>
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>55</integer>
+ <integer>56</integer>
</dict>
<key>NSControlView</key>
<dict>
@@ -1450,40 +1574,75 @@
<key>CF$UID</key>
<integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>2</integer>
</dict>
- <string>Kempston joystick interface</string>
+ <string>None</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>23</integer>
+ <integer>20</integer>
</dict>
- <key>NSCell</key>
+ <key>NSImageName</key>
<dict>
<key>CF$UID</key>
<integer>58</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
- <key>NSFrame</key>
+ </dict>
+ <string>NSRadioButton</string>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSAlternateImage</key>
+ <dict>
+ <key>CF$UID</key>
<integer>57</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>60</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>52</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>12</integer>
</dict>
- <string>{{378, 243}, {138, 18}}</string>
+ <string>Timex TV</string>
<dict>
<key>$class</key>
<dict>
@@ -1498,12 +1657,12 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>18</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>2</integer>
+ <integer>0</integer>
<key>NSCellFlags</key>
<integer>67239424</integer>
<key>NSCellFlags2</key>
@@ -1511,12 +1670,12 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>59</integer>
+ <integer>62</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>56</integer>
+ <integer>52</integer>
</dict>
<key>NSKeyEquivalent</key>
<dict>
@@ -1524,48 +1683,70 @@
<integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>200</integer>
+ <integer>400</integer>
<key>NSPeriodicInterval</key>
- <integer>25</integer>
+ <integer>75</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>5</integer>
</dict>
- <string>Interface II</string>
+ <string>2xSaI</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>23</integer>
+ <integer>22</integer>
</dict>
- <key>NSCell</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>62</integer>
+ <integer>21</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
- <key>NSFrame</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>61</integer>
+ <integer>57</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>64</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>52</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>15</integer>
</dict>
- <string>{{378, 265}, {187, 18}}</string>
+ <string>PAL TV</string>
<dict>
<key>$class</key>
<dict>
@@ -1580,12 +1761,12 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>18</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>2</integer>
+ <integer>0</integer>
<key>NSCellFlags</key>
<integer>67239424</integer>
<key>NSCellFlags2</key>
@@ -1593,12 +1774,12 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>63</integer>
+ <integer>66</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>60</integer>
+ <integer>52</integer>
</dict>
<key>NSKeyEquivalent</key>
<dict>
@@ -1606,257 +1787,226 @@
<integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>200</integer>
+ <integer>400</integer>
<key>NSPeriodicInterval</key>
- <integer>25</integer>
+ <integer>75</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>6</integer>
</dict>
- <string>Kempston mouse</string>
+ <string>Super 2xSaI</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>210</integer>
+ <integer>22</integer>
</dict>
- <key>NSBorderType</key>
- <integer>3</integer>
- <key>NSBoxType</key>
- <integer>0</integer>
- <key>NSContentView</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>66</integer>
+ <integer>21</integer>
</dict>
- <key>NSFrame</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>201</integer>
+ <integer>57</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>68</integer>
</dict>
- <key>NSOffsets</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>202</integer>
+ <integer>52</integer>
</dict>
- <key>NSSubviews</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>65</integer>
+ <integer>21</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>15</integer>
</dict>
- <key>NSTitleCell</key>
- <dict>
- <key>CF$UID</key>
- <integer>203</integer>
- </dict>
- <key>NSTitlePosition</key>
- <integer>2</integer>
- <key>NSTransparent</key>
- <false/>
+ <key>NSTag</key>
+ <integer>16</integer>
</dict>
+ <string>PAL TV 2x</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>22</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>66</integer>
- </dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>21</integer>
</dict>
- <key>NSFrame</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>199</integer>
+ <integer>57</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>64</integer>
+ <integer>70</integer>
</dict>
- <key>NSSubviews</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>67</integer>
+ <integer>52</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>64</integer>
+ <integer>21</integer>
</dict>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>15</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>68</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>131</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>135</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>139</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>143</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>147</integer>
- </dict>
- </array>
+ <key>NSTag</key>
+ <integer>7</integer>
</dict>
+ <string>SuperEagle</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>130</integer>
+ <integer>22</integer>
</dict>
- <key>NSBackgroundColor</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>125</integer>
+ <integer>21</integer>
</dict>
- <key>NSCellBackgroundColor</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>129</integer>
+ <integer>57</integer>
</dict>
- <key>NSCellClass</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>122</integer>
+ <integer>72</integer>
</dict>
- <key>NSCellSize</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>120</integer>
+ <integer>52</integer>
</dict>
- <key>NSCells</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>70</integer>
+ <integer>21</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
- <key>NSFont</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
- <key>NSFrame</key>
+ <key>NSTag</key>
+ <integer>17</integer>
+ </dict>
+ <string>PAL TV 3x</string>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>69</integer>
+ <integer>22</integer>
</dict>
- <key>NSIntercellSpacing</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>121</integer>
+ <integer>21</integer>
</dict>
- <key>NSMatrixFlags</key>
- <integer>1076363264</integer>
- <key>NSNextResponder</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>66</integer>
+ <integer>57</integer>
</dict>
- <key>NSNumCols</key>
- <integer>1</integer>
- <key>NSNumRows</key>
- <integer>7</integer>
- <key>NSProtoCell</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>123</integer>
+ <integer>74</integer>
</dict>
- <key>NSSelectedCell</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>71</integer>
+ <integer>52</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>66</integer>
+ <integer>21</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
- </dict>
- <string>{{18, 16}, {138, 138}}</string>
- <dict>
- <key>$class</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>15</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>71</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>75</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>78</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>93</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>101</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>109</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>117</integer>
- </dict>
- </array>
+ <key>NSTag</key>
+ <integer>8</integer>
</dict>
+ <string>AdvMAME 2x</string>
<dict>
<key>$class</key>
<dict>
@@ -1871,25 +2021,25 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>2</integer>
+ <integer>0</integer>
<key>NSCellFlags</key>
- <integer>-2080244224</integer>
+ <integer>67239424</integer>
<key>NSCellFlags2</key>
<integer>0</integer>
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>72</integer>
+ <integer>76</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>52</integer>
</dict>
<key>NSKeyEquivalent</key>
<dict>
@@ -1897,29 +2047,70 @@
<integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>200</integer>
+ <integer>400</integer>
<key>NSPeriodicInterval</key>
- <integer>25</integer>
+ <integer>75</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>18</integer>
</dict>
- <string>None</string>
+ <string>HQ 2x</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>20</integer>
+ <integer>22</integer>
</dict>
- <key>NSImageName</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>74</integer>
+ <integer>21</integer>
</dict>
+ <key>NSAlternateImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>57</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>2</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>78</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>52</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>9</integer>
</dict>
- <string>NSRadioButton</string>
+ <string>AdvMAME 3x</string>
<dict>
<key>$class</key>
<dict>
@@ -1929,12 +2120,12 @@
<key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>77</integer>
+ <integer>21</integer>
</dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
@@ -1947,50 +2138,46 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>76</integer>
+ <integer>80</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>52</integer>
</dict>
<key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>77</integer>
+ <integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>200</integer>
+ <integer>400</integer>
<key>NSPeriodicInterval</key>
- <integer>25</integer>
+ <integer>75</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
<key>NSTag</key>
- <integer>1</integer>
+ <integer>19</integer>
</dict>
- <string>Interface I</string>
+ <string>HQ 3x</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>22</integer>
</dict>
- <key>NS.string</key>
- <string></string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>22</integer>
+ <integer>21</integer>
</dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
@@ -2003,17 +2190,17 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>79</integer>
+ <integer>82</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>52</integer>
</dict>
- <key>NSNormalImage</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>80</integer>
+ <integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
<integer>400</integer>
@@ -2025,185 +2212,76 @@
<integer>15</integer>
</dict>
<key>NSTag</key>
- <integer>2</integer>
+ <integer>10</integer>
</dict>
- <string>Simple 8-bit IDE</string>
+ <string>TV 2x</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>92</integer>
+ <integer>22</integer>
</dict>
- <key>NSColor</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>90</integer>
+ <integer>21</integer>
</dict>
- <key>NSImageFlags</key>
- <integer>549453824</integer>
- <key>NSReps</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>82</integer>
+ <integer>57</integer>
</dict>
- <key>NSSize</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>81</integer>
+ <integer>84</integer>
</dict>
- </dict>
- <string>{18, 18}</string>
- <dict>
- <key>$class</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>52</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>83</integer>
- </dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>88</integer>
+ <integer>21</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>84</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>85</integer>
- </dict>
- </array>
- </dict>
- <integer>0</integer>
- <dict>
- <key>$class</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>87</integer>
+ <integer>15</integer>
</dict>
- <key>NSTIFFRepresentation</key>
- <dict>
- <key>CF$UID</key>
- <integer>86</integer>
- </dict>
+ <key>NSTag</key>
+ <integer>13</integer>
</dict>
- <data>
- TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
- AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
- 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
- ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
- /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
- AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
- 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
- eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
- /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
- 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
- AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
- 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
- /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
- AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
- +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
- LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
- /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
- ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
- AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
- ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
- ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
- AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
- AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
- AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
- AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
- </data>
+ <string>Dot Matrix</string>
<dict>
- <key>$classes</key>
- <array>
- <string>NSBitmapImageRep</string>
- <string>NSImageRep</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSBitmapImageRep</string>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSArray</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSArray</string>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSMutableArray</string>
- <string>NSArray</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSMutableArray</string>
- </dict>
- <dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>91</integer>
+ <integer>22</integer>
</dict>
- <key>NSColorSpace</key>
- <integer>3</integer>
- <key>NSWhite</key>
- <data>
- MCAwAA==
- </data>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSColor</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSColor</string>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSImage</string>
- <string>%NSImage</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSImage</string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>22</integer>
+ <integer>21</integer>
</dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
@@ -2216,17 +2294,17 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>86</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>52</integer>
</dict>
- <key>NSNormalImage</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>95</integer>
+ <integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
<integer>400</integer>
@@ -2238,114 +2316,73 @@
<integer>15</integer>
</dict>
<key>NSTag</key>
- <integer>3</integer>
+ <integer>11</integer>
</dict>
- <string>ZXATASP interface</string>
+ <string>TV 3x</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>92</integer>
+ <integer>22</integer>
</dict>
- <key>NSColor</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>90</integer>
+ <integer>21</integer>
</dict>
- <key>NSImageFlags</key>
- <integer>549453824</integer>
- <key>NSReps</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>97</integer>
+ <integer>57</integer>
</dict>
- <key>NSSize</key>
+ <key>NSButtonFlags</key>
+ <integer>1211945471</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>96</integer>
+ <integer>88</integer>
</dict>
- </dict>
- <string>{18, 18}</string>
- <dict>
- <key>$class</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>52</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>98</integer>
- </dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>88</integer>
+ <integer>21</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>84</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>99</integer>
- </dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>87</integer>
+ <integer>15</integer>
</dict>
- <key>NSTIFFRepresentation</key>
- <dict>
- <key>CF$UID</key>
- <integer>100</integer>
- </dict>
</dict>
- <data>
- TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
- AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
- 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
- ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
- /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
- AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
- 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
- eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
- /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
- 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
- AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
- 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
- /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
- AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
- +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
- LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
- /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
- ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
- AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
- ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
- ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
- AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
- AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
- AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
- AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
- </data>
+ <string>Radio</string>
<dict>
+ <key>$classes</key>
+ <array>
+ <string>NSMutableArray</string>
+ <string>NSArray</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSMutableArray</string>
+ </dict>
+ <string>{120, 18}</string>
+ <string>{4, 2}</string>
+ <string>NSActionCell</string>
+ <dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
@@ -2354,10 +2391,10 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>57</integer>
</dict>
<key>NSButtonFlags</key>
- <integer>1211912703</integer>
+ <integer>1211650559</integer>
<key>NSButtonFlags2</key>
<integer>0</integer>
<key>NSCellFlags</key>
@@ -2367,18 +2404,8 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>102</integer>
+ <integer>88</integer>
</dict>
- <key>NSControlView</key>
- <dict>
- <key>CF$UID</key>
- <integer>68</integer>
- </dict>
- <key>NSNormalImage</key>
- <dict>
- <key>CF$UID</key>
- <integer>103</integer>
- </dict>
<key>NSPeriodicDelay</key>
<integer>400</integer>
<key>NSPeriodicInterval</key>
@@ -2388,129 +2415,133 @@
<key>CF$UID</key>
<integer>15</integer>
</dict>
- <key>NSTag</key>
- <integer>4</integer>
</dict>
- <string>ZXCF interface</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>92</integer>
+ <integer>98</integer>
</dict>
- <key>NSColor</key>
+ <key>NSCatalogName</key>
<dict>
<key>CF$UID</key>
- <integer>90</integer>
+ <integer>95</integer>
</dict>
- <key>NSImageFlags</key>
- <integer>549453824</integer>
- <key>NSReps</key>
+ <key>NSColor</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>97</integer>
</dict>
- <key>NSSize</key>
+ <key>NSColorName</key>
<dict>
<key>CF$UID</key>
- <integer>104</integer>
+ <integer>96</integer>
</dict>
+ <key>NSColorSpace</key>
+ <integer>6</integer>
</dict>
- <string>{18, 18}</string>
+ <string>System</string>
+ <string>controlColor</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>98</integer>
</dict>
- <key>NS.objects</key>
+ <key>NSColorSpace</key>
+ <integer>3</integer>
+ <key>NSWhite</key>
+ <data>
+ MC42NjY2NjY2OQA=
+ </data>
+ </dict>
+ <dict>
+ <key>$classes</key>
<array>
- <dict>
- <key>CF$UID</key>
- <integer>106</integer>
- </dict>
+ <string>NSColor</string>
+ <string>NSObject</string>
</array>
+ <key>$classname</key>
+ <string>NSColor</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>88</integer>
+ <integer>98</integer>
</dict>
- <key>NS.objects</key>
+ <key>NSColorSpace</key>
+ <integer>3</integer>
+ <key>NSWhite</key>
+ <data>
+ MQA=
+ </data>
+ </dict>
+ <dict>
+ <key>$classes</key>
<array>
- <dict>
- <key>CF$UID</key>
- <integer>84</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>107</integer>
- </dict>
+ <string>NSMatrix</string>
+ <string>%NSMatrix</string>
+ <string>NSControl</string>
+ <string>NSView</string>
+ <string>NSResponder</string>
+ <string>NSObject</string>
</array>
+ <key>$classname</key>
+ <string>NSMatrix</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>87</integer>
+ <integer>23</integer>
</dict>
- <key>NSTIFFRepresentation</key>
+ <key>NSCell</key>
<dict>
<key>CF$UID</key>
- <integer>108</integer>
+ <integer>103</integer>
</dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>102</integer>
+ </dict>
+ <key>NSNextResponder</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>50</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>50</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
</dict>
- <data>
- TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
- AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
- 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
- ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
- /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
- AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
- 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
- eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
- /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
- 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
- AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
- 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
- /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
- AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
- +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
- LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
- /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
- ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
- AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
- ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
- ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
- AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
- AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
- AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
- AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
- AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
- </data>
+ <string>{{13, 104}, {151, 18}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>22</integer>
</dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>18</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>0</integer>
+ <integer>2</integer>
<key>NSCellFlags</key>
<integer>67239424</integer>
<key>NSCellFlags2</key>
@@ -2518,204 +2549,143 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>110</integer>
+ <integer>104</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>101</integer>
</dict>
- <key>NSNormalImage</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>111</integer>
+ <integer>21</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>400</integer>
+ <integer>200</integer>
<key>NSPeriodicInterval</key>
- <integer>75</integer>
+ <integer>25</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
- <key>NSTag</key>
- <integer>5</integer>
</dict>
- <string>DivIDE</string>
+ <string>Black and white TV</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>92</integer>
+ <integer>23</integer>
</dict>
- <key>NSColor</key>
+ <key>NSCell</key>
<dict>
<key>CF$UID</key>
- <integer>90</integer>
+ <integer>107</integer>
</dict>
- <key>NSImageFlags</key>
- <integer>549453824</integer>
- <key>NSReps</key>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>113</integer>
+ <integer>106</integer>
</dict>
- <key>NSSize</key>
+ <key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>112</integer>
+ <integer>50</integer>
</dict>
- </dict>
- <string>{18, 18}</string>
- <dict>
- <key>$class</key>
+ <key>NSSuperview</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>50</integer>
</dict>
- <...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-12 05:49:32
|
Revision: 453
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=453&view=rev
Author: fredm
Date: 2007-08-11 22:49:27 -0700 (Sat, 11 Aug 2007)
Log Message:
-----------
Rollback revision 434 now we understand what was causing the texture
distortion.
Revision Links:
--------------
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=434&view=rev
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/PreferencesController.m
trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
trunk/fuse/settings.dat
trunk/fuse/ui/cocoa/cocoadisplay.m
Modified: trunk/fuse/fusepb/controllers/PreferencesController.m
===================================================================
--- trunk/fuse/fusepb/controllers/PreferencesController.m 2007-08-12 00:30:35 UTC (rev 452)
+++ trunk/fuse/fusepb/controllers/PreferencesController.m 2007-08-12 05:49:27 UTC (rev 453)
@@ -142,6 +142,8 @@
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ int old_bilinear = settings_current.bilinear_filter;
+
/* Values in shared defaults have been updated, pass them onto Fuse */
read_config_file( &settings_current );
@@ -152,8 +154,9 @@
// B&W TV status may have changed
display_refresh_all();
- if( current_scaler != scaler_get_type(settings_current.start_scaler_mode)
- && !scaler_select_id(settings_current.start_scaler_mode) ) {
+ if( ( ( current_scaler != scaler_get_type(settings_current.start_scaler_mode) )
+ && !scaler_select_id(settings_current.start_scaler_mode) ) ||
+ old_bilinear != settings_current.bilinear_filter ) {
uidisplay_hotswap_gfx_mode();
}
Modified: trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
===================================================================
--- trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2007-08-12 00:30:35 UTC (rev 452)
+++ trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2007-08-12 05:49:27 UTC (rev 453)
@@ -11,32 +11,32 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>1569</integer>
+ <integer>1565</integer>
</dict>
<key>NSAccessibilityConnectors</key>
<dict>
<key>CF$UID</key>
- <integer>1566</integer>
+ <integer>1562</integer>
</dict>
<key>NSAccessibilityOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1567</integer>
+ <integer>1563</integer>
</dict>
<key>NSAccessibilityOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1568</integer>
+ <integer>1564</integer>
</dict>
<key>NSClassesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1260</integer>
+ <integer>1256</integer>
</dict>
<key>NSClassesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1261</integer>
+ <integer>1257</integer>
</dict>
<key>NSConnections</key>
<dict>
@@ -56,34 +56,34 @@
<key>NSNamesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1195</integer>
+ <integer>1190</integer>
</dict>
<key>NSNamesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1196</integer>
+ <integer>1191</integer>
</dict>
<key>NSNextOid</key>
- <integer>1053</integer>
+ <integer>1116</integer>
<key>NSObjectsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1188</integer>
+ <integer>1183</integer>
</dict>
<key>NSObjectsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1194</integer>
+ <integer>1189</integer>
</dict>
<key>NSOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1262</integer>
+ <integer>1258</integer>
</dict>
<key>NSOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1263</integer>
+ <integer>1259</integer>
</dict>
<key>NSRoot</key>
<dict>
@@ -142,7 +142,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -160,151 +160,159 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>841</integer>
+ <integer>833</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>850</integer>
+ <integer>840</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>851</integer>
+ <integer>841</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>855</integer>
+ <integer>845</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>858</integer>
+ <integer>848</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>861</integer>
+ <integer>851</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>864</integer>
+ <integer>854</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>867</integer>
+ <integer>857</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>870</integer>
+ <integer>860</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>873</integer>
+ <integer>863</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>876</integer>
+ <integer>866</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>879</integer>
+ <integer>869</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>882</integer>
+ <integer>872</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>885</integer>
+ <integer>875</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>888</integer>
+ <integer>878</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>891</integer>
+ <integer>881</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>894</integer>
+ <integer>884</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>897</integer>
+ <integer>887</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>900</integer>
+ <integer>890</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>903</integer>
+ <integer>893</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>906</integer>
+ <integer>896</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>909</integer>
+ <integer>899</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>912</integer>
+ <integer>902</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>915</integer>
+ <integer>905</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>923</integer>
+ <integer>914</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>930</integer>
+ <integer>921</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>933</integer>
+ <integer>924</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>934</integer>
+ <integer>925</integer>
</dict>
<dict>
<key>CF$UID</key>
+ <integer>927</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
<integer>936</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>945</integer>
+ <integer>939</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>948</integer>
+ <integer>943</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>952</integer>
+ <integer>959</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>968</integer>
+ <integer>963</integer>
</dict>
<dict>
<key>CF$UID</key>
+ <integer>967</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
<integer>972</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>976</integer>
+ <integer>975</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>981</integer>
+ <integer>978</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>984</integer>
+ <integer>981</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -316,51 +324,55 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>996</integer>
+ <integer>993</integer>
</dict>
<dict>
<key>CF$UID</key>
+ <integer>997</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
<integer>999</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1002</integer>
+ <integer>1001</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1006</integer>
+ <integer>1003</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1008</integer>
+ <integer>1005</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1010</integer>
+ <integer>1007</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1012</integer>
+ <integer>1008</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1014</integer>
+ <integer>1009</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1016</integer>
+ <integer>1010</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1017</integer>
+ <integer>1012</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1018</integer>
+ <integer>1015</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1019</integer>
+ <integer>1018</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -372,11 +384,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1027</integer>
+ <integer>1031</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1030</integer>
+ <integer>1032</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -384,31 +396,31 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1040</integer>
+ <integer>1034</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1041</integer>
+ <integer>1037</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1042</integer>
+ <integer>1038</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1043</integer>
+ <integer>1041</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1046</integer>
+ <integer>1044</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1047</integer>
+ <integer>1045</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1050</integer>
+ <integer>1048</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -420,59 +432,59 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1057</integer>
+ <integer>1055</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1062</integer>
+ <integer>1056</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1063</integer>
+ <integer>1057</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1064</integer>
+ <integer>1062</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1065</integer>
+ <integer>1066</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1066</integer>
+ <integer>1072</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1071</integer>
+ <integer>1077</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1075</integer>
+ <integer>1081</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1081</integer>
+ <integer>1085</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1086</integer>
+ <integer>1087</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1090</integer>
+ <integer>1088</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1094</integer>
+ <integer>1091</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1096</integer>
+ <integer>1094</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1097</integer>
+ <integer>1098</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -480,31 +492,31 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1103</integer>
+ <integer>1102</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1107</integer>
+ <integer>1105</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1109</integer>
+ <integer>1108</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1111</integer>
+ <integer>1110</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1114</integer>
+ <integer>1112</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1117</integer>
+ <integer>1115</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1119</integer>
+ <integer>1118</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -516,47 +528,47 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1127</integer>
+ <integer>1126</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1130</integer>
+ <integer>1128</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1133</integer>
+ <integer>1129</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1135</integer>
+ <integer>1130</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1137</integer>
+ <integer>1131</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1138</integer>
+ <integer>1133</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1139</integer>
+ <integer>1135</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1140</integer>
+ <integer>1137</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1142</integer>
+ <integer>1139</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1144</integer>
+ <integer>1142</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1146</integer>
+ <integer>1145</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -568,60 +580,56 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1154</integer>
+ <integer>1155</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1158</integer>
+ <integer>1157</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1161</integer>
+ <integer>1159</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1163</integer>
+ <integer>1161</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1165</integer>
+ <integer>1164</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1167</integer>
+ <integer>1166</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1169</integer>
+ <integer>1168</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1171</integer>
+ <integer>1170</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1173</integer>
+ <integer>1172</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1175</integer>
+ <integer>1174</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1177</integer>
+ <integer>1176</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1179</integer>
+ <integer>1178</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1181</integer>
+ <integer>1180</integer>
</dict>
- <dict>
- <key>CF$UID</key>
- <integer>1184</integer>
- </dict>
</array>
</dict>
<dict>
@@ -681,12 +689,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>96</integer>
+ <integer>200</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>199</integer>
+ <integer>322</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -696,10 +704,10 @@
<key>NSSubviews</key>
<dict>
<key>CF$UID</key>
- <integer>101</integer>
+ <integer>256</integer>
</dict>
</dict>
- <string>{{18, 103}, {105, 18}}</string>
+ <string>{{18, 127}, {105, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -854,7 +862,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{187, 183}, {151, 18}}</string>
+ <string>{{187, 207}, {151, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -969,7 +977,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 183}, {113, 18}}</string>
+ <string>{{18, 207}, {113, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -1051,7 +1059,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 123}, {165, 18}}</string>
+ <string>{{18, 147}, {165, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -1116,7 +1124,7 @@
<key>NSLabel</key>
<dict>
<key>CF$UID</key>
- <integer>840</integer>
+ <integer>832</integer>
</dict>
<key>NSSource</key>
<dict>
@@ -1128,22 +1136,22 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>839</integer>
+ <integer>831</integer>
</dict>
<key>NSMaxSize</key>
<dict>
<key>CF$UID</key>
- <integer>838</integer>
+ <integer>830</integer>
</dict>
<key>NSMinSize</key>
<dict>
<key>CF$UID</key>
- <integer>837</integer>
+ <integer>829</integer>
</dict>
<key>NSScreenRect</key>
<dict>
<key>CF$UID</key>
- <integer>836</integer>
+ <integer>828</integer>
</dict>
<key>NSViewClass</key>
<dict>
@@ -1177,7 +1185,7 @@
<integer>46</integer>
</dict>
</dict>
- <string>{{153, 336}, {634, 393}}</string>
+ <string>{{153, 301}, {634, 423}}</string>
<string>Preferences</string>
<string>NSPanel</string>
<dict>
@@ -1203,12 +1211,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>96</integer>
+ <integer>200</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>835</integer>
+ <integer>827</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1225,7 +1233,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1235,11 +1243,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>797</integer>
+ <integer>789</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>830</integer>
+ <integer>822</integer>
</dict>
</array>
</dict>
@@ -1247,7 +1255,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>796</integer>
+ <integer>788</integer>
</dict>
<key>NSAllowTruncatedLabels</key>
<true/>
@@ -1261,7 +1269,7 @@
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>97</integer>
+ <integer>252</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1271,7 +1279,7 @@
<key>NSSelectedTabViewItem</key>
<dict>
<key>CF$UID</key>
- <integer>202</integer>
+ <integer>366</integer>
</dict>
<key>NSSubviews</key>
<dict>
@@ -1286,7 +1294,7 @@
<key>NSTabViewItems</key>
<dict>
<key>CF$UID</key>
- <integer>98</integer>
+ <integer>253</integer>
</dict>
<key>NSTvFlags</key>
<integer>4</integer>
@@ -1295,7 +1303,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1309,12 +1317,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>96</integer>
+ <integer>200</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>95</integer>
+ <integer>251</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1336,7 +1344,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1358,16 +1366,8 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>72</integer>
+ <integer>211</integer>
</dict>
- <dict>
- <key>CF$UID</key>
- <integer>76</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>90</integer>
- </dict>
</array>
</dict>
<dict>
@@ -1401,7 +1401,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 168}, {154, 18}}</string>
+ <string>{{378, 287}, {198, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -1451,7 +1451,7 @@
<integer>15</integer>
</dict>
</dict>
- <string>AY stereo seperation</string>
+ <string>Kempston joystick interface</string>
<dict>
<key>$class</key>
<dict>
@@ -1483,7 +1483,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 146}, {162, 18}}</string>
+ <string>{{378, 243}, {138, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -1533,7 +1533,7 @@
<integer>15</integer>
</dict>
</dict>
- <string>Beeper pseudo-stereo</string>
+ <string>Interface II</string>
<dict>
<key>$class</key>
<dict>
@@ -1565,7 +1565,7 @@
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 190}, {126, 18}}</string>
+ <string>{{378, 265}, {187, 18}}</string>
<dict>
<key>$class</key>
<dict>
@@ -1615,166 +1615,252 @@
<integer>15</integer>
</dict>
</dict>
- <string>Loading sounds</string>
+ <string>Kempston mouse</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>71</integer>
+ <integer>210</integer>
</dict>
- <key>NSCell</key>
+ <key>NSBorderType</key>
+ <integer>3</integer>
+ <key>NSBoxType</key>
+ <integer>0</integer>
+ <key>NSContentView</key>
<dict>
<key>CF$UID</key>
<integer>66</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>65</integer>
+ <integer>201</integer>
</dict>
<key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
<integer>50</integer>
</dict>
+ <key>NSOffsets</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>202</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>65</integer>
+ </dict>
<key>NSSuperview</key>
<dict>
<key>CF$UID</key>
<integer>50</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
+ <key>NSTitleCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>203</integer>
+ </dict>
+ <key>NSTitlePosition</key>
+ <integer>2</integer>
+ <key>NSTransparent</key>
+ <false/>
</dict>
- <string>{{97, 222}, {115, 25}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>70</integer>
+ <integer>89</integer>
</dict>
- <key>NSAllowsTickMarkValuesOnly</key>
- <true/>
- <key>NSAltIncValue</key>
- <real>0.0</real>
- <key>NSCellFlags</key>
- <integer>67239424</integer>
- <key>NSCellFlags2</key>
- <integer>0</integer>
- <key>NSContents</key>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>66</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>67</integer>
+ <integer>200</integer>
</dict>
- <key>NSControlView</key>
+ <key>NSFrame</key>
<dict>
<key>CF$UID</key>
+ <integer>199</integer>
+ </dict>
+ <key>NSNextResponder</key>
+ <dict>
+ <key>CF$UID</key>
<integer>64</integer>
</dict>
- <key>NSMaxValue</key>
- <real>8</real>
- <key>NSMinValue</key>
- <real>3</real>
- <key>NSNumberOfTickMarks</key>
- <integer>6</integer>
- <key>NSSupport</key>
+ <key>NSSubviews</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>67</integer>
</dict>
- <key>NSTickMarkPosition</key>
- <integer>0</integer>
- <key>NSValue</key>
- <real>8</real>
- <key>NSVertical</key>
- <false/>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>64</integer>
+ </dict>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>89</integer>
</dict>
- <key>NS.string</key>
- <string></string>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>135</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>139</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>143</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>147</integer>
+ </dict>
+ </array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>17</integer>
+ <integer>130</integer>
</dict>
- <key>NSName</key>
+ <key>NSBackgroundColor</key>
<dict>
<key>CF$UID</key>
- <integer>69</integer>
+ <integer>125</integer>
</dict>
- <key>NSSize</key>
- <real>12</real>
- <key>NSfFlags</key>
- <integer>16</integer>
- </dict>
- <string>Helvetica</string>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSSliderCell</string>
- <string>NSActionCell</string>
- <string>NSCell</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSSliderCell</string>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSSlider</string>
- <string>NSControl</string>
- <string>NSView</string>
- <string>NSResponder</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSSlider</string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSCellBackgroundColor</key>
<dict>
<key>CF$UID</key>
- <integer>23</integer>
+ <integer>129</integer>
</dict>
- <key>NSCell</key>
+ <key>NSCellClass</key>
<dict>
<key>CF$UID</key>
- <integer>74</integer>
+ <integer>122</integer>
</dict>
+ <key>NSCellSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>120</integer>
+ </dict>
+ <key>NSCells</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>70</integer>
+ </dict>
<key>NSEnabled</key>
<true/>
+ <key>NSFont</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>69</integer>
</dict>
+ <key>NSIntercellSpacing</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>121</integer>
+ </dict>
+ <key>NSMatrixFlags</key>
+ <integer>1076363264</integer>
<key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>66</integer>
</dict>
+ <key>NSNumCols</key>
+ <integer>1</integer>
+ <key>NSNumRows</key>
+ <integer>7</integer>
+ <key>NSProtoCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>123</integer>
+ </dict>
+ <key>NSSelectedCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>71</integer>
+ </dict>
<key>NSSuperview</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>66</integer>
</dict>
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{18, 249}, {116, 18}}</string>
+ <string>{{18, 16}, {138, 138}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>71</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>78</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>93</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>101</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>109</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
<integer>22</integer>
</dict>
<key>NSAlternateContents</key>
@@ -1785,25 +1871,25 @@
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>18</integer>
+ <integer>73</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
<integer>2</integer>
<key>NSCellFlags</key>
- <integer>67239424</integer>
+ <integer>-2080244224</integer>
<key>NSCellFlags2</key>
<integer>0</integer>
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>72</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>72</integer>
+ <integer>68</integer>
</dict>
<key>NSKeyEquivalent</key>
<dict>
@@ -1820,54 +1906,100 @@
<integer>15</integer>
</dict>
</dict>
- <string>Enabled</string>
+ <string>None</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>89</integer>
+ <integer>20</integer>
</dict>
- <key>NSCell</key>
+ <key>NSImageName</key>
<dict>
<key>CF$UID</key>
- <integer>78</integer>
+ <integer>74</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
- <key>NSFrame</key>
+ </dict>
+ <string>NSRadioButton</string>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
<integer>77</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>73</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>76</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>77</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>200</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>25</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>1</integer>
</dict>
- <string>{{34, 226}, {60, 17}}</string>
+ <string>Interface I</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>88</integer>
+ <integer>45</integer>
</dict>
- <key>NSBackgroundColor</key>
+ <key>NS.string</key>
+ <string></string>
+ </dict>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>80</integer>
+ <integer>22</integer>
</dict>
+ <key>NSAlternateImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>73</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
<key>NSCellFlags</key>
<integer>67239424</integer>
<key>NSCellFlags2</key>
- <integer>4194304</integer>
+ <integer>0</integer>
<key>NSContents</key>
<dict>
<key>CF$UID</key>
@@ -1876,182 +2008,358 @@
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>76</integer>
+ <integer>68</integer>
</dict>
- <key>NSSupport</key>
+ <key>NSNormalImage</key>
<dict>
<key>CF$UID</key>
- <integer>15</integer>
+ <integer>80</integer>
</dict>
- <key>NSTextColor</key>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>85</integer>
+ <integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>2</integer>
</dict>
- <string>Volume</string>
+ <string>Simple 8-bit IDE</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>84</integer>
+ <integer>92</integer>
</dict>
- <key>NSCatalogName</key>
+ <key>NSColor</key>
<dict>
<key>CF$UID</key>
- <integer>81</integer>
+ <integer>90</integer>
</dict>
- <key>NSColor</key>
+ <key>NSImageFlags</key>
+ <integer>549453824</integer>
+ <key>NSReps</key>
<dict>
<key>CF$UID</key>
- <integer>83</integer>
+ <integer>82</integer>
</dict>
- <key>NSColorName</key>
+ <key>NSSize</key>
<dict>
<key>CF$UID</key>
- <integer>82</integer>
+ <integer>81</integer>
</dict>
- <key>NSColorSpace</key>
- <integer>6</integer>
</dict>
- <string>System</string>
- <string>controlColor</string>
+ <string>{18, 18}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>84</integer>
+ <integer>89</integer>
</dict>
- <key>NSColorSpace</key>
- <integer>3</integer>
- <key>NSWhite</key>
- <data>
- MC42NjY2NjY2OQA=
- </data>
- </dict>
- <dict>
- <key>$classes</key>
+ <key>NS.objects</key>
<array>
- <string>NSColor</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>83</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>NSColor</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>84</integer>
+ <integer>88</integer>
</dict>
- <key>NSCatalogName</key>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>84</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>85</integer>
+ </dict>
+ </array>
+ </dict>
+ <integer>0</integer>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>81</integer>
- </dict>
- <key>NSColor</key>
- <dict>
- <key>CF$UID</key>
<integer>87</integer>
</dict>
- <key>NSColorName</key>
+ <key>NSTIFFRepresentation</key>
<dict>
<key>CF$UID</key>
<integer>86</integer>
</dict>
- <key>NSColorSpace</key>
- <integer>6</integer>
</dict>
- <string>controlTextColor</string>
+ <data>
+ TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
+ AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
+ ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
+ /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+ AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
+ 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
+ eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
+ /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+ 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
+ AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
+ 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
+ /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+ AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
+ +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
+ LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
+ /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+ ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
+ AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
+ ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
+ ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
+ AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
+ AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
+ AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
+ </data>
<dict>
+ <key>$classes</key>
+ <array>
+ <string>NSBitmapImageRep</string>
+ <string>NSImageRep</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSBitmapImageRep</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSArray</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSArray</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSMutableArray</string>
+ <string>NSArray</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSMutableArray</string>
+ </dict>
+ <dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>84</integer>
+ <integer>91</integer>
</dict>
<key>NSColorSpace</key>
<integer>3</integer>
<key>NSWhite</key>
<data>
- MAA=
+ MCAwAA==
</data>
</dict>
<dict>
<key>$classes</key>
<array>
- <string>NSTextFieldCell</string>
- <string>NSActionCell</string>
- <string>NSCell</string>
+ <string>NSColor</string>
<string>NSObject</string>
</array>
<key>$classname</key>
- <string>NSTextFieldCell</string>
+ <string>NSColor</string>
</dict>
<dict>
<key>$classes</key>
<array>
- <string>NSTextField</string>
- <string>%NSTextField</string>
- <string>NSControl</string>
- <string>NSView</string>
- <string>NSResponder</string>
+ <string>NSImage</string>
+ <string>%NSImage</string>
<string>NSObject</string>
</array>
<key>$classname</key>
- <string>NSTextField</string>
+ <string>NSImage</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>23</integer>
+ <integer>22</integer>
</dict>
- <key>NSCell</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
+ <integer>73</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>94</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <key>NSNormalImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>95</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>3</integer>
+ </dict>
+ <string>ZXATASP interface</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
<integer>92</integer>
</dict>
- <key>NSEnabled</key>
- <true/>
- <key>NSFrame</key>
+ <key>NSColor</key>
<dict>
<key>CF$UID</key>
- <integer>91</integer>
+ <integer>90</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSImageFlags</key>
+ <integer>549453824</integer>
+ <key>NSReps</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>97</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSSize</key>
<dict>
<key>CF$UID</key>
- <integer>50</integer>
+ <integer>96</integer>
</dict>
- <key>NSvFlags</key>
- <integer>256</integer>
</dict>
- <string>{{18, 126}, {162, 18}}</string>
+ <string>{18, 18}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>22</integer>
+ <integer>89</integer>
</dict>
- <key>NSAlternateContents</key>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>98</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>21</integer>
+ <integer>88</integer>
</dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>84</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>99</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>87</integer>
+ </dict>
+ <key>NSTIFFRepresentation</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>100</integer>
+ </dict>
+ </dict>
+ <data>
+ TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
+ AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
+ ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
+ /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+ AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
+ 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
+ eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
+ /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+ 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
+ AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
+ 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
+ /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+ AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
+ +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
+ LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
+ /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+ ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
+ AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
+ ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
+ ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
+ AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
+ AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
+ AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
+ </data>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>18</integer>
+ <integer>73</integer>
</dict>
<key>NSButtonFlags</key>
<integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>2</integer>
+ <integer>0</integer>
<key>NSCellFlags</key>
<integer>67239424</integer>
<key>NSCellFlags2</key>
@@ -2059,224 +2367,548 @@
<key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>93</integer>
+ <integer>102</integer>
</dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>90</integer>
+ <integer>68</integer>
</dict>
- <key>NSKeyEquivalent</key>
+ <key>NSNormalImage</key>
<dict>
<key>CF$UID</key>
- <integer>21</integer>
+ <integer>103</integer>
</dict>
<key>NSPeriodicDelay</key>
- <integer>200</integer>
+ <integer>400</integer>
<key>NSPeriodicInterval</key>
- <integer>25</integer>
+ <integer>75</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
+ <key>NSTag</key>
+ <integer>4</integer>
</dict>
- <string>Hi-Fi beeper</string>
+ <string>ZXCF interface</string>
<dict>
- <key>$classes</key>
- <array>
- <string>NSMutableArray</string>
- <string>NSArray</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSMutableArray</string>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>92</integer>
+ </dict>
+ <key>NSColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>90</integer>
+ </dict>
+ <key>NSImageFlags</key>
+ <integer>549453824</integer>
+ <key>NSReps</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>105</integer>
+ </dict>
+ <key>NSSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>104</integer>
+ </dict>
</dict>
- <string>{{10, 7}, {585, 299}}</string>
+ <string>{18, 18}</string>
<dict>
- <key>$classes</key>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <key>NS.objects</key>
<array>
- <string>NSView</string>
- <string>NSResponder</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>106</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>NSView</string>
</dict>
- <string>{{13, 56}, {605, 319}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>88</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>99</integer>
+ <integer>84</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>202</integer>
+ <integer>107</integer>
</dict>
- <dict>
- <key>CF$UID</key>
- <integer>205</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>365</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>403</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>542</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>643</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>731</integer>
- </dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>201</integer>
+ <integer>87</integer>
</dict>
- <key>NSColor</key>
+ <key>NSTIFFRepresentation</key>
<dict>
<key>CF$UID</key>
- <integer>80</integer>
+ <integer>108</integer>
</dict>
- <key>NSIdentifier</key>
+ </dict>
+ <data>
+ TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
+ AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
+ ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
+ /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+ AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
+ 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
+ eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
+ /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+ 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
+ AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
+ 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
+ /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+ AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
+ +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
+ LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
+ /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+ ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
+ AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
+ ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
+ ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
+ AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ DQEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAAB
+ AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
+ AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQAB
+ </data>
+ <dict>
+ <key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>100</integer>
+ <integer>22</integer>
</dict>
- <key>NSLabel</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>73</integer>
</dict>
- <key>NSTabView</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>48</integer>
+ <integer>110</integer>
</dict>
- <key>NSView</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>11</integer>
+ <integer>68</integer>
</dict>
+ <key>NSNormalImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>111</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>5</integer>
</dict>
+ <string>DivIDE</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>92</integer>
</dict>
- <key>NS.string</key>
- <string>1</string>
+ <key>NSColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>90</integer>
+ </dict>
+ <key>NSImageFlags</key>
+ <integer>549453824</integer>
+ <key>NSReps</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>113</integer>
+ </dict>
+ <key>NSSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>112</integer>
+ </dict>
</dict>
+ <string>{18, 18}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>102</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>106</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>110</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>35</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>10</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>31</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>114</integer>
</dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>88</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>24</integer>
+ <integer>84</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>118</integer>
+ <integer>115</integer>
</dict>
- <dict>
- <key>CF$UID</key>
- <integer>187</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>191</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>195</integer>
- </dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>87</integer>
+ </dict>
+ <key>NSTIFFRepresentation</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>116</integer>
+ </dict>
+ </dict>
+ <data>
+ TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMA
+ AAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXwIyMjyRwcHIsJCQk8AAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAUZGRl5dXV198PDw//8/Pz/////////////////////////
+ ///U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAAAAAAAxEREUZqamrmtbW1
+ /+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+ AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z
+ 8/P/9fX1//Ly8v/u7u7/0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4
+ eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/7e3t/+3t7f/i4uL/zs7O
+ /8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+ 5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMA
+ AAADAAAALrCwsPrW1tb/3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn
+ 5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAADAAAALp2dnezg4OD/5eXl
+ /+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+ AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5
+ +fn/9/f3//b29v/x8fH/6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4u
+ LpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7//v7+//v7+//19fX/8PDw
+ /8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+ ///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAA
+ AAAAAAAAAwAAABcAAABlYmJi3NLS0v3/////////////////////////////
+ ///V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAAAAAAAAAAAAUAAAAfAAAA
+ ZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMA
+ AACzAAAAnwAAAHcAAABDAAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAuAAAAJAAAABcAAAAKAAAA
+ AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ DgEAAAMAAAABABIAAAEBAAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAAB
+ AAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
+ AAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+ AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgA
+ CAABAAEAAQABAAAMGGFwcGwCAAAAbW50clJHQiBYWVogB9UABAAdABcANAAG
+ YWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1h
+ cHBsFNph5E4SJug5D71eq3yMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3Rw
+ dAAAAWgAAAAUY2hhZAAAAXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAO
+ YlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAABOwAAAY+ZGVzYwAACywA
+ AABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
+ AAAAAG3kAABBJwAACL1YWVogAAAAAAAAY1sAAKNbAAApzFhZWiAAAAAAAAAl
+ lwAAG5gAAKCcWFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe
+ ///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABj
+ dXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
+ AQAAAQAEBgkMDxIUFxodICIkJigqKy0uMDEzNDU2ODk6Ozw9P0BBQkNFRkdI
+ SUpLTE5PUFFSU1RVVldYWVpaW1xdXl9gYWJjZGVmZmdoaWprbGxtbm9wcXJz
+ c3R1dnd4eHl6e3x9fX5/gIGBgoOEhYWGh4iJiYqLjI2Ojo+QkZKTk5SVlpeY
+ mJmam5ycnZ6fn6ChoqOjpKWmpqeoqamqq6ysra6vr7CxsrKztLW1tre4uLm6
+ uru8vb2+v7/AwcLCw8TFxcbHyMjJysvLzM3Ozs/Q0dHS09TU1dbW19jZ2drb
+ 29zd3t7f4OHh4uPk5eXm5+jp6uvr7O3u7/Dx8vP09vj6/P8AAgUHCQwPEhQX
+ GRweICIkJigpKywuLzAxMzQ1Njc4OTs8PT4/QEFCQ0RFR0hJSktMTU5PUFFS
+ UlNUVVZXWFlaW1xcXV5fYGFiYmNkZWZnZ2hpamtrbG1ub3BwcXJzdHR1dnd4
+ eHl6e3x8fX5/f4CBgoODhIWGhoeIiYqKi4yNjo6PkJGSkpOUlZaWl5iZmZqb
+ nJ2dnp+goKGio6Okpaamp6ipqaqrrKytrq+vsLGysrO0tbW2t7i4ubq6u7y9
+ vb6/wMDBwsPExMXGx8fIycrLy8zNzs/P0NHS09PU1dbW19jZ2tvb3N3e3+Dg
+ 4eLj5OXm5+jp6uzt7vDx8/X3+vz/AAECBAUHCQwOERMVFxkbHR8gIiMkJico
+ KSorLS4uLzAxMjM0NTY4OTo7PD0+P0BAQUJDREVGR0hJSUpLTE1OT1BRUlJT
+ VFVWV1dYWVpbW1xdXl9gYGFiY2NkZWVmZ2doaWpqa2xtbm5vcHFxcnN0dHV2
+ d3d4eXp6e3x8fX5+f4CAgYKDhISFhoeHiImKi4uMjY6Oj5CRkpKTlJWVlpeY
+ mJmam5ucnZ2en6CgoaKjo6SlpqanqKmpqqusrK2urq+wsbGys7S1tre4ubm6
+ u7y9vb6/wMHCwsPExcbHyMnKy8zMzc7P0NHS09TV1tfY2dvc3d7f4eLk5ufp
+ 6+7w9Pf7/wAAbmRpbgAAAAAAAAY2AACVTAAAWfUAAE1qAACGZgAAKDEAABro
+ AABQDQAAVDkAAj1wAAICjwABqPUAAwEAAAIAAAAAAAEAAgAEAAcACgANABEA
+ FQAaAB8AJQArADIAOQBAAEgAUABYAGEAagBzAH0AhwCSAJ0AqAC0AMEAzgDc
+ AOsA+wELAR4BMQFFAVsBdAGNAakBxgHmAgcCKgJRAnkCpALRAwADMgNnA50D
+ 1gQSBE8EkATSBRcFXQWlBe4GNwaCBs8HHQdtB74IEwhrCMUJJAmFCeYKSAqr
+ Cw0LcgvZDEQMtQ0qDaQOIg6jDykPtRBJEOURiBIuEtITchQOFKgVQhXfFn8X
+ JRfUGI0ZThoTGtcbnBxjHS8eAB7UH6UgcyFAIhMi7iPRJLklpCaQJ4EodSls
+ KmQrXixcLWAuai95MIwxoTK6M9U08jYTNzY4WzmCOqo70Tz2Phs/Q0BwQZ9C
+ z0QARTVGbkepSOVKI0tlTK5N/k9UULBSE1N/VPBWYlfRWT5arlwlXaVfLWC7
+ Ykxj4WV4ZxNosGpQa/JtmG9BcOxymnRLdf93tXlwey98937LgKmCi4RrhkyI
+ MoogjBGN/Y/jkcWTp5WMl3OZXZtJnTmfK6EfoxelEacOqQ2rEK0Vrx2xLLND
+ tWi3mLnMu/6+L8BnwqbE6MclyVnLiM22z+LSCdQo1kLYWNpp3HLeb+Bk4lrk
+ WuZk6G7qb+xi7kjwIfHp85n1JvaH98T46Pnh+tH7pPx2/TH97P6f/0///wAA
+ AAAAAgAFAAgADQARABcAHAAiACkALwA3AD4ARgBOAFcAYABqAHQAfgCJAJUA
+ oQCtALsAyADXAOYA9wEHARoBLQFBAVcBbgGHAaEBvQHcAfwCHwJFAmwClgLD
+ AvMDJQNZA5ADygQGBEYEiATNBRQFXAWlBe8GOwaLBt0HNAePB+0ITgivCQ8J
+ bgnNCiwKjQrxC1kLxQw3DK0NKA2nDi0Oug9PD+sQihEoEcESWBLtE4UUIhTH
+ FXUWKxbkF54YWBkUGdUanRtqHDgdCR3dHrgfmCB9IWQiTCM1JB0lBSXyJuUn
+ 3ijbKdwq4CvnLPEt/S8MMB4xMzJNM240ljXDNvA4HTlJOnc7rDzoPik/a0Cr
+ QelDJ0RoRatG8Eg4SYNK0UwhTXNOyVAhUXxS3VRFVbVXKligWhNbhFz5XnRf
+ +GGFYxdkrGZFZ+Fpf2shbMVubHAWccNzcnUkdtp4knpMfAp9yn+OgVODHITo
+ hreIi4ppjFKORpA9kjCUHJYEl+uZ0ZuznZCfaaFFoymlFqcJqPuq6azSrrqw
+ pLKQtH22bbhgula8Tr5NwFXCZ8R+xo/IlMqOzIPOetB20nTUcdZu2G7acdxv
+ 3l7gOuIF48LldOcb6LXqQuvD7TnupfAI8VzyovPa9QH2EfcZ+AT47Pm8+oz7
+ SPwD/Lb9Yv4O/rX/Wf//AAAAAwAJABEAGgAjACwANgBAAEoAVABeAGkAdACA
+ AIwAmAClALMAwgDRAOEA8gEEARcBLAFCAVkBcgGNAaoByQHqAg8CNgJhApAC
+ wQL1AysDYgOcA9cEFgRZBKIE8wVMBaoGCQZoBsMHHAdzB8kIHwh3CNEJMAmU
+ Cf4KcArqC20L9gyCDQ4Nlg4dDqQPMA/CEFwQ/BGgEkIS4BN8FBgUuBVfFhAW
+ yReHGEgZCxnTGqAbchxJHSId/R7YH7MgjyFvIlcjSCRHJVwmhSe5KOcqCCsj
+ LDstUS5lL3kwjzGsMtAz+zUsNmA3lzjSOg87UDyTPdo/JEBzQctDM0SxRkNH
+ 1UlUSr9MHU13TtVQO1GmUxFUeVXhV0pYu1o0W7JdMF6rYCVhoWMlZLFmRmfh
+ aX9rIWzGbnBwI3Hhc6h1c3c6ePx6u3x6fjt//4HFg4+FW4cqiPyK0YysjpCQ
+ gJJ6lHiWcJhgmkScGp3bn4WhHaKwpEil76eqqXirUq0zrxSw8rLLtKO2f7hf
+ uj68FL3ev5nBSsL2xKTGXMgkyf/L5s3Rz7fRkdNc1RTWuthQ2dvbXdza3lPf
+ yOE94rHkI+WU5v3oWemp6uzsHu1C7l7va/Bx8W7yXvNI9CP0+fW/9n73N/ff
+ +If5I/m2+kn61PtW+9n8W/zT/Ur9wf44/qr/G/+N//8AAGRlc2MAAAAAAAAA
+ CkNvbG9yIExDRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt
+ bHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
+ AABtbW9kAAAAAAAABhAAAJwpAAAAALhNcgAAAAAAAAAAAAAAAAAAAAAAdGV4
+ dAAAAABDb3B5cmlnaHQgQXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAA
+ </data>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>119</integer>
+ </dict>
+ <key>NSAlternateImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>73</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>0</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>118</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>400</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>75</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>6</integer>
+ </dict>
+ <string>+D</string>
+ <string></string>
+ <string>{1...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-12 00:30:32
|
Revision: 452
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=452&view=rev
Author: fredm
Date: 2007-08-11 17:30:35 -0700 (Sat, 11 Aug 2007)
Log Message:
-----------
Use correct offset for emulator top right texture.
Modified Paths:
--------------
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-08-06 02:39:03 UTC (rev 451)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-08-12 00:30:35 UTC (rev 452)
@@ -427,7 +427,7 @@
glTexCoord2f( (float)(screenTex[currentScreenTex].image_width +
screenTex[currentScreenTex].image_xoffset),
- (float)screenTex[currentScreenTex].image_xoffset
+ (float)screenTex[currentScreenTex].image_yoffset
);
glVertex2f( 1.0f, 1.0f );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 02:39:01
|
Revision: 451
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=451&view=rev
Author: fredm
Date: 2007-08-05 19:39:03 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Bump version numbers in config.h headers.
Modified Paths:
--------------
trunk/lib765/lib765/config.h
trunk/lib765/libdsk/config.h
Modified: trunk/lib765/lib765/config.h
===================================================================
--- trunk/lib765/lib765/config.h 2007-08-06 02:24:38 UTC (rev 450)
+++ trunk/lib765/lib765/config.h 2007-08-06 02:39:03 UTC (rev 451)
@@ -88,7 +88,7 @@
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "0.3.3"
+#define VERSION "0.4.1"
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
Modified: trunk/lib765/libdsk/config.h
===================================================================
--- trunk/lib765/libdsk/config.h 2007-08-06 02:24:38 UTC (rev 450)
+++ trunk/lib765/libdsk/config.h 2007-08-06 02:39:03 UTC (rev 451)
@@ -113,5 +113,5 @@
#define PACKAGE "libdsk"
/* Version number of package */
-#define VERSION "1.1.12"
+#define VERSION "1.1.14"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 02:24:36
|
Revision: 450
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=450&view=rev
Author: fredm
Date: 2007-08-05 19:24:38 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Merge up to vendor revision 3095.
Revision Links:
--------------
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=3095&view=rev
Modified Paths:
--------------
trunk/fuse/Makefile.am
trunk/fuse/compat/Makefile.am
trunk/fuse/compat/dirname.c
trunk/fuse/compat/getopt.c
trunk/fuse/compat/getopt1.c
trunk/fuse/compat/mkstemp.c
trunk/fuse/compat.h
trunk/fuse/configure.in
trunk/fuse/event.c
trunk/fuse/fuse.cpp
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/Info-Fuse.plist
trunk/fuse/fusepb/config.h
trunk/fuse/hacking/ChangeLog
trunk/fuse/machines/tc2048.c
trunk/fuse/menu_data.pl
trunk/fuse/printer.c
trunk/fuse/rzx.c
trunk/fuse/settings.pl
trunk/fuse/sound/Makefile.am
trunk/fuse/sound/alsasound.c
trunk/fuse/sound/aosound.c
trunk/fuse/sound/coreaudiosound.c
trunk/fuse/sound/dxsound.c
trunk/fuse/sound/hpsound.c
trunk/fuse/sound/nullsound.c
trunk/fuse/sound/osssound.c
trunk/fuse/sound/sdlsound.c
trunk/fuse/sound/sfifo.c
trunk/fuse/sound/sunsound.c
trunk/fuse/sound.c
trunk/fuse/spectrum.c
trunk/fuse/tape.c
trunk/fuse/tape.h
trunk/fuse/trdos.c
trunk/fuse/ui/gtk/debugger.c
trunk/fuse/ui/gtk/gtkjoystick.c
trunk/fuse/ui/gtk/gtkmouse.c
trunk/fuse/ui/gtk/gtkui.c
trunk/fuse/ui/gtk/pokefinder.c
trunk/fuse/ui/gtk/stock.c
trunk/fuse/ula.c
trunk/fuse/utils.c
trunk/fuse/widget/widget.c
trunk/fuse/z80/coretest.c
Added Paths:
-----------
trunk/fuse/compat/amiga/
trunk/fuse/compat/amiga/Makefile.am
trunk/fuse/compat/amiga/paths.c
trunk/fuse/compat/morphos/
trunk/fuse/compat/morphos/Makefile.am
trunk/fuse/compat/morphos/osname.c
trunk/fuse/compat/unix/
trunk/fuse/compat/unix/Makefile.am
trunk/fuse/compat/unix/osname.c
trunk/fuse/compat/unix/paths.c
trunk/fuse/compat/win32/
trunk/fuse/compat/win32/Makefile.am
trunk/fuse/compat/win32/osname.c
trunk/fuse/compat/win32/paths.c
trunk/fuse/timer/
trunk/fuse/timer/Makefile.am
trunk/fuse/timer/sdl.c
trunk/fuse/timer/timer.c
trunk/fuse/timer/timer.h
trunk/fuse/timer/unix.c
trunk/fuse/timer/win32.c
Removed Paths:
-------------
trunk/fuse/compat/amiga/Makefile.am
trunk/fuse/compat/amiga/paths.c
trunk/fuse/compat/morphos/Makefile.am
trunk/fuse/compat/morphos/osname.c
trunk/fuse/compat/unix/Makefile.am
trunk/fuse/compat/unix/osname.c
trunk/fuse/compat/unix/paths.c
trunk/fuse/compat/win32/Makefile.am
trunk/fuse/compat/win32/osname.c
trunk/fuse/compat/win32/paths.c
trunk/fuse/sound/lowlevel.h
trunk/fuse/timer/Makefile.am
trunk/fuse/timer/sdl.c
trunk/fuse/timer/timer.c
trunk/fuse/timer/timer.h
trunk/fuse/timer/unix.c
trunk/fuse/timer/win32.c
trunk/fuse/timer.c
trunk/fuse/timer.h
Modified: trunk/fuse/Makefile.am
===================================================================
--- trunk/fuse/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3007 2007-06-17 18:50:48Z zubzero $
+## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
## 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
@@ -36,6 +36,7 @@
pokefinder \
roms \
sound \
+ timer \
ui \
@WIDGET@ \
z80
@@ -87,7 +88,6 @@
sound.c \
spectrum.c \
tape.c \
- timer.c \
trdos.c \
ui.c \
uidisplay.c \
@@ -107,19 +107,18 @@
sound/libsound.a \
ui/scaler/libscaler.a \
debugger/libdebugger.a \
+timer/libtimer.a \
z80/libz80.a \
@DSKLIBS@ \
@LIBSPEC_LIBS@ \
@GLIB_LIBS@ \
@PNG_LIBS@ \
-@ASOUND_LIBS@ \
-@AO_LIBS@ \
+@SOUND_LIBS@ \
@SAMPLERATE_LIBS@ \
-@DIRECTSOUND_LIBS@ \
-@COREAUDIO_LIBS@ \
@X_LIBS@ \
@XML_LIBS@ \
compat/libcompat.a \
+compat/unix/libcompatos.a \
@WINDRES_OBJ@
fuse_DEPENDENCIES = @UI_LIBS@ \
@@ -173,7 +172,6 @@
sound.h \
spectrum.h \
tape.h \
- timer.h \
trdos.h \
utils.h \
joystick.h \
Modified: trunk/fuse/compat/Makefile.am
===================================================================
--- trunk/fuse/compat/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
-## Copyright (c) 2003 Philip Kendall
+## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 2889 2007-05-26 17:45:08Z zubzero $
+## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
## 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
@@ -23,13 +23,25 @@
AUTOMAKE_OPTIONS = foreign
+SUBDIRS = @COMPAT_OSNAME@
+
+DIST_SUBDIRS = amiga \
+ morphos \
+ unix \
+ win32
+
noinst_LIBRARIES = libcompat.a
-libcompat_a_SOURCES = dirname.c \
- getopt.c \
- getopt1.c \
- mkstemp.c
+libcompat_a_SOURCES =
+EXTRA_libcompat_a_SOURCES = dirname.c \
+ getopt.c \
+ getopt1.c \
+ mkstemp.c
+
+libcompat_a_LIBADD = $(COMPAT_LIBADD)
+libcompat_a_DEPENDENCIES = $(COMPAT_LIBADD)
+
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
noinst_HEADERS = getopt.h
Copied: trunk/fuse/compat/amiga (from rev 449, vendor/fuse-emulator/current/fuse/compat/amiga)
Deleted: trunk/fuse/compat/amiga/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/amiga/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in
-## Copyright (c) 2007 Philip Kendall
-
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
-
-## 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.,
-## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-##
-## Author contact information:
-##
-## E-mail: phi...@sh...
-
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = libcompatos.a
-
-libcompatos_a_SOURCES = ../unix/osname.c \
- paths.c
-
-INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Copied: trunk/fuse/compat/amiga/Makefile.am (from rev 449, vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am)
===================================================================
--- trunk/fuse/compat/amiga/Makefile.am (rev 0)
+++ trunk/fuse/compat/amiga/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = ../unix/osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Deleted: trunk/fuse/compat/amiga/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/paths.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/amiga/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,40 +0,0 @@
-/* paths.c: Path-related compatability routines
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include "compat.h"
-
-const char*
-compat_get_temp_path( void )
-{
- return "T:";
-}
-
-const char*
-compat_get_home_path( void )
-{
- return "PROGDIR:settings";
-}
Copied: trunk/fuse/compat/amiga/paths.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/amiga/paths.c)
===================================================================
--- trunk/fuse/compat/amiga/paths.c (rev 0)
+++ trunk/fuse/compat/amiga/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,40 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ return "T:";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ return "PROGDIR:settings";
+}
Modified: trunk/fuse/compat/dirname.c
===================================================================
--- trunk/fuse/compat/dirname.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/dirname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -26,8 +26,6 @@
#include <config.h>
-#ifndef HAVE_DIRNAME
-
#include <string.h>
#include "fuse.h"
@@ -99,5 +97,3 @@
return path;
}
-
-#endif /* #ifndef HAVE_DIRNAME */
Modified: trunk/fuse/compat/getopt.c
===================================================================
--- trunk/fuse/compat/getopt.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/getopt.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -34,8 +34,6 @@
# include <config.h>
#endif
-#if !defined HAVE_GETOPT_LONG && !defined AMIGA && !defined __MORPHOS__
-
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
@@ -1280,5 +1278,3 @@
}
#endif /* TEST */
-
-#endif /* #ifndef HAVE_GETOPT_LONG */
Modified: trunk/fuse/compat/getopt1.c
===================================================================
--- trunk/fuse/compat/getopt1.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/getopt1.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -24,8 +24,6 @@
#include <config.h>
#endif
-#if !defined HAVE_GETOPT_LONG && !defined AMIGA && !defined __MORPHOS__
-
#ifdef _LIBC
# include <getopt.h>
#else
@@ -198,5 +196,3 @@
}
#endif /* TEST */
-
-#endif /* #ifndef HAVE_GETOPT_LONG */
Modified: trunk/fuse/compat/mkstemp.c
===================================================================
--- trunk/fuse/compat/mkstemp.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/mkstemp.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -20,8 +20,6 @@
#include <config.h>
-#ifndef HAVE_MKSTEMP
-
#include <errno.h>
#include <stdlib.h>
#include <string.h>
@@ -109,5 +107,3 @@
errno = EEXIST;
return -1;
}
-
-#endif /* #ifdef HAVE_MKSTEMP */
Copied: trunk/fuse/compat/morphos (from rev 449, vendor/fuse-emulator/current/fuse/compat/morphos)
Deleted: trunk/fuse/compat/morphos/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/morphos/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in
-## Copyright (c) 2007 Philip Kendall
-
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
-
-## 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.,
-## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-##
-## Author contact information:
-##
-## E-mail: phi...@sh...
-
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = libcompatos.a
-
-libcompatos_a_SOURCES = osname.c \
- ../amiga/paths.c
-
-INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Copied: trunk/fuse/compat/morphos/Makefile.am (from rev 449, vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am)
===================================================================
--- trunk/fuse/compat/morphos/Makefile.am (rev 0)
+++ trunk/fuse/compat/morphos/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ ../amiga/paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Deleted: trunk/fuse/compat/morphos/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/osname.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/morphos/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,34 +0,0 @@
-/* osname.c: Get a representation of the OS we're running on
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-int compat_osname( char *buffer, size_t length )
-{
- snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" );
-}
Copied: trunk/fuse/compat/morphos/osname.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/morphos/osname.c)
===================================================================
--- trunk/fuse/compat/morphos/osname.c (rev 0)
+++ trunk/fuse/compat/morphos/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,34 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int compat_osname( char *buffer, size_t length )
+{
+ snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" );
+}
Copied: trunk/fuse/compat/unix (from rev 449, vendor/fuse-emulator/current/fuse/compat/unix)
Deleted: trunk/fuse/compat/unix/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/unix/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in
-## Copyright (c) 2007 Philip Kendall
-
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
-
-## 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.,
-## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-##
-## Author contact information:
-##
-## E-mail: phi...@sh...
-
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = libcompatos.a
-
-libcompatos_a_SOURCES = osname.c \
- paths.c
-
-INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Copied: trunk/fuse/compat/unix/Makefile.am (from rev 449, vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am)
===================================================================
--- trunk/fuse/compat/unix/Makefile.am (rev 0)
+++ trunk/fuse/compat/unix/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Deleted: trunk/fuse/compat/unix/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/unix/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,50 +0,0 @@
-/* osname.c: Get a representation of the OS we're running on
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: osname.c 3094 2007-08-05 14:20:15Z fredm $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/utsname.h>
-
-#include "ui/ui.h"
-
-int compat_osname( char *buffer, size_t length )
-{
- struct utsname osname;
- int error;
-
- error = uname( &osname );
- if( error ) {
- ui_error( UI_ERROR_ERROR, "error getting system information: %s",
- strerror( errno ) );
- return 1;
- }
-
- snprintf( buffer, length, "%s %s %s", osname.sysname, osname.machine,
- osname.release );
- return 0;
-}
Copied: trunk/fuse/compat/unix/osname.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/unix/osname.c)
===================================================================
--- trunk/fuse/compat/unix/osname.c (rev 0)
+++ trunk/fuse/compat/unix/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,50 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3094 2007-08-05 14:20:15Z fredm $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/utsname.h>
+
+#include "ui/ui.h"
+
+int compat_osname( char *buffer, size_t length )
+{
+ struct utsname osname;
+ int error;
+
+ error = uname( &osname );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting system information: %s",
+ strerror( errno ) );
+ return 1;
+ }
+
+ snprintf( buffer, length, "%s %s %s", osname.sysname, osname.machine,
+ osname.release );
+ return 0;
+}
Deleted: trunk/fuse/compat/unix/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/paths.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/unix/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,48 +0,0 @@
-/* paths.c: Path-related compatability routines
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include "compat.h"
-
-const char*
-compat_get_temp_path( void )
-{
- const char *dir;
-
- /* Use TMPDIR if specified, if not /tmp */
- dir = getenv( "TMPDIR" ); if( dir ) return dir;
- return "/tmp";
-}
-
-const char*
-compat_get_home_path( void )
-{
- const char *dir;
- dir = getenv( "HOME" ); if( dir ) return dir;
- return ".";
-}
Copied: trunk/fuse/compat/unix/paths.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/unix/paths.c)
===================================================================
--- trunk/fuse/compat/unix/paths.c (rev 0)
+++ trunk/fuse/compat/unix/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,48 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ const char *dir;
+
+ /* Use TMPDIR if specified, if not /tmp */
+ dir = getenv( "TMPDIR" ); if( dir ) return dir;
+ return "/tmp";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ const char *dir;
+ dir = getenv( "HOME" ); if( dir ) return dir;
+ return ".";
+}
Copied: trunk/fuse/compat/win32 (from rev 449, vendor/fuse-emulator/current/fuse/compat/win32)
Deleted: trunk/fuse/compat/win32/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/win32/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in
-## Copyright (c) 2007 Philip Kendall
-
-## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
-
-## 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.,
-## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-##
-## Author contact information:
-##
-## E-mail: phi...@sh...
-
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = libcompatos.a
-
-libcompatos_a_SOURCES = osname.c \
- paths.c
-
-INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Copied: trunk/fuse/compat/win32/Makefile.am (from rev 449, vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am)
===================================================================
--- trunk/fuse/compat/win32/Makefile.am (rev 0)
+++ trunk/fuse/compat/win32/Makefile.am 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Deleted: trunk/fuse/compat/win32/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/win32/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,56 +0,0 @@
-/* osname.c: Get a representation of the OS we're running on
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <windows.h>
-
-int compat_osname( char *osname, size_t length )
-{
- OSVERSIONINFO buf;
- char *windows_name;
-
- buf.dwOSVersionInfoSize = sizeof( buf );
- sys_error = GetVersionEx( &buf );
- if( sys_error == 0 ) {
- ui_error( UI_ERROR_ERROR, "error getting system information." );
- return 1;
- }
-
- switch( buf.dwPlatformId ) {
- case VER_PLATFORM_WIN32_NT: windows_name = "NT"; break;
- case VER_PLATFORM_WIN32_WINDOWS: windows_name = "95/98"; break;
- case VER_PLATFORM_WIN32s: windows_name = "3.1"; break;
- default: windows_name = "unknown"; break;
- }
-
- snprintf( osname, length,
- "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
- gcrypt_version, libspectrum_version(),
- windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
- buf.dwBuildNumber, buf.szCSDVersion );
-
- return 0;
-}
Copied: trunk/fuse/compat/win32/osname.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/win32/osname.c)
===================================================================
--- trunk/fuse/compat/win32/osname.c (rev 0)
+++ trunk/fuse/compat/win32/osname.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,56 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <windows.h>
+
+int compat_osname( char *osname, size_t length )
+{
+ OSVERSIONINFO buf;
+ char *windows_name;
+
+ buf.dwOSVersionInfoSize = sizeof( buf );
+ sys_error = GetVersionEx( &buf );
+ if( sys_error == 0 ) {
+ ui_error( UI_ERROR_ERROR, "error getting system information." );
+ return 1;
+ }
+
+ switch( buf.dwPlatformId ) {
+ case VER_PLATFORM_WIN32_NT: windows_name = "NT"; break;
+ case VER_PLATFORM_WIN32_WINDOWS: windows_name = "95/98"; break;
+ case VER_PLATFORM_WIN32s: windows_name = "3.1"; break;
+ default: windows_name = "unknown"; break;
+ }
+
+ snprintf( osname, length,
+ "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
+ gcrypt_version, libspectrum_version(),
+ windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
+ buf.dwBuildNumber, buf.szCSDVersion );
+
+ return 0;
+}
Deleted: trunk/fuse/compat/win32/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/paths.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat/win32/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,52 +0,0 @@
-/* paths.c: Path-related compatability routines
- Copyright (c) 1999-2007 Philip Kendall
-
- $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include "compat.h"
-
-const char*
-compat_get_temp_path( void )
-{
- const char *dir;
-
- /* Something close to this algorithm specified at
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/gettemppath.asp
- */
- dir = getenv( "TMP" ); if( dir ) return dir;
- dir = getenv( "TEMP" ); if( dir ) return dir;
- return ".";
-}
-
-const char*
-compat_get_home_path( void )
-{
- const char *dir;
- dir = getenv( "USERPROFILE" ); if( dir ) return dir;
- dir = getenv( "WINDIR" ); if( dir ) return dir;
- return ".";
-}
Copied: trunk/fuse/compat/win32/paths.c (from rev 449, vendor/fuse-emulator/current/fuse/compat/win32/paths.c)
===================================================================
--- trunk/fuse/compat/win32/paths.c (rev 0)
+++ trunk/fuse/compat/win32/paths.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -0,0 +1,52 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ const char *dir;
+
+ /* Something close to this algorithm specified at
+ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/gettemppath.asp
+ */
+ dir = getenv( "TMP" ); if( dir ) return dir;
+ dir = getenv( "TEMP" ); if( dir ) return dir;
+ return ".";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ const char *dir;
+ dir = getenv( "USERPROFILE" ); if( dir ) return dir;
+ dir = getenv( "WINDIR" ); if( dir ) return dir;
+ return ".";
+}
Modified: trunk/fuse/compat.h
===================================================================
--- trunk/fuse/compat.h 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/compat.h 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,7 +1,7 @@
/* compat.h: various compatibility bits
Copyright (c) 2003 Philip Kendall
- $Id: compat.h 3039 2007-07-03 12:17:27Z fredm $
+ $Id: compat.h 3092 2007-08-04 19:20:58Z pak21 $
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,8 @@
#ifndef FUSE_COMPAT_H
#define FUSE_COMPAT_H
+#include <stdlib.h>
+
/* Remove the gcc-specific incantations if we're not using gcc */
#ifdef __GNUC__
@@ -70,4 +72,8 @@
#define FUSE_DIR_SEP_STR "/"
#endif
+int compat_osname( char *buffer, size_t length );
+const char* compat_get_temp_path( void );
+const char* compat_get_home_path( void );
+
#endif /* #ifndef FUSE_COMPAT_H */
Modified: trunk/fuse/configure.in
===================================================================
--- trunk/fuse/configure.in 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/configure.in 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3078 2007-07-27 10:49:51Z pak21 $
+dnl $Id: configure.in 3093 2007-08-04 20:51:34Z pak21 $
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
@@ -352,11 +352,12 @@
plus3disk=yes)
AC_MSG_RESULT($plus3disk)
if test "$plus3disk" = yes; then
- AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765"; lib765=yes,
+ AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765" lib765=yes,
AC_MSG_WARN(765.h not found - +3 disk support disabled))
fi
dnl Do we want LibDsk support?
+AC_MSG_CHECKING(whether libdsk is available)
AC_ARG_WITH(libdsk,
[ --without-libdsk disable LibDsk support],
if test "$withval" = no; then libdsk=no; else libdsk=yes; fi,
@@ -397,12 +398,11 @@
AC_CHECK_LIB( asound, snd_pcm_hw_params_set_period_size_near,
[AC_CHECK_HEADER(
alsa/asoundlib.h,
- [AC_DEFINE([USE_LIBASOUND], 1, [Defined if we're going to be using the installed libasound]) ASOUND_LIBS='-lasound'],
+ [alsa_available=yes],
[AC_MSG_WARN(alsa/asoundlib.h not found - no ALSA output)]
)],
[AC_MSG_WARN(snd_pcm_hw_params_set_period_size_near not found - no ALSA output)]
)
- AC_SUBST(ASOUND_LIBS)
fi
dnl Check if a version of libao which supplies ao_open_live is available
@@ -416,21 +416,19 @@
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 installed libao]) AO_LIBS='-lao'],
+ [ao_available=yes],
[AC_MSG_WARN(ao/ao.h not found - no libao sound output)]
)],
[AC_MSG_WARN(ao_open_live not found - no libao sound output)]
)
- AC_SUBST(AO_LIBS)
fi
dnl Check if DirectSound is available
AC_CHECK_HEADER(
dsound.h,
- [AC_DEFINE([USE_DIRECTSOUND], 1, [Defined if we're going to be using DirectSound]) DIRECTSOUND_LIBS='-ldsound -lole32 -ldxguid'],
+ [dxsound_available=yes],
[AC_MSG_WARN(dsound.h not found - no DirectSound output)]
)
-AC_SUBST(DIRECTSOUND_LIBS)
PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
@@ -441,11 +439,56 @@
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'],
+ [coreaudio_available=yes],
[AC_MSG_WARN(CoreAudio/AudioHardware.h not found - no CoreAudio sound output)]
)
-AC_SUBST(COREAUDIO_LIBS)
+dnl
+dnl Decide which sound routines to use
+dnl
+
+AC_MSG_CHECKING(which sound routines to use)
+if test "$dxsound_available" = yes; then
+ SOUND_LIBADD='dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid'
+ AC_MSG_RESULT(DirectX)
+elif test "$UI" = sdl; then
+ SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes
+ AC_MSG_RESULT(SDL)
+elif test "$alsa_available" = yes; then
+ SOUND_LIBADD='alsasound.$(OBJEXT)' SOUND_LIBS='-lasound'
+ AC_MSG_RESULT(ALSA)
+elif test "$ao_available" = yes; then
+ SOUND_LIBADD='aosound.$(OBJEXT)' SOUND_LIBS='-lao'
+ AC_MSG_RESULT(libao)
+elif test "$ac_cv_header_dsound_h" = yes; then
+ # Later selection between these two
+ SOUND_LIBADD='sunsound.$(OBJEXT) hpsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(Solaris or HP/UX)
+elif test "$ac_cv_header_sys_soundcard_h" = yes; then
+ SOUND_LIBADD='osssound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(OSS)
+elif test "$ac_cv_header_sys_audioio_h" = yes; then
+ dnl OpenBSD
+ SOUND_LIBADD='sunsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(OpenBSD)
+elif test "$coreaudio_available" = yes; then
+ SOUND_LIBADD='coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices' sound_fifo=yes
+ AC_MSG_RESULT(CoreAudio)
+else
+ SOUND_LIBADD='nullsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(none)
+ AC_DEFINE([NO_SOUND], 1, [Defined if no sound code is present])
+fi
+
+if test "$sound_fifo" = yes; then
+ dnl Strange construct used here as += doesn't seem to work on OS X
+ SOUND_LIBADD="$SOUND_LIBADD"' sfifo.$(OBJEXT)'
+ AC_DEFINE([SOUND_FIFO], 1, [Defined if the sound code uses a fifo])
+fi
+
+AC_SUBST(SOUND_LIBADD)
+AC_SUBST(SOUND_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,
@@ -505,6 +548,82 @@
[Defined if we've got libxml2]),
AC_WARN(libxml2 not found - config file use disabled))
+dnl Work out which timer routines to use
+AC_MSG_CHECKING(which timer routines to use)
+if test "$UI" = sdl; then
+ TIMER_LIBADD='sdl.$(OBJEXT)'
+ timer_header='<SDL.h>'
+ timer_type='Uint32'
+ AC_MSG_RESULT(SDL)
+else
+ case "$target_os" in
+ win32)
+ TIMER_LIBADD='win32.$(OBJEXT)'
+ timer_header='<windows.h>'
+ timer_type='DWORD'
+ AC_MSG_RESULT(Win32)
+ ;;
+ *)
+ TIMER_LIBADD='unix.$(OBJEXT)'
+ timer_header='<sys/time.h>'
+ timer_type='struct timeval'
+ AC_MSG_RESULT(unix)
+ ;;
+ esac
+fi
+
+AC_SUBST(TIMER_LIBADD)
+AC_DEFINE_UNQUOTED([TIMER_HEADER], $timer_header, [The header needed to define the timer type])
+AC_DEFINE_UNQUOTED([TIMER_TYPE], $timer_type, [The type needed for the timer routines])
+
+dnl Work out which standard routines we're missing
+AC_MSG_CHECKING(which standard routines we're missing)
+COMPAT_LIBADD=''
+missing_routines=''
+if test "$ac_cv_func_dirname" = no; then
+ COMPAT_LIBADD="$COMPAT_LIBADD"'dirname.$(OBJEXT) '
+ missing_routines="$missing_routines"'dirname '
+fi
+if test "$ac_cv_func_getopt_long" = no; then
+ case "$target_os" in
+ amiga|morphos)
+ dnl Our getopt_long replacement doesn't work, so don't use it
+ ;;
+ *)
+ COMPAT_LIBADD="$COMPAT_LIBADD"'getopt.$(OBJEXT) getopt1.$(OBJEXT) '
+ missing_routines="$missing_routines"'getopt_long '
+ ;;
+ esac
+fi
+if test "$ac_cv_func_mkstemp" = no; then
+ COMPAT_LIBADD="$COMPAT_LIBADD"'mkstemp.$(OBJEXT) '
+ missing_routines="$missing_routines"'mkstemp '
+fi
+if test "x$missing_routines" = x; then
+ missing_routines='(none)'
+fi
+AC_MSG_RESULT($missing_routines)
+AC_SUBST(COMPAT_LIBADD)
+
+dnl Work out which compatability routines to use
+AC_MSG_CHECKING(which compatability routines to use)
+case "$target_os" in
+ amiga)
+ COMPAT_OSNAME='amiga'
+ ;;
+ morphos)
+ COMPAT_OSNAME='morphos'
+ ;;
+ win32)
+ COMPAT_OSNAME='win32'
+ ;;
+ *)
+ COMPAT_OSNAME='unix'
+ ;;
+esac
+AC_MSG_RESULT($COMPAT_OSNAME)
+AC_SUBST(COMPAT_OSNAME)
+
dnl Do we want the low memory compile?
AC_MSG_CHECKING(whether low memory compile requested)
AC_ARG_ENABLE(smallmem,
@@ -541,24 +660,12 @@
fi
fi
-dnl Debugging mode: turns off any use of signals to make running under gdb
-dnl useful.
-AC_MSG_CHECKING(whether debugging mode requested)
-AC_ARG_ENABLE(debug-mode,
-[ --enable-debug-mode enable debugging mode (developers only)],
-if test "$enableval" = yes; then
- debugging=yes;
-else
- debugging=no;
-fi,
-debugging=no)
-AC_MSG_RESULT($debugging)
-if test "$debugging" = yes; then
- AC_DEFINE([DEBUG_MODE], 1, [Defined if we're in debugging mode])
-fi
-
AC_OUTPUT(Makefile \
compat/Makefile \
+compat/amiga/Makefile \
+compat/morphos/Makefile \
+compat/unix/Makefile \
+compat/win32/Makefile \
debugger/Makefile \
disk/Makefile \
hacking/Makefile \
@@ -570,6 +677,7 @@
pokefinder/Makefile \
roms/Makefile \
sound/Makefile \
+timer/Makefile \
ui/Makefile \
ui/fb/Makefile \
ui/gtk/Makefile \
Modified: trunk/fuse/event.c
===================================================================
--- trunk/fuse/event.c 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/event.c 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,7 +1,7 @@
/* event.c: Routines needed for dealing with the event list
Copyright (c) 2000-2004 Philip Kendall
- $Id: event.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: event.c 3084 2007-07-30 21:54:54Z pak21 $
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
@@ -38,12 +38,11 @@
#include "psg.h"
#include "rzx.h"
#include "tape.h"
-#include "timer.h"
+#include "timer/timer.h"
#include "trdos.h"
#include "ui/ui.h"
#include "ui/uijoystick.h"
#include "spectrum.h"
-#include "timer.h"
#include "z80/z80.h"
/* A large value to mean `no events due' */
Modified: trunk/fuse/fuse.cpp
===================================================================
--- trunk/fuse/fuse.cpp 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/fuse.cpp 2007-08-06 02:24:38 UTC (rev 450)
@@ -1,7 +1,7 @@
/* fuse.c: The Free Unix Spectrum Emulator
Copyright (c) 1999-2007 Philip Kendall
- $Id: fuse.c 3040 2007-07-03 14:14:00Z zubzero $
+ $Id: fuse.c 3091 2007-08-04 16:44:45Z pak21 $
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
@@ -69,10 +69,9 @@
#include "slt.h"
#include "snapshot.h"
#include "sound.h"
-#include "sound/lowlevel.h"
#include "spectrum.h"
#include "tape.h"
-#include "timer.h"
+#include "timer/timer.h"
#include "trdos.h"
#include "ui/ui.h"
#include "ui/scaler/scaler.h"
@@ -294,15 +293,8 @@
{
size_t i;
unsigned int version[4] = { 0, 0, 0, 0 };
- char *custom;
+ char *custom, osname[ 256 ];
-#ifndef WIN32
- struct utsname buf;
-#else /* #ifndef WIN32 */
- OSVERSIONINFO buf;
- char *windows_name;
-#endif /* #ifndef WIN32 */
-
libspectrum_error error; int sys_error;
const char *gcrypt_version;
@@ -312,25 +304,8 @@
for( i=0; i<4; i++ ) if( version[i] > 0xff ) version[i] = 0xff;
-#if defined(__MORPHOS__)
- snprintf(buf.sysname, __SYS_NMLN, "MorphOS");
- snprintf(buf.release, __SYS_NMLN, "1.4.4");
- snprintf(buf.machine, __SYS_NMLN, "Pegasos");
-#elif defined(WIN32) /* #if defined(__MORPHOS__) */
- buf.dwOSVersionInfoSize = sizeof( buf );
- sys_error = GetVersionEx( &buf );
- if( sys_error == 0 ) {
- ui_error( UI_ERROR_ERROR, "error getting system information." );
- return 1;
- }
-#else /* #if defined(__MORPHOS__) */
- sys_error = uname( &buf );
- if( sys_error == -1 ) {
- ui_error( UI_ERROR_ERROR, "error getting system information: %s",
- strerror( errno ) );
- return 1;
- }
-#endif /* #if defined(__MORPHOS__) */
+ sys_error = compat_osname( osname, sizeof( osname ) );
+ if( sys_error ) return 1;
error = libspectrum_creator_alloc( &fuse_creator ); if( error ) return error;
@@ -355,29 +330,10 @@
gcrypt_version = libspectrum_gcrypt_version();
if( !gcrypt_version ) gcrypt_version = "not available";
-#ifndef WIN32
-
- snprintf( custom, 256, "gcrypt: %s\nlibspectrum: %s\nuname: %s %s %s",
- gcrypt_version, libspectrum_version(),
- buf.sysname, buf.machine, buf.release );
-
-#else /* #ifndef WIN32 */
-
- switch( buf.dwPlatformId ) {
- case VER_PLATFORM_WIN32_NT: windows_name = "NT"; break;
- case VER_PLATFORM_WIN32_WINDOWS: windows_name = "95/98"; break;
- case VER_PLATFORM_WIN32s: windows_name = "3.1"; break;
- default: windows_name = "unknown"; break;
- }
-
snprintf( custom, 256,
- "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
- gcrypt_version, libspectrum_version(),
- windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
- buf.dwBuildNumber, buf.szCSDVersion );
+ "gcrypt: %s\nlibspectrum: %s\nuname: %s", gcrypt_version,
+ libspectrum_version(), osname );
-#endif /* #ifndef WIN32 */
-
error = libspectrum_creator_set_custom(
fuse_creator, (libspectrum_byte*)custom, strlen( custom )
);
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-08-06 01:18:06 UTC (rev 449)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-08-06 02:24:38 UTC (rev 450)
@@ -49,7 +49,6 @@
B61F45C109121DF100C8096C /* specplus3.h in Headers */ = {isa = PBXBuildFile; fileRef = F55986160389234A01A804BA /* specplus3.h */; };
B61F45C209121DF100C8096C /* spectrum.h in Headers */ = {isa = PBXBuildFile; fileRef = F55986180389234A01A804BA /* spectrum.h */; };
B61F45C309121DF100C8096C /* tape.h in Headers */ = {isa = PBXBuildFile; fileRef = F559862C0389235F01A804BA /* tape.h */; };
- B61F45C409121DF100C8096C /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = F55986360389237101A804BA /* timer.h */; };
B61F45C509121DF100C8096C /* FuseController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F876370399540D011FA3A4 /* FuseController.h */; };
B61F45C609121DF100C8096C /* TapeBrowserController.h in Headers */ = {isa = PBXBuildFile; fileRef = F59B558F039FD8F901A804BA /* TapeBrowserController.h */; };
B61F45C709121DF100C8096C /* KeyboardController.h in Headers */ = {isa = PBXBuildFile; fileRef = F56B6A5E03A6273801CA65B5 /* KeyboardController.h */; };
@@ -170,7 +169,6 @@
B61F464A09121DF100C8096C /* spectrum.c in Sources */ = {isa = PBXBuildFile; fileRef = F55986170389234A01A804BA /* spectrum.c */; };
B61F464B09121DF100C8096C /* tape.c in Sources */ = {isa = PBXBuildFile; fileRef = F559862B0389235F01A804BA /* tape.c */; };
B61F464C09121DF100C8096C /* tc2048.c in Sources */ = {isa = PBXBuildFile; fileRef = F559862D0389235F01A804BA /* tc2048.c */; };
- B61F464D09121DF100C8096C /* timer.c in Sources */ = {isa = PBXBuildFile; fileRef = F55986350389237101A804BA /* timer.c */; };
B61F464E09121DF100C8096C /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = F559863B0389238101A804BA /* ui.c */; };
B61F464F09121DF100C8096C /* uidisplay.c in Sources */ = {isa = PBXBuildFile; fileRef = F559863C0389238101A804BA /* uidisplay.c */; };
B61F465109121DF100C8096C /* FuseController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F876380399540D011FA3A4 /* FuseController.m */; };
@@ -239,6 +237,11 @@
B61F46A209121DF100C8096C /* libbz2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6202BD105BD43D800A1EA8F /* libbz2.framework */; };
B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */ = {isa = PBXBuildFile; fileRef = B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */; };
B6251C3E0C2EB24500BD5543 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */; };
+ B63225EC0C66BA1300BB081B /* osname.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225EB0C66BA1300BB081B /* osname.c */; };
+ B63225EE0C66BA3700BB081B /* paths.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225ED0C66BA3700BB081B /* paths.c */; };
+ B63225F50C66BA7400BB081B /* timer.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225F20C66BA7400BB081B /* timer.c */; };
+ B63225F60C66BA7400BB081B /* timer.h in Headers */ = {isa = PBXBuildFile; fileRef = B63225F30C66BA7400BB081B /* timer.h */; };
+ B63225F70C66BA7400BB081B /* unix.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225F40C66BA7400BB081B /* unix.c */; };
B639B7680A6BAFCF00927E24 /* csw.icns in Resources */ = {isa = PBXBuildFile; fileRef = B639B7670A6BAFCF00927E24 /* csw.icns */; };
B639B7D10A6BB45600927E24 /* raw.icns in Resources */ = {isa = PBXBuildFile; fileRef = B639B7D00A6BB45600927E24 /* raw.icns */; };
B6403FD80A7E4B1A00E00B11 /* loader.c in Sources */ = {isa = PBXBuildFile; fileRef = B6403FD60A7E4B1A00E00B11 /* loader.c */; };
@@ -398,6 +401,11 @@
B62F3BB4059F5B5900A7009A /* PokeFinder.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = PokeFinder.nib; path = nibs/PokeFinder.nib; sourceTree = "<group>"; };
B62F3BCE059F5BF300A7009A /* PokeFinderController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PokeFinderController.h; path = controllers/PokeFinderController.h; sourceTree = "<group>"; };
B62F3BCF059F5BF300A7009A /* PokeFinderController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PokeFinderController.m; path = controllers/PokeFinderController.m; sourceTree = "<group>"; };
+ B63225EB0C66BA1300BB081B /* osname.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = osname.c; sourceTree = "<group>"; };
+ B63225ED0C66BA3700BB081B /* paths.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = paths.c; sourceTree = "<group>"; };
+ B63225F20C66BA7400BB081B /* timer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = timer.c; sourceTree = "<group>"; };
+ B63225F30C66BA7400BB081B /* timer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = "<group>"; };
+ B63225F40C66BA7400BB081B /* unix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = unix.c; sourceTree = "<group>"; };
B632C6AE03E5368700A864FD /* DebuggerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DebuggerController.h; path = controllers/DebuggerController.h; sourceTree = "<group>"; };
B632C6AF03E5368700A864FD /* DebuggerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DebuggerController.m; path = controllers/DebuggerController.m; sourceTree = "<group>"; };
B6379299060AA0D300246736 /* se-0.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "se-0.rom"; path = "../roms/se-0.rom"; sourceTree = SOURCE_ROOT; };
@@ -661,8 +669,6 @@
F559862B0389235F01A804BA /* tape.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tape.c; path = ../tape.c; sourceTree = SOURCE_ROOT; };
F559862C0389235F01A804BA /* tape.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tape.h; path = ../tape.h; sourceTree = SOURCE_ROOT; };
F559862D0389235F01A804BA /* tc2048.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tc2048.c; path = ../machines/tc2048.c; sourceTree = SOURCE_ROOT; };
- F55986350389237101A804BA /* timer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = timer.c; path = ../timer.c; sourceTree = SOURCE_ROOT; };
- F55986360389237101A804BA /* ...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-06 01:18:05
|
Revision: 449
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=449&view=rev
Author: fredm
Date: 2007-08-05 18:18:06 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-r3095.
Added Paths:
-----------
vendor/fuse-emulator/fuse-r3095/
Copied: vendor/fuse-emulator/fuse-r3095 (from rev 448, vendor/fuse-emulator/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 01:17:47
|
Revision: 448
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=448&view=rev
Author: fredm
Date: 2007-08-05 18:17:48 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Load . into vendor/fuse-emulator/current.
Modified Paths:
--------------
vendor/fuse-emulator/current/fuse/Makefile.am
vendor/fuse-emulator/current/fuse/compat/Makefile.am
vendor/fuse-emulator/current/fuse/compat/dirname.c
vendor/fuse-emulator/current/fuse/compat/getopt.c
vendor/fuse-emulator/current/fuse/compat/getopt1.c
vendor/fuse-emulator/current/fuse/compat/mkstemp.c
vendor/fuse-emulator/current/fuse/compat.h
vendor/fuse-emulator/current/fuse/configure.in
vendor/fuse-emulator/current/fuse/event.c
vendor/fuse-emulator/current/fuse/fuse.c
vendor/fuse-emulator/current/fuse/hacking/ChangeLog
vendor/fuse-emulator/current/fuse/machines/tc2048.c
vendor/fuse-emulator/current/fuse/menu_data.pl
vendor/fuse-emulator/current/fuse/printer.c
vendor/fuse-emulator/current/fuse/rzx.c
vendor/fuse-emulator/current/fuse/settings.pl
vendor/fuse-emulator/current/fuse/sound/Makefile.am
vendor/fuse-emulator/current/fuse/sound/alsasound.c
vendor/fuse-emulator/current/fuse/sound/aosound.c
vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c
vendor/fuse-emulator/current/fuse/sound/dxsound.c
vendor/fuse-emulator/current/fuse/sound/hpsound.c
vendor/fuse-emulator/current/fuse/sound/nullsound.c
vendor/fuse-emulator/current/fuse/sound/osssound.c
vendor/fuse-emulator/current/fuse/sound/sdlsound.c
vendor/fuse-emulator/current/fuse/sound/sfifo.c
vendor/fuse-emulator/current/fuse/sound/sunsound.c
vendor/fuse-emulator/current/fuse/sound.c
vendor/fuse-emulator/current/fuse/spectrum.c
vendor/fuse-emulator/current/fuse/tape.c
vendor/fuse-emulator/current/fuse/tape.h
vendor/fuse-emulator/current/fuse/timer/timer.c
vendor/fuse-emulator/current/fuse/timer/timer.h
vendor/fuse-emulator/current/fuse/trdos.c
vendor/fuse-emulator/current/fuse/ui/gtk/debugger.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkjoystick.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkmouse.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkui.c
vendor/fuse-emulator/current/fuse/ui/gtk/pokefinder.c
vendor/fuse-emulator/current/fuse/ui/gtk/stock.c
vendor/fuse-emulator/current/fuse/ula.c
vendor/fuse-emulator/current/fuse/utils.c
vendor/fuse-emulator/current/fuse/widget/widget.c
vendor/fuse-emulator/current/fuse/z80/coretest.c
Added Paths:
-----------
vendor/fuse-emulator/current/fuse/compat/amiga/
vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am
vendor/fuse-emulator/current/fuse/compat/amiga/paths.c
vendor/fuse-emulator/current/fuse/compat/morphos/
vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am
vendor/fuse-emulator/current/fuse/compat/morphos/osname.c
vendor/fuse-emulator/current/fuse/compat/unix/
vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am
vendor/fuse-emulator/current/fuse/compat/unix/osname.c
vendor/fuse-emulator/current/fuse/compat/unix/paths.c
vendor/fuse-emulator/current/fuse/compat/win32/
vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am
vendor/fuse-emulator/current/fuse/compat/win32/osname.c
vendor/fuse-emulator/current/fuse/compat/win32/paths.c
vendor/fuse-emulator/current/fuse/timer/Makefile.am
vendor/fuse-emulator/current/fuse/timer/sdl.c
vendor/fuse-emulator/current/fuse/timer/unix.c
vendor/fuse-emulator/current/fuse/timer/win32.c
Removed Paths:
-------------
vendor/fuse-emulator/current/fuse/sound/lowlevel.h
Modified: vendor/fuse-emulator/current/fuse/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/Makefile.am 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3007 2007-06-17 18:50:48Z zubzero $
+## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
## 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
@@ -36,6 +36,7 @@
pokefinder \
roms \
sound \
+ timer \
ui \
@WIDGET@ \
z80
@@ -87,7 +88,6 @@
sound.c \
spectrum.c \
tape.c \
- timer.c \
trdos.c \
ui.c \
uidisplay.c \
@@ -107,19 +107,18 @@
sound/libsound.a \
ui/scaler/libscaler.a \
debugger/libdebugger.a \
+timer/libtimer.a \
z80/libz80.a \
@DSKLIBS@ \
@LIBSPEC_LIBS@ \
@GLIB_LIBS@ \
@PNG_LIBS@ \
-@ASOUND_LIBS@ \
-@AO_LIBS@ \
+@SOUND_LIBS@ \
@SAMPLERATE_LIBS@ \
-@DIRECTSOUND_LIBS@ \
-@COREAUDIO_LIBS@ \
@X_LIBS@ \
@XML_LIBS@ \
compat/libcompat.a \
+compat/unix/libcompatos.a \
@WINDRES_OBJ@
fuse_DEPENDENCIES = @UI_LIBS@ \
@@ -173,7 +172,6 @@
sound.h \
spectrum.h \
tape.h \
- timer.h \
trdos.h \
utils.h \
joystick.h \
Modified: vendor/fuse-emulator/current/fuse/compat/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/Makefile.am 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
-## Copyright (c) 2003 Philip Kendall
+## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 2889 2007-05-26 17:45:08Z zubzero $
+## $Id: Makefile.am 3091 2007-08-04 16:44:45Z pak21 $
## 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
@@ -23,13 +23,25 @@
AUTOMAKE_OPTIONS = foreign
+SUBDIRS = @COMPAT_OSNAME@
+
+DIST_SUBDIRS = amiga \
+ morphos \
+ unix \
+ win32
+
noinst_LIBRARIES = libcompat.a
-libcompat_a_SOURCES = dirname.c \
- getopt.c \
- getopt1.c \
- mkstemp.c
+libcompat_a_SOURCES =
+EXTRA_libcompat_a_SOURCES = dirname.c \
+ getopt.c \
+ getopt1.c \
+ mkstemp.c
+
+libcompat_a_LIBADD = $(COMPAT_LIBADD)
+libcompat_a_DEPENDENCIES = $(COMPAT_LIBADD)
+
INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
noinst_HEADERS = getopt.h
Added: vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/amiga/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = ../unix/osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Added: vendor/fuse-emulator/current/fuse/compat/amiga/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/amiga/paths.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/amiga/paths.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,40 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ return "T:";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ return "PROGDIR:settings";
+}
Modified: vendor/fuse-emulator/current/fuse/compat/dirname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/dirname.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat/dirname.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -26,8 +26,6 @@
#include <config.h>
-#ifndef HAVE_DIRNAME
-
#include <string.h>
#include "fuse.h"
@@ -99,5 +97,3 @@
return path;
}
-
-#endif /* #ifndef HAVE_DIRNAME */
Modified: vendor/fuse-emulator/current/fuse/compat/getopt.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/getopt.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat/getopt.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -34,8 +34,6 @@
# include <config.h>
#endif
-#if !defined HAVE_GETOPT_LONG && !defined AMIGA && !defined __MORPHOS__
-
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
@@ -1280,5 +1278,3 @@
}
#endif /* TEST */
-
-#endif /* #ifndef HAVE_GETOPT_LONG */
Modified: vendor/fuse-emulator/current/fuse/compat/getopt1.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/getopt1.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat/getopt1.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -24,8 +24,6 @@
#include <config.h>
#endif
-#if !defined HAVE_GETOPT_LONG && !defined AMIGA && !defined __MORPHOS__
-
#ifdef _LIBC
# include <getopt.h>
#else
@@ -198,5 +196,3 @@
}
#endif /* TEST */
-
-#endif /* #ifndef HAVE_GETOPT_LONG */
Modified: vendor/fuse-emulator/current/fuse/compat/mkstemp.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/mkstemp.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat/mkstemp.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -20,8 +20,6 @@
#include <config.h>
-#ifndef HAVE_MKSTEMP
-
#include <errno.h>
#include <stdlib.h>
#include <string.h>
@@ -109,5 +107,3 @@
errno = EEXIST;
return -1;
}
-
-#endif /* #ifdef HAVE_MKSTEMP */
Added: vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/morphos/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ ../amiga/paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Added: vendor/fuse-emulator/current/fuse/compat/morphos/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/morphos/osname.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/morphos/osname.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,34 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int compat_osname( char *buffer, size_t length )
+{
+ snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" );
+}
Added: vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/unix/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Added: vendor/fuse-emulator/current/fuse/compat/unix/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/osname.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/unix/osname.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,50 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3094 2007-08-05 14:20:15Z fredm $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/utsname.h>
+
+#include "ui/ui.h"
+
+int compat_osname( char *buffer, size_t length )
+{
+ struct utsname osname;
+ int error;
+
+ error = uname( &osname );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting system information: %s",
+ strerror( errno ) );
+ return 1;
+ }
+
+ snprintf( buffer, length, "%s %s %s", osname.sysname, osname.machine,
+ osname.release );
+ return 0;
+}
Added: vendor/fuse-emulator/current/fuse/compat/unix/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/unix/paths.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/unix/paths.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,48 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ const char *dir;
+
+ /* Use TMPDIR if specified, if not /tmp */
+ dir = getenv( "TMPDIR" ); if( dir ) return dir;
+ return "/tmp";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ const char *dir;
+ dir = getenv( "HOME" ); if( dir ) return dir;
+ return ".";
+}
Added: vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/win32/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+## Copyright (c) 2007 Philip Kendall
+
+## $Id: Makefile.am 3092 2007-08-04 19:20:58Z pak21 $
+
+## 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+##
+## Author contact information:
+##
+## E-mail: phi...@sh...
+
+AUTOMAKE_OPTIONS = foreign
+
+noinst_LIBRARIES = libcompatos.a
+
+libcompatos_a_SOURCES = osname.c \
+ paths.c
+
+INCLUDES = @GLIB_CFLAGS@ @GTK_CFLAGS@ @LIBSPEC_CFLAGS@
Added: vendor/fuse-emulator/current/fuse/compat/win32/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/osname.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,56 @@
+/* osname.c: Get a representation of the OS we're running on
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: osname.c 3091 2007-08-04 16:44:45Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <windows.h>
+
+int compat_osname( char *osname, size_t length )
+{
+ OSVERSIONINFO buf;
+ char *windows_name;
+
+ buf.dwOSVersionInfoSize = sizeof( buf );
+ sys_error = GetVersionEx( &buf );
+ if( sys_error == 0 ) {
+ ui_error( UI_ERROR_ERROR, "error getting system information." );
+ return 1;
+ }
+
+ switch( buf.dwPlatformId ) {
+ case VER_PLATFORM_WIN32_NT: windows_name = "NT"; break;
+ case VER_PLATFORM_WIN32_WINDOWS: windows_name = "95/98"; break;
+ case VER_PLATFORM_WIN32s: windows_name = "3.1"; break;
+ default: windows_name = "unknown"; break;
+ }
+
+ snprintf( osname, length,
+ "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
+ gcrypt_version, libspectrum_version(),
+ windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
+ buf.dwBuildNumber, buf.szCSDVersion );
+
+ return 0;
+}
Added: vendor/fuse-emulator/current/fuse/compat/win32/paths.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/paths.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/compat/win32/paths.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -0,0 +1,52 @@
+/* paths.c: Path-related compatability routines
+ Copyright (c) 1999-2007 Philip Kendall
+
+ $Id: paths.c 3092 2007-08-04 19:20:58Z pak21 $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include "compat.h"
+
+const char*
+compat_get_temp_path( void )
+{
+ const char *dir;
+
+ /* Something close to this algorithm specified at
+ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/gettemppath.asp
+ */
+ dir = getenv( "TMP" ); if( dir ) return dir;
+ dir = getenv( "TEMP" ); if( dir ) return dir;
+ return ".";
+}
+
+const char*
+compat_get_home_path( void )
+{
+ const char *dir;
+ dir = getenv( "USERPROFILE" ); if( dir ) return dir;
+ dir = getenv( "WINDIR" ); if( dir ) return dir;
+ return ".";
+}
Modified: vendor/fuse-emulator/current/fuse/compat.h
===================================================================
--- vendor/fuse-emulator/current/fuse/compat.h 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/compat.h 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* compat.h: various compatibility bits
Copyright (c) 2003 Philip Kendall
- $Id: compat.h 3039 2007-07-03 12:17:27Z fredm $
+ $Id: compat.h 3092 2007-08-04 19:20:58Z pak21 $
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,8 @@
#ifndef FUSE_COMPAT_H
#define FUSE_COMPAT_H
+#include <stdlib.h>
+
/* Remove the gcc-specific incantations if we're not using gcc */
#ifdef __GNUC__
@@ -70,4 +72,8 @@
#define FUSE_DIR_SEP_STR "/"
#endif
+int compat_osname( char *buffer, size_t length );
+const char* compat_get_temp_path( void );
+const char* compat_get_home_path( void );
+
#endif /* #ifndef FUSE_COMPAT_H */
Modified: vendor/fuse-emulator/current/fuse/configure.in
===================================================================
--- vendor/fuse-emulator/current/fuse/configure.in 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/configure.in 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3078 2007-07-27 10:49:51Z pak21 $
+dnl $Id: configure.in 3093 2007-08-04 20:51:34Z pak21 $
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
@@ -351,11 +351,12 @@
plus3disk=yes)
AC_MSG_RESULT($plus3disk)
if test "$plus3disk" = yes; then
- AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765"; lib765=yes,
+ AC_CHECK_HEADERS(765.h, DSKLIBS="$DSKLIBS -l765" lib765=yes,
AC_MSG_WARN(765.h not found - +3 disk support disabled))
fi
dnl Do we want LibDsk support?
+AC_MSG_CHECKING(whether libdsk is available)
AC_ARG_WITH(libdsk,
[ --without-libdsk disable LibDsk support],
if test "$withval" = no; then libdsk=no; else libdsk=yes; fi,
@@ -396,12 +397,11 @@
AC_CHECK_LIB( asound, snd_pcm_hw_params_set_period_size_near,
[AC_CHECK_HEADER(
alsa/asoundlib.h,
- [AC_DEFINE([USE_LIBASOUND], 1, [Defined if we're going to be using the installed libasound]) ASOUND_LIBS='-lasound'],
+ [alsa_available=yes],
[AC_MSG_WARN(alsa/asoundlib.h not found - no ALSA output)]
)],
[AC_MSG_WARN(snd_pcm_hw_params_set_period_size_near not found - no ALSA output)]
)
- AC_SUBST(ASOUND_LIBS)
fi
dnl Check if a version of libao which supplies ao_open_live is available
@@ -415,21 +415,19 @@
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 installed libao]) AO_LIBS='-lao'],
+ [ao_available=yes],
[AC_MSG_WARN(ao/ao.h not found - no libao sound output)]
)],
[AC_MSG_WARN(ao_open_live not found - no libao sound output)]
)
- AC_SUBST(AO_LIBS)
fi
dnl Check if DirectSound is available
AC_CHECK_HEADER(
dsound.h,
- [AC_DEFINE([USE_DIRECTSOUND], 1, [Defined if we're going to be using DirectSound]) DIRECTSOUND_LIBS='-ldsound -lole32 -ldxguid'],
+ [dxsound_available=yes],
[AC_MSG_WARN(dsound.h not found - no DirectSound output)]
)
-AC_SUBST(DIRECTSOUND_LIBS)
PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
AC_DEFINE([HAVE_SAMPLERATE],1,[Define to 1 if you have libsamplerate.]),
@@ -440,11 +438,56 @@
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'],
+ [coreaudio_available=yes],
[AC_MSG_WARN(CoreAudio/AudioHardware.h not found - no CoreAudio sound output)]
)
-AC_SUBST(COREAUDIO_LIBS)
+dnl
+dnl Decide which sound routines to use
+dnl
+
+AC_MSG_CHECKING(which sound routines to use)
+if test "$dxsound_available" = yes; then
+ SOUND_LIBADD='dxsound.$(OBJEXT)' SOUND_LIBS='-ldsound -lole32 -ldxguid'
+ AC_MSG_RESULT(DirectX)
+elif test "$UI" = sdl; then
+ SOUND_LIBADD='sdlsound.$(OBJEXT)' SOUND_LIBS='' sound_fifo=yes
+ AC_MSG_RESULT(SDL)
+elif test "$alsa_available" = yes; then
+ SOUND_LIBADD='alsasound.$(OBJEXT)' SOUND_LIBS='-lasound'
+ AC_MSG_RESULT(ALSA)
+elif test "$ao_available" = yes; then
+ SOUND_LIBADD='aosound.$(OBJEXT)' SOUND_LIBS='-lao'
+ AC_MSG_RESULT(libao)
+elif test "$ac_cv_header_dsound_h" = yes; then
+ # Later selection between these two
+ SOUND_LIBADD='sunsound.$(OBJEXT) hpsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(Solaris or HP/UX)
+elif test "$ac_cv_header_sys_soundcard_h" = yes; then
+ SOUND_LIBADD='osssound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(OSS)
+elif test "$ac_cv_header_sys_audioio_h" = yes; then
+ dnl OpenBSD
+ SOUND_LIBADD='sunsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(OpenBSD)
+elif test "$coreaudio_available" = yes; then
+ SOUND_LIBADD='coreaudiosound.$(OBJEXT)' SOUND_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices' sound_fifo=yes
+ AC_MSG_RESULT(CoreAudio)
+else
+ SOUND_LIBADD='nullsound.$(OBJEXT)' SOUND_LIBS=''
+ AC_MSG_RESULT(none)
+ AC_DEFINE([NO_SOUND], 1, [Defined if no sound code is present])
+fi
+
+if test "$sound_fifo" = yes; then
+ dnl Strange construct used here as += doesn't seem to work on OS X
+ SOUND_LIBADD="$SOUND_LIBADD"' sfifo.$(OBJEXT)'
+ AC_DEFINE([SOUND_FIFO], 1, [Defined if the sound code uses a fifo])
+fi
+
+AC_SUBST(SOUND_LIBADD)
+AC_SUBST(SOUND_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,
@@ -504,6 +547,82 @@
[Defined if we've got libxml2]),
AC_WARN(libxml2 not found - config file use disabled))
+dnl Work out which timer routines to use
+AC_MSG_CHECKING(which timer routines to use)
+if test "$UI" = sdl; then
+ TIMER_LIBADD='sdl.$(OBJEXT)'
+ timer_header='<SDL.h>'
+ timer_type='Uint32'
+ AC_MSG_RESULT(SDL)
+else
+ case "$target_os" in
+ win32)
+ TIMER_LIBADD='win32.$(OBJEXT)'
+ timer_header='<windows.h>'
+ timer_type='DWORD'
+ AC_MSG_RESULT(Win32)
+ ;;
+ *)
+ TIMER_LIBADD='unix.$(OBJEXT)'
+ timer_header='<sys/time.h>'
+ timer_type='struct timeval'
+ AC_MSG_RESULT(unix)
+ ;;
+ esac
+fi
+
+AC_SUBST(TIMER_LIBADD)
+AC_DEFINE_UNQUOTED([TIMER_HEADER], $timer_header, [The header needed to define the timer type])
+AC_DEFINE_UNQUOTED([TIMER_TYPE], $timer_type, [The type needed for the timer routines])
+
+dnl Work out which standard routines we're missing
+AC_MSG_CHECKING(which standard routines we're missing)
+COMPAT_LIBADD=''
+missing_routines=''
+if test "$ac_cv_func_dirname" = no; then
+ COMPAT_LIBADD="$COMPAT_LIBADD"'dirname.$(OBJEXT) '
+ missing_routines="$missing_routines"'dirname '
+fi
+if test "$ac_cv_func_getopt_long" = no; then
+ case "$target_os" in
+ amiga|morphos)
+ dnl Our getopt_long replacement doesn't work, so don't use it
+ ;;
+ *)
+ COMPAT_LIBADD="$COMPAT_LIBADD"'getopt.$(OBJEXT) getopt1.$(OBJEXT) '
+ missing_routines="$missing_routines"'getopt_long '
+ ;;
+ esac
+fi
+if test "$ac_cv_func_mkstemp" = no; then
+ COMPAT_LIBADD="$COMPAT_LIBADD"'mkstemp.$(OBJEXT) '
+ missing_routines="$missing_routines"'mkstemp '
+fi
+if test "x$missing_routines" = x; then
+ missing_routines='(none)'
+fi
+AC_MSG_RESULT($missing_routines)
+AC_SUBST(COMPAT_LIBADD)
+
+dnl Work out which compatability routines to use
+AC_MSG_CHECKING(which compatability routines to use)
+case "$target_os" in
+ amiga)
+ COMPAT_OSNAME='amiga'
+ ;;
+ morphos)
+ COMPAT_OSNAME='morphos'
+ ;;
+ win32)
+ COMPAT_OSNAME='win32'
+ ;;
+ *)
+ COMPAT_OSNAME='unix'
+ ;;
+esac
+AC_MSG_RESULT($COMPAT_OSNAME)
+AC_SUBST(COMPAT_OSNAME)
+
dnl Do we want the low memory compile?
AC_MSG_CHECKING(whether low memory compile requested)
AC_ARG_ENABLE(smallmem,
@@ -540,24 +659,12 @@
fi
fi
-dnl Debugging mode: turns off any use of signals to make running under gdb
-dnl useful.
-AC_MSG_CHECKING(whether debugging mode requested)
-AC_ARG_ENABLE(debug-mode,
-[ --enable-debug-mode enable debugging mode (developers only)],
-if test "$enableval" = yes; then
- debugging=yes;
-else
- debugging=no;
-fi,
-debugging=no)
-AC_MSG_RESULT($debugging)
-if test "$debugging" = yes; then
- AC_DEFINE([DEBUG_MODE], 1, [Defined if we're in debugging mode])
-fi
-
AC_OUTPUT(Makefile \
compat/Makefile \
+compat/amiga/Makefile \
+compat/morphos/Makefile \
+compat/unix/Makefile \
+compat/win32/Makefile \
debugger/Makefile \
disk/Makefile \
hacking/Makefile \
@@ -569,6 +676,7 @@
pokefinder/Makefile \
roms/Makefile \
sound/Makefile \
+timer/Makefile \
ui/Makefile \
ui/fb/Makefile \
ui/gtk/Makefile \
Modified: vendor/fuse-emulator/current/fuse/event.c
===================================================================
--- vendor/fuse-emulator/current/fuse/event.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/event.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* event.c: Routines needed for dealing with the event list
Copyright (c) 2000-2004 Philip Kendall
- $Id: event.c 3032 2007-06-28 22:48:54Z zubzero $
+ $Id: event.c 3084 2007-07-30 21:54:54Z pak21 $
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
@@ -38,12 +38,11 @@
#include "psg.h"
#include "rzx.h"
#include "tape.h"
-#include "timer.h"
+#include "timer/timer.h"
#include "trdos.h"
#include "ui/ui.h"
#include "ui/uijoystick.h"
#include "spectrum.h"
-#include "timer.h"
#include "z80/z80.h"
/* A large value to mean `no events due' */
Modified: vendor/fuse-emulator/current/fuse/fuse.c
===================================================================
--- vendor/fuse-emulator/current/fuse/fuse.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/fuse.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* fuse.c: The Free Unix Spectrum Emulator
Copyright (c) 1999-2007 Philip Kendall
- $Id: fuse.c 3040 2007-07-03 14:14:00Z zubzero $
+ $Id: fuse.c 3091 2007-08-04 16:44:45Z pak21 $
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
@@ -68,10 +68,9 @@
#include "slt.h"
#include "snapshot.h"
#include "sound.h"
-#include "sound/lowlevel.h"
#include "spectrum.h"
#include "tape.h"
-#include "timer.h"
+#include "timer/timer.h"
#include "trdos.h"
#include "ui/ui.h"
#include "ui/scaler/scaler.h"
@@ -297,15 +296,8 @@
{
size_t i;
unsigned int version[4] = { 0, 0, 0, 0 };
- char *custom;
+ char *custom, osname[ 256 ];
-#ifndef WIN32
- struct utsname buf;
-#else /* #ifndef WIN32 */
- OSVERSIONINFO buf;
- char *windows_name;
-#endif /* #ifndef WIN32 */
-
libspectrum_error error; int sys_error;
const char *gcrypt_version;
@@ -315,25 +307,8 @@
for( i=0; i<4; i++ ) if( version[i] > 0xff ) version[i] = 0xff;
-#if defined(__MORPHOS__)
- snprintf(buf.sysname, __SYS_NMLN, "MorphOS");
- snprintf(buf.release, __SYS_NMLN, "1.4.4");
- snprintf(buf.machine, __SYS_NMLN, "Pegasos");
-#elif defined(WIN32) /* #if defined(__MORPHOS__) */
- buf.dwOSVersionInfoSize = sizeof( buf );
- sys_error = GetVersionEx( &buf );
- if( sys_error == 0 ) {
- ui_error( UI_ERROR_ERROR, "error getting system information." );
- return 1;
- }
-#else /* #if defined(__MORPHOS__) */
- sys_error = uname( &buf );
- if( sys_error == -1 ) {
- ui_error( UI_ERROR_ERROR, "error getting system information: %s",
- strerror( errno ) );
- return 1;
- }
-#endif /* #if defined(__MORPHOS__) */
+ sys_error = compat_osname( osname, sizeof( osname ) );
+ if( sys_error ) return 1;
error = libspectrum_creator_alloc( &fuse_creator ); if( error ) return error;
@@ -358,29 +333,10 @@
gcrypt_version = libspectrum_gcrypt_version();
if( !gcrypt_version ) gcrypt_version = "not available";
-#ifndef WIN32
-
- snprintf( custom, 256, "gcrypt: %s\nlibspectrum: %s\nuname: %s %s %s",
- gcrypt_version, libspectrum_version(),
- buf.sysname, buf.machine, buf.release );
-
-#else /* #ifndef WIN32 */
-
- switch( buf.dwPlatformId ) {
- case VER_PLATFORM_WIN32_NT: windows_name = "NT"; break;
- case VER_PLATFORM_WIN32_WINDOWS: windows_name = "95/98"; break;
- case VER_PLATFORM_WIN32s: windows_name = "3.1"; break;
- default: windows_name = "unknown"; break;
- }
-
snprintf( custom, 256,
- "gcrypt: %s\nlibspectrum: %s\nuname: Windows %s %d.%d build %d %s",
- gcrypt_version, libspectrum_version(),
- windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
- buf.dwBuildNumber, buf.szCSDVersion );
+ "gcrypt: %s\nlibspectrum: %s\nuname: %s", gcrypt_version,
+ libspectrum_version(), osname );
-#endif /* #ifndef WIN32 */
-
error = libspectrum_creator_set_custom(
fuse_creator, (libspectrum_byte*)custom, strlen( custom )
);
Modified: vendor/fuse-emulator/current/fuse/hacking/ChangeLog
===================================================================
--- vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/hacking/ChangeLog 2007-08-06 01:17:48 UTC (rev 448)
@@ -1941,3 +1941,38 @@
simpleide.c,tape.c,ui/gtk/{browse.c,debugger.c,gtkjoystick.c,
gtkmouse.c,gtkui.c,pokefinder.c,rollback.c},z80/z80.c,zxatasp.c,
zxcf.c: some -Wextra tidyup (not finished yet).
+20070729 menu_data.pl,printer.c,settings.pl,ui/gtk/{debugger.c,gtkjoystick.c,
+ gtkmouse.c,pokefinder.c,stock.c},z80/coretest.c: more -Wextra tidyup.
+20070730 Makefile.am,configure.in,fuse.c,sound/{Makefile.am,alsasound.c,
+ aosound.c,coreaudiosound.c,dxsound.c,hpsound.c,lowlevel.h,nullsound.c,
+ osssound.c,sdlsound.c,sfifo.c,sound.c,sunsound.c},spectrum.c,timer.c:
+ move sound selection logic into configure.in (patch #1763265).
+20070730 utils.c: mmap no longer used.
+20070730 Makefile.am,configure.in,event.c,fuse.c,rzx.c,spectrum.c,tape.c,
+ timer.[ch],timer/{Makefile.am,sdl.c,timer.c,timer.h,unix.c,win32.c},
+ ui/gtk/gtkui.c,widget/widget.c: move timer code selection logic into
+ configure.in.
+20070731 configure.in: fix spelling of ALSA (thanks, Gergely).
+20070731 configure.in,compat/{Makefile.am,dirname.c,getopt.c,getopt1.c,
+ mkstemp.c}: move compatability detection logic into configure.in.
+20070731 timer/{Makefile.am,sdl.c,unix.c,win32.c}: add missing properties and
+ fix initial comments (Stuart).
+20070802 machines/tc2048.c: correct joystick port mask on TC2048 (verified on
+ real hardware) (Fred).
+20070803 configure.in,timer/timer.h: move timer header selection logic into
+ configure.in.
+20070803 sound/alsasound.c: release code should not dump 100 lines of stuff
+ onto the console.
+20070804 configure.in,fuse.c,compat/Makefile.am,compat/amiga/Makefile.am,
+ compat/morphos/{Makefile.am,osname.c},compat/unix/{Makefile.am,
+ osname.c},compat/win32/{Makefile.am,osname.c}: move OS name function
+ selection into configure.in.
+20070804 compat.h,settings.pl,trdos.c,utils.c,compat/amiga/{Makefile.am,paths.c},
+ compat/morphos/Makefile.am,compat/unix/{Makefile.am,paths.c},
+ compat/win32/{Makefile.am,paths.c}: move pathname functions into
+ compatability directories.
+20070804 configure.in: remove debug mode as its not used anywhere.
+20070806 compat/unix/osname.c: ensure we have the prototype for strerror()
+ (Fred).
+20070806 tape.[ch],ula.c: enable beeper output for MIC bit (an attempt at
+ feature request #1763114) (Fred).
Modified: vendor/fuse-emulator/current/fuse/machines/tc2048.c
===================================================================
--- vendor/fuse-emulator/current/fuse/machines/tc2048.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/machines/tc2048.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2005 Philip Kendall
Copyright (c) 2002-2004 Fredrick Meunier
- $Id: tc2048.c 3022 2007-06-28 17:14:46Z zubzero $
+ $Id: tc2048.c 3088 2007-08-02 13:04:07Z fredm $
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
@@ -47,7 +47,7 @@
static libspectrum_byte tc2048_contend_delay( libspectrum_dword time );
static const periph_t peripherals[] = {
- { 0x00e0, 0x0000, joystick_kempston_read, NULL },
+ { 0x0020, 0x0000, joystick_kempston_read, NULL },
{ 0x0018, 0x0010, if1_port_in, if1_port_out },
{ 0x0018, 0x0008, if1_port_in, if1_port_out },
{ 0x0018, 0x0000, if1_port_in, if1_port_out },
Modified: vendor/fuse-emulator/current/fuse/menu_data.pl
===================================================================
--- vendor/fuse-emulator/current/fuse/menu_data.pl 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/menu_data.pl 2007-08-06 01:17:48 UTC (rev 448)
@@ -3,7 +3,7 @@
# menu_data.pl: generate the menu structure from menu_data.dat
# Copyright (c) 2004-2007 Philip Kendall, Stuart Brady, Marek Januszewski
-# $Id: menu_data.pl 2915 2007-05-30 12:24:56Z zubzero $
+# $Id: menu_data.pl 3081 2007-07-29 15:30:30Z pak21 $
# 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
@@ -262,7 +262,7 @@
print 'NULL';
}
- print ", ", $item->{action} || 0, ", \"<$item->{type}>\" },\n";
+ print ", ", $item->{action} || 0, ", \"<$item->{type}>\", NULL },\n";
_dump_gtk( $item, "$gtk_path/$name", $new_cpath ) if $item->{submenu};
}
Modified: vendor/fuse-emulator/current/fuse/printer.c
===================================================================
--- vendor/fuse-emulator/current/fuse/printer.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/printer.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* printer.c: Printer support
Copyright (c) 2001-2004 Ian Collier, Russell Marks, Philip Kendall
- $Id: printer.c 3080 2007-07-27 17:46:12Z pak21 $
+ $Id: printer.c 3081 2007-07-29 15:30:30Z pak21 $
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
@@ -69,7 +69,7 @@
static void printer_zxp_reset(int hard_reset);
-static module_info_t printer_zxp_module_info={printer_zxp_reset,NULL};
+static module_info_t printer_zxp_module_info={printer_zxp_reset,NULL,NULL,NULL};
static void printer_zxp_init(void)
{
Modified: vendor/fuse-emulator/current/fuse/rzx.c
===================================================================
--- vendor/fuse-emulator/current/fuse/rzx.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/rzx.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* rzx.c: .rzx files
Copyright (c) 2002-2003 Philip Kendall
- $Id: rzx.c 2958 2007-06-10 14:09:38Z pak21 $
+ $Id: rzx.c 3084 2007-07-30 21:54:54Z pak21 $
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
@@ -40,7 +40,7 @@
#include "rzx.h"
#include "settings.h"
#include "snapshot.h"
-#include "timer.h"
+#include "timer/timer.h"
#include "ui/ui.h"
#include "ula.h"
#include "utils.h"
Modified: vendor/fuse-emulator/current/fuse/settings.pl
===================================================================
--- vendor/fuse-emulator/current/fuse/settings.pl 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/settings.pl 2007-08-06 01:17:48 UTC (rev 448)
@@ -3,7 +3,7 @@
# settings.pl: generate settings.c from settings.dat
# Copyright (c) 2002-2005 Philip Kendall
-# $Id: settings.pl 3039 2007-07-03 12:17:27Z fredm $
+# $Id: settings.pl 3092 2007-08-04 19:20:58Z pak21 $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -117,6 +117,8 @@
}
print hashline( __LINE__ ), << 'CODE';
+ /* show_help */ 0,
+ /* show_version */ 0,
};
#ifdef HAVE_LIB_XML2
@@ -170,7 +172,7 @@
xmlDocPtr doc;
- home = utils_get_home_path(); if( !home ) return 1;
+ home = compat_get_home_path(); if( !home ) return 1;
snprintf( path, 256, "%s/%s", home, CONFIG_FILE_NAME );
@@ -270,7 +272,7 @@
xmlDocPtr doc; xmlNodePtr root;
- home = utils_get_home_path(); if( !home ) return 1;
+ home = compat_get_home_path(); if( !home ) return 1;
snprintf( path, 256, "%s/%s", home, CONFIG_FILE_NAME );
Modified: vendor/fuse-emulator/current/fuse/sound/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/Makefile.am 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/Makefile.am 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2004 Philip Kendall
-## $Id: Makefile.am 2920 2007-06-02 02:06:05Z fredm $
+## $Id: Makefile.am 3082 2007-07-30 21:12:44Z pak21 $
## 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
@@ -27,15 +27,20 @@
noinst_LIBRARIES = libsound.a
-libsound_a_SOURCES = dxsound.c \
- alsasound.c \
- aosound.c \
- coreaudiosound.c \
- hpsound.c \
- nullsound.c \
- osssound.c \
- sdlsound.c \
- sfifo.c \
- sunsound.c
+libsound_a_SOURCES =
-noinst_HEADERS = lowlevel.h sfifo.h
+EXTRA_libsound_a_SOURCES = dxsound.c \
+ alsasound.c \
+ aosound.c \
+ coreaudiosound.c \
+ hpsound.c \
+ nullsound.c \
+ osssound.c \
+ sdlsound.c \
+ sfifo.c \
+ sunsound.c
+
+libsound_a_LIBADD = $(SOUND_LIBADD)
+libsound_a_DEPENDENCIES = $(SOUND_LIBADD)
+
+noinst_HEADERS = sfifo.h
Modified: vendor/fuse-emulator/current/fuse/sound/alsasound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/alsasound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/alsasound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* alsasound.c: ALSA (Linux) sound I/O
Copyright (c) 2006 Gergely Szasz
- $Id: alsasound.c 3059 2007-07-15 21:14:44Z zubzero $
+ $Id: alsasound.c 3090 2007-08-03 18:49:43Z pak21 $
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,10 +21,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_ALSA
-
#include <stdio.h>
#include <string.h>
#include <ctype.h>
@@ -337,12 +333,8 @@
return 1;
}
+ if( first_init ) snd_output_stdio_attach(&output, stdout, 0);
- if( first_init ) {
- snd_output_stdio_attach(&output, stdout, 0);
- snd_pcm_dump(pcm_handle, output);
- }
-
first_init = 0;
init_running = 0;
return 0; /* success */
@@ -376,5 +368,3 @@
}
}
}
-
-#endif /* #ifdef SOUND_ALSA */
Modified: vendor/fuse-emulator/current/fuse/sound/aosound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/aosound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/aosound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* aosound.c: libao sound I/O
Copyright (c) 2004 Gergely Szasz, Philip Kendall
- $Id: aosound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: aosound.c 3082 2007-07-30 21:12:44Z pak21 $
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
@@ -27,10 +27,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_AO
-
#include <string.h>
#include <ao/ao.h>
@@ -246,5 +242,3 @@
ao_play( dev_for_ao, data8, len );
}
-
-#endif /* #ifdef SOUND_AO */
Modified: vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -19,10 +19,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_COREAUDIO
-
#include <errno.h>
#include <unistd.h>
#include <CoreAudio/AudioHardware.h>
@@ -277,5 +273,3 @@
return noErr;
}
-
-#endif /* #ifdef SOUND_COREAUDIO */
Modified: vendor/fuse-emulator/current/fuse/sound/dxsound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/dxsound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/dxsound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* dxsound.c: DirectX sound I/O
Copyright (c) 2003-2004 Marek Januszewski, Philip Kendall
- $Id: dxsound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: dxsound.c 3082 2007-07-30 21:12:44Z pak21 $
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
@@ -25,10 +25,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_DX
-
#include <windows.h>
#include <mmsystem.h>
#include <dsound.h>
@@ -234,5 +230,3 @@
IDirectSoundBuffer_Unlock( lpDSBuffer, ucbuffer1, i1, ucbuffer2, i2 );
}
}
-
-#endif /* #ifdef SOUND_DX */
Modified: vendor/fuse-emulator/current/fuse/sound/hpsound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/hpsound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/hpsound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2004 Alexander Yurchenko, Russell Marks, Philip Kendall
Matan Ziv-Av, Stuart Brady
- $Id: hpsound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: hpsound.c 3082 2007-07-30 21:12:44Z pak21 $
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
@@ -22,10 +22,8 @@
#include <config.h>
-#include "lowlevel.h"
+#ifdef AUDIO_FORMAT_LINEAR16BIT
-#ifdef SOUND_HP
-
#include <sys/types.h>
#include <sys/audio.h>
#include <sys/ioctl.h>
@@ -168,4 +166,4 @@
}
}
-#endif /* #ifdef SOUND_HP */
+#endif /* #ifdef AUDIO_FORMAT_LINEAR16BIT */
Deleted: vendor/fuse-emulator/current/fuse/sound/lowlevel.h
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/lowlevel.h 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/lowlevel.h 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,83 +0,0 @@
-/* lowlevel.h: work out which lowlevel sound routines to use
- Copyright (c) 2004 Philip Kendall
-
- $Id: lowlevel.h 2920 2007-06-02 02:06:05Z fredm $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-*/
-
-/* This header file should define HAVE_SOUND if any form of sound API
- is available. If so, it should define one of the SOUND_xxx defines. */
-
-#ifndef FUSE_SOUND_LOWLEVEL_H
-#define FUSE_SOUND_LOWLEVEL_H
-
-#if defined USE_DIRECTSOUND
-
-#define HAVE_SOUND
-#define SOUND_DX
-
-#elif defined UI_SDL /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_SDL
-
-#elif defined USE_LIBASOUND /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_ALSA
-
-#elif defined USE_LIBAO /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_AO
-
-#elif defined HAVE_SYS_AUDIO_H /* #if defined USE_DIRECTSOUND */
-
-#include <sys/audio.h>
-
-#if defined AUDIO_SETINFO
-
-#define HAVE_SOUND
-#define SOUND_SUN
-
-#elif defined AUDIO_FORMAT_LINEAR16BIT /* #if defined AUDIO_SETINFO */
-
-#define HAVE_SOUND
-#define SOUND_HP
-
-#endif /* #if defined AUDIO_SETINFO */
-
-#elif defined HAVE_SYS_SOUNDCARD_H /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_OSS
-
-/* TODO: does OpenBSD have <sys/audio.h>? Solaris does, so the above
- check will do there */
-#elif defined HAVE_SYS_AUDIOIO_H /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_SUN
-
-#elif defined USE_COREAUDIO /* #if defined USE_DIRECTSOUND */
-
-#define HAVE_SOUND
-#define SOUND_COREAUDIO
-
-#endif /* #if defined USE_DIRECTSOUND */
-
-#endif /* #ifndef FUSE_SOUND_LOWLEVEL_H */
Modified: vendor/fuse-emulator/current/fuse/sound/nullsound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/nullsound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/nullsound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* nullsound.c: dummy sound routines
Copyright (c) 2003-2004 Philip Kendall
- $Id: nullsound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: nullsound.c 3082 2007-07-30 21:12:44Z pak21 $
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,13 +21,9 @@
#include <config.h>
-#include "lowlevel.h"
-
/* Dummy functions for when we don't have a sound device; should never be
called, so just abort if they are */
-#ifndef HAVE_SOUND
-
#include "fuse.h"
int
@@ -47,5 +43,3 @@
{
fuse_abort();
}
-
-#endif /* #ifndef HAVE_SOUND */
Modified: vendor/fuse-emulator/current/fuse/sound/osssound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/osssound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/osssound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* osssound.c: OSS (e.g. Linux) sound I/O
Copyright (c) 2000-2004 Russell Marks, Matan Ziv-Av, Philip Kendall
- $Id: osssound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: osssound.c 3082 2007-07-30 21:12:44Z pak21 $
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,10 +21,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_OSS
-
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -183,5 +179,3 @@
ofs+=ret,len-=ret;
}
}
-
-#endif /* #ifdef SOUND_OSS */
Modified: vendor/fuse-emulator/current/fuse/sound/sdlsound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/sdlsound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/sdlsound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2004 Alexander Yurchenko, Russell Marks, Philip Kendall,
Fredrick Meunier
- $Id: sdlsound.c 3039 2007-07-03 12:17:27Z fredm $
+ $Id: sdlsound.c 3082 2007-07-30 21:12:44Z pak21 $
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
@@ -22,10 +22,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#ifdef SOUND_SDL
-
#include <errno.h>
#include <fcntl.h>
#include <math.h>
@@ -214,5 +210,3 @@
/* If we ran out of sound, do nothing else as SDL has prefilled
the output buffer with silence :( */
}
-
-#endif /* #ifdef SOUND_SDL */
Modified: vendor/fuse-emulator/current/fuse/sound/sfifo.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/sfifo.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/sfifo.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -16,10 +16,6 @@
#include <config.h>
-#include "lowlevel.h"
-
-#if defined SOUND_SDL || defined SOUND_COREAUDIO
-
#ifdef __KERNEL__
# include <linux/string.h>
# include <asm/uaccess.h>
@@ -328,5 +324,3 @@
}
#endif
-
-#endif /* SOUND_SDL */
Modified: vendor/fuse-emulator/current/fuse/sound/sunsound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound/sunsound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound/sunsound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -1,7 +1,7 @@
/* sunsound.c: OpenBSD sound I/O
Copyright (c) 2002-2004 Alexander Yurchenko, Russell Marks, Philip Kendall
- $Id: sunsound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: sunsound.c 3082 2007-07-30 21:12:44Z pak21 $
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,10 +21,8 @@
#include <config.h>
-#include "lowlevel.h"
+#if defined AUDIO_SETINFO || defined HAVE_SYS_AUDIOIO_H
-#ifdef SOUND_SUN
-
#if defined(__SVR4) && defined(__sun)
#define solaris
#else
@@ -208,4 +206,5 @@
}
}
-#endif /* #ifdef SOUND_SUN */
+#endif /* #if defined AUDIO_SETINFO || defined HAVE_SYS_AUDIOIO_H */
+
Modified: vendor/fuse-emulator/current/fuse/sound.c
===================================================================
--- vendor/fuse-emulator/current/fuse/sound.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/current/fuse/sound.c 2007-08-06 01:17:48 UTC (rev 448)
@@ -2,7 +2,7 @@
Copyright (c) 2000-2007 Russell Marks, Matan Ziv-Av, Philip Kendall,
Fredrick Meunier
- $Id: sound.c 2889 2007-05-26 17:45:08Z zubzero $
+ $Id: sound.c 3082 2007-07-30 21:12:44Z pak21 $
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
@@ -46,7 +46,6 @@
#include "machine.h"
#include "settings.h"
#include "sound.h"
-#include "sound/lowlevel.h"
#include "tape.h"
#include "ui/ui.h"
@@ -175,7 +174,7 @@
#endif /* #ifdef HAVE_SAMPLERATE */
/* if we don't have any sound I/O code compiled in, don't do sound */
-#ifndef HAVE_SOUND
+#ifdef NO_SOUND
return;
#endif
Modified: vendor/fuse-emulator/current/fuse/spectrum.c
===================================================================
--- vendor/fuse-emulator/current/fuse/spectrum.c 2007-08-06 01:17:08 UTC (rev 447)
+++ vendor/fuse-emulator/...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-06 01:17:06
|
Revision: 447
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=447&view=rev
Author: fredm
Date: 2007-08-05 18:17:08 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
To prepare to load . into vendor/fuse-emulator/current, perform 2
renames.
* vendor/fuse-emulator/current/fuse/timer/timer.c: Renamed from
vendor/fuse-emulator/current/fuse/timer.c.
* vendor/fuse-emulator/current/fuse/timer/timer.h: Renamed from
vendor/fuse-emulator/current/fuse/timer.h.
Added Paths:
-----------
vendor/fuse-emulator/current/fuse/timer/
vendor/fuse-emulator/current/fuse/timer/timer.c
vendor/fuse-emulator/current/fuse/timer/timer.h
Removed Paths:
-------------
vendor/fuse-emulator/current/fuse/timer.c
vendor/fuse-emulator/current/fuse/timer.h
Copied: vendor/fuse-emulator/current/fuse/timer/timer.c (from rev 446, vendor/fuse-emulator/current/fuse/timer.c)
===================================================================
--- vendor/fuse-emulator/current/fuse/timer/timer.c (rev 0)
+++ vendor/fuse-emulator/current/fuse/timer/timer.c 2007-08-06 01:17:08 UTC (rev 447)
@@ -0,0 +1,334 @@
+/* timer.c: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+ $Id: timer.c 3043 2007-07-04 14:28:49Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 "sound/lowlevel.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+static void timer_add_time_difference( timer_type *a, long msec );
+static int timer_frame_callback_sound( libspectrum_dword last_tstates );
+
+/*
+ * 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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 SOUND_SDL || defined SOUND_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+static 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 /* #if defined SOUND_SDL || defined SOUND_COREAUDIO */
+
+/* Blocking socket-style sound based timer */
+static 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 /* #if defined SOUND_SDL || defined SOUND_COREAUDIO */
+
+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-emulator/current/fuse/timer/timer.h (from rev 446, vendor/fuse-emulator/current/fuse/timer.h)
===================================================================
--- vendor/fuse-emulator/current/fuse/timer/timer.h (rev 0)
+++ vendor/fuse-emulator/current/fuse/timer/timer.h 2007-08-06 01:17:08 UTC (rev 447)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall
+
+ $Id: timer.h 2889 2007-05-26 17:45:08Z zubzero $
+
+ 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.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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-emulator/current/fuse/timer.c
===================================================================
--- vendor/fuse-emulator/current/fuse/timer.c 2007-08-06 01:11:59 UTC (rev 446)
+++ vendor/fuse-emulator/current/fuse/timer.c 2007-08-06 01:17:08 UTC (rev 447)
@@ -1,334 +0,0 @@
-/* timer.c: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
-
- $Id: timer.c 3043 2007-07-04 14:28:49Z zubzero $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 "sound/lowlevel.h"
-#include "tape.h"
-#include "timer.h"
-#include "ui/ui.h"
-#include "ula.h"
-
-static void timer_add_time_difference( timer_type *a, long msec );
-static int timer_frame_callback_sound( libspectrum_dword last_tstates );
-
-/*
- * 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;
-}
-
-static 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;
-}
-
-static 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;
-}
-
-static 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 SOUND_SDL || defined SOUND_COREAUDIO
-
-/* Callback-style sound based timer */
-#include "sound/sfifo.h"
-
-extern sfifo_t sound_fifo;
-
-static 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 /* #if defined SOUND_SDL || defined SOUND_COREAUDIO */
-
-/* Blocking socket-style sound based timer */
-static 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 /* #if defined SOUND_SDL || defined SOUND_COREAUDIO */
-
-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-emulator/current/fuse/timer.h
===================================================================
--- vendor/fuse-emulator/current/fuse/timer.h 2007-08-06 01:11:59 UTC (rev 446)
+++ vendor/fuse-emulator/current/fuse/timer.h 2007-08-06 01:17:08 UTC (rev 447)
@@ -1,62 +0,0 @@
-/* timer.h: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall
-
- $Id: timer.h 2889 2007-05-26 17:45:08Z zubzero $
-
- 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.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 01:11:58
|
Revision: 446
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=446&view=rev
Author: fredm
Date: 2007-08-05 18:11:59 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Merge up to vendor libdsk-1.1.14 and lib765-0.4.1.
Modified Paths:
--------------
trunk/lib765/Info.plist
trunk/lib765/config.h
trunk/lib765/lib765/ChangeLog
trunk/lib765/lib765/configure
trunk/lib765/lib765/configure.in
trunk/lib765/lib765/lib/765ldsk.c
trunk/lib765/lib765/lib/Makefile.am
trunk/lib765/lib765/lib/Makefile.in
trunk/lib765/lib765.xcodeproj/project.pbxproj
trunk/lib765/libdsk/ChangeLog
trunk/lib765/libdsk/configure
trunk/lib765/libdsk/configure.in
trunk/lib765/libdsk/doc/libdsk.lyx
trunk/lib765/libdsk/doc/libdsk.pdf
trunk/lib765/libdsk/doc/libdsk.txt
trunk/lib765/libdsk/dos16ppd/Makefile
trunk/lib765/libdsk/dos32gcc/Makefile
trunk/lib765/libdsk/include/libdsk.h
trunk/lib765/libdsk/lib/Makefile.am
trunk/lib765/libdsk/lib/Makefile.in
trunk/lib765/libdsk/lib/drivers.h
trunk/lib765/libdsk/lib/drivers.inc
trunk/lib765/libdsk/lib/dsksgeom.c
trunk/lib765/libdsk/man/apriboot.1
trunk/lib765/libdsk/man/dskdump.1
trunk/lib765/libdsk/man/dskform.1
trunk/lib765/libdsk/man/dskid.1
trunk/lib765/libdsk/man/dskscan.1
trunk/lib765/libdsk/man/dsktrans.1
trunk/lib765/libdsk/man/dskutil.1
trunk/lib765/libdsk/man/md3serial.1
trunk/lib765/libdsk/tools/dsktrans.c
trunk/lib765/libdsk/win16bc5/libdsk.ide
trunk/lib765/libdsk/win16vc1/LIBDSK16.MAK
trunk/lib765/libdsk/win32bc5/libdsk.ide
trunk/lib765/libdsk/win32vc6/atlibdsk.dsp
trunk/lib765/libdsk/win32vc6/atlibdsk.h
trunk/lib765/libdsk/win32vc6/atlibdsk_i.c
trunk/lib765/libdsk/win32vc6/atlibdsk_p.c
trunk/lib765/libdsk/win32vc6/libdsk.dsp
Added Paths:
-----------
trunk/lib765/libdsk/lib/drvlogi.c
trunk/lib765/libdsk/lib/drvlogi.h
trunk/lib765/libdsk/lib/drvtele.c
trunk/lib765/libdsk/lib/drvtele.h
Property Changed:
----------------
trunk/lib765/libdsk/win32vc6/atlibdsk.dsp
trunk/lib765/libdsk/win32vc6/libdsk.dsp
Modified: trunk/lib765/Info.plist
===================================================================
--- trunk/lib765/Info.plist 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/Info.plist 2007-08-06 01:11:59 UTC (rev 446)
@@ -23,6 +23,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>0.4.0</string>
+ <string>0.4.1</string>
</dict>
</plist>
Modified: trunk/lib765/config.h
===================================================================
--- trunk/lib765/config.h 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/config.h 2007-08-06 01:11:59 UTC (rev 446)
@@ -152,4 +152,4 @@
#define PACKAGE_VERSION ""
/* Version number of package */
-#define VERSION "0.3.3"
+#define VERSION "0.4.1"
Modified: trunk/lib765/lib765/ChangeLog
===================================================================
--- trunk/lib765/lib765/ChangeLog 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/ChangeLog 2007-08-06 01:11:59 UTC (rev 446)
@@ -1,4 +1,7 @@
+2007-06-11 John Elliott
+ * Removed spurious reference to LIBDSK_EXPOSES_DIRTY.
+
2007-04-15 John Elliott
* lib765-0.4.0 released.
Modified: trunk/lib765/lib765/configure
===================================================================
--- trunk/lib765/lib765/configure 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/configure 2007-08-06 01:11:59 UTC (rev 446)
@@ -1521,8 +1521,8 @@
ac_config_sub="$SHELL $ac_aux_dir/config.sub"
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-VERSION=0.4.0
-UPDATED='15 April 2007'
+VERSION=0.4.1
+UPDATED='11 June 2007'
am__api_version="1.6"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
Modified: trunk/lib765/lib765/configure.in
===================================================================
--- trunk/lib765/lib765/configure.in 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/configure.in 2007-08-06 01:11:59 UTC (rev 446)
@@ -1,8 +1,8 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(lib/765fdc.c)
AC_CONFIG_AUX_DIR(config)
-VERSION=0.4.0
-UPDATED='15 April 2007'
+VERSION=0.4.1
+UPDATED='11 June 2007'
AM_INIT_AUTOMAKE(lib765, $VERSION)
AM_CONFIG_HEADER(config.h)
Modified: trunk/lib765/lib765/lib/765ldsk.c
===================================================================
--- trunk/lib765/lib765/lib/765ldsk.c 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/lib/765ldsk.c 2007-08-06 01:11:59 UTC (rev 446)
@@ -286,7 +286,6 @@
{
LIBDSK_FLOPPY_DRIVE *fdl = (LIBDSK_FLOPPY_DRIVE *)fd;
-#ifdef LIBDSK_EXPOSES_DIRTY
if (fdl->fdl_diskp)
{
return dsk_dirty(fdl->fdl_diskp);
@@ -295,9 +294,6 @@
{
return FD_D_UNAVAILABLE;
}
-#else // def LIBDSK_EXPOSES_DIRTY
- return FD_D_UNAVAILABLE;
-#endif // def LIBDSK_EXPOSES_DIRTY
}
/* Eject a DSK - close the image file */
Modified: trunk/lib765/lib765/lib/Makefile.am
===================================================================
--- trunk/lib765/lib765/lib/Makefile.am 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/lib/Makefile.am 2007-08-06 01:11:59 UTC (rev 446)
@@ -12,6 +12,6 @@
# If interfaces have been added increment the right-hand number.
# If interfaces have been removed set the right-hand number to 0.
#
-lib765_la_LDFLAGS = -version-info 4:1:1
+lib765_la_LDFLAGS = -version-info 4:2:1
lib765_la_SOURCES = 765drive.c 765dsk.c 765fdc.c 765ldsk.c 765i.h error.c
Modified: trunk/lib765/lib765/lib/Makefile.in
===================================================================
--- trunk/lib765/lib765/lib/Makefile.in 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765/lib/Makefile.in 2007-08-06 01:11:59 UTC (rev 446)
@@ -104,7 +104,7 @@
# If interfaces have been added increment the right-hand number.
# If interfaces have been removed set the right-hand number to 0.
#
-lib765_la_LDFLAGS = -version-info 4:1:1
+lib765_la_LDFLAGS = -version-info 4:2:1
lib765_la_SOURCES = 765drive.c 765dsk.c 765fdc.c 765ldsk.c 765i.h error.c
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
Modified: trunk/lib765/lib765.xcodeproj/project.pbxproj
===================================================================
--- trunk/lib765/lib765.xcodeproj/project.pbxproj 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/lib765.xcodeproj/project.pbxproj 2007-08-06 01:11:59 UTC (rev 446)
@@ -7,6 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
+ B632254A0C66A7DD00BB081B /* drvlogi.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225480C66A7DD00BB081B /* drvlogi.c */; };
+ B632254B0C66A7DD00BB081B /* drvlogi.h in Headers */ = {isa = PBXBuildFile; fileRef = B63225490C66A7DD00BB081B /* drvlogi.h */; };
+ B632254E0C66A7FA00BB081B /* drvtele.c in Sources */ = {isa = PBXBuildFile; fileRef = B632254C0C66A7FA00BB081B /* drvtele.c */; };
+ B632254F0C66A7FA00BB081B /* drvtele.h in Headers */ = {isa = PBXBuildFile; fileRef = B632254D0C66A7FA00BB081B /* drvtele.h */; };
B668CEA00A6A707C00134D46 /* crc16.c in Sources */ = {isa = PBXBuildFile; fileRef = B668CE9E0A6A707C00134D46 /* crc16.c */; };
B668CEA10A6A707C00134D46 /* crc16.h in Headers */ = {isa = PBXBuildFile; fileRef = B668CE9F0A6A707C00134D46 /* crc16.h */; };
B668CEA50A6A70C200134D46 /* drvint25.c in Sources */ = {isa = PBXBuildFile; fileRef = B668CEA30A6A70C200134D46 /* drvint25.c */; };
@@ -154,6 +158,10 @@
000000000000000016420B60 /* uk_co_demon_seasip_libdsk_LibDsk.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = uk_co_demon_seasip_libdsk_LibDsk.h; sourceTree = "<group>"; };
000000000000000016420BB0 /* w16defs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = w16defs.h; sourceTree = "<group>"; };
000000000000000016420CE0 /* w95defs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = w95defs.h; sourceTree = "<group>"; };
+ B63225480C66A7DD00BB081B /* drvlogi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = drvlogi.c; sourceTree = "<group>"; };
+ B63225490C66A7DD00BB081B /* drvlogi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = drvlogi.h; sourceTree = "<group>"; };
+ B632254C0C66A7FA00BB081B /* drvtele.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = drvtele.c; sourceTree = "<group>"; };
+ B632254D0C66A7FA00BB081B /* drvtele.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = drvtele.h; sourceTree = "<group>"; };
B668CE9E0A6A707C00134D46 /* crc16.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = crc16.c; sourceTree = "<group>"; };
B668CE9F0A6A707C00134D46 /* crc16.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = crc16.h; sourceTree = "<group>"; };
B668CEA30A6A70C200134D46 /* drvint25.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = drvint25.c; sourceTree = "<group>"; };
@@ -248,6 +256,8 @@
B668CEA40A6A70C200134D46 /* drvint25.h */,
000000000000000016417020 /* drvlinux.c */,
000000000000000016415170 /* drvlinux.h */,
+ B63225480C66A7DD00BB081B /* drvlogi.c */,
+ B63225490C66A7DD00BB081B /* drvlogi.h */,
0000000000000000003E56A0 /* drvmyz80.c */,
0000000000000000164152D0 /* drvmyz80.h */,
B668CEA70A6A70F700134D46 /* drvntwdm.c */,
@@ -260,6 +270,8 @@
000000000000000016416200 /* drvqm.h */,
0000000000000000003C04D0 /* drvrcpm.c */,
000000000000000016416360 /* drvrcpm.h */,
+ B632254C0C66A7FA00BB081B /* drvtele.c */,
+ B632254D0C66A7FA00BB081B /* drvtele.h */,
000000000000000016414080 /* drvwin16.c */,
00000000000000001641AB50 /* drvwin16.h */,
00000000000000001641BAE0 /* drvwin32.c */,
@@ -404,6 +416,8 @@
B668CEC20A6A725A00134D46 /* rpctios.h in Headers */,
B668CEC40A6A725A00134D46 /* rpcwin32.h in Headers */,
B668CEE10A6A73B400134D46 /* rpcfuncs.h in Headers */,
+ B632254B0C66A7DD00BB081B /* drvlogi.h in Headers */,
+ B632254F0C66A7FA00BB081B /* drvtele.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -523,6 +537,8 @@
B668CEDF0A6A73AA00134D46 /* rpcmap.c in Sources */,
B668CEE00A6A73AB00134D46 /* rpcserv.c in Sources */,
B668CEE80A6A742A00134D46 /* dskrtrd.c in Sources */,
+ B632254A0C66A7DD00BB081B /* drvlogi.c in Sources */,
+ B632254E0C66A7FA00BB081B /* drvtele.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -539,7 +555,7 @@
"$(inherited)",
"$(SRCROOT)/../bzip2/build/Deployment",
);
- FRAMEWORK_VERSION = 0.4.0;
+ FRAMEWORK_VERSION = 0.4.1;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
@@ -581,7 +597,7 @@
"$(inherited)",
"$(SRCROOT)/../bzip2/build/Deployment",
);
- FRAMEWORK_VERSION = 0.3.4;
+ FRAMEWORK_VERSION = 0.4.1;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_NO_COMMON_BLOCKS = YES;
@@ -621,7 +637,7 @@
"$(inherited)",
"$(SRCROOT)/../bzip2/build/Deployment",
);
- FRAMEWORK_VERSION = 0.3.4;
+ FRAMEWORK_VERSION = 0.4.1;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 2;
Modified: trunk/lib765/libdsk/ChangeLog
===================================================================
--- trunk/lib765/libdsk/ChangeLog 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/ChangeLog 2007-08-06 01:11:59 UTC (rev 446)
@@ -1,6 +1,37 @@
+2007-07-27 John Elliott
+
+ * libdsk-1.1.14 released.
+
+2007-06-11 Stuart Brady
+
+ * Added a new geometry (FMT_TRDOS640).
+
+2007-06-10 John Elliott
+
+ * Updated the DOS and Windows projects with the new drivers
+ (the Teledisk one didn't compile under Win16).
+
+2007-06-09 John Elliott
+
+ * libdsk-1.1.13 released.
+
+ * New driver: Logical. This is a raw disc image as generated by
+ 'dsktrans -logical'; that is, it is arranged in logical sector order
+ rather than SIDES_ALT order. Useful for dealing with raw disc images
+ that were dumped in logical order.
+ * dsktrans: The -logical option has accordingly been deprecated,
+ since '-otype logical' should have the same effect.
+
+2007-06-02 John Elliott
+
+ * New driver: Teledisk, based on the file format documentation at
+ <http://www.fpns.net/willy/wteledsk.htm>. This driver is read-only.
+ No code from WTELEDSK has been used, because it's GPLed rather than
+ LGPLed.
+
2006-11-18 John Elliott
- * libdsk-1.1.11 released.
+ * libdsk-1.1.12 released.
2006-08-02 John Elliott
Modified: trunk/lib765/libdsk/configure
===================================================================
--- trunk/lib765/libdsk/configure 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/configure 2007-08-06 01:11:59 UTC (rev 446)
@@ -814,8 +814,8 @@
NONENONEs,x,x, &&
program_prefix=${target_alias}-
-VERSION=1.1.12
-UPDATED='November 18, 2006'
+VERSION=1.1.14
+UPDATED='July 27, 2007'
am__api_version="1.4"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
Modified: trunk/lib765/libdsk/configure.in
===================================================================
--- trunk/lib765/libdsk/configure.in 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/configure.in 2007-08-06 01:11:59 UTC (rev 446)
@@ -2,8 +2,8 @@
AC_INIT(lib/dskopen.c)
AC_CONFIG_AUX_DIR(config)
AC_CANONICAL_SYSTEM
-VERSION=1.1.12
-UPDATED='November 18, 2006'
+VERSION=1.1.14
+UPDATED='July 27, 2007'
AM_INIT_AUTOMAKE(libdsk, $VERSION)
AM_CONFIG_HEADER(config.h)
Modified: trunk/lib765/libdsk/doc/libdsk.lyx
===================================================================
--- trunk/lib765/libdsk/doc/libdsk.lyx 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/doc/libdsk.lyx 2007-08-06 01:11:59 UTC (rev 446)
@@ -26,7 +26,7 @@
\layout Title
-LibDsk v1.1.12
+LibDsk v1.1.14
\layout Author
John Elliott
@@ -83,9 +83,12 @@
\begin_inset Quotes erd
\end_inset
- images;
+ images;
\layout Itemize
+Raw images in logical filesystem order;
+\layout Itemize
+
CPCEMU-format .DSK images (normal and extended);
\layout Itemize
@@ -103,6 +106,10 @@
NanoWasp-format disc images, used by the eponymous emulator.
\layout Itemize
+Disc images created by the Sydex imaging programs Teledisk and CopyQM (read
+ only in both cases).
+\layout Itemize
+
The floppy drive under Linux;
\layout Itemize
@@ -136,6 +143,25 @@
For full details, see the file ChangeLog.
\layout Itemize
+Added two new drivers:
+\begin_inset Quotes eld
+\end_inset
+
+teledisk
+\begin_inset Quotes erd
+\end_inset
+
+ and
+\begin_inset Quotes eld
+\end_inset
+
+logical
+\begin_inset Quotes erd
+\end_inset
+
+.
+\layout Itemize
+
Changes by Ramlaid <www.ramlaid.com> to the DSK and NTWDM drivers to improve
compatibility, and another fix to stop file handles leaking.
\layout Itemize
@@ -322,6 +348,23 @@
\begin_inset Quotes eld
\end_inset
+logical
+\begin_inset Quotes erd
+\end_inset
+
+ : Raw disc image in logical filesystem order.
+ Previous versions of LibDsk could generate such images (for example, by
+ using the now-deprecated
+\family typewriter
+ -logical
+\family default
+ option to dsktrans) but couldn't then write them back or use them in emulators.
+\layout Description
+
+
+\begin_inset Quotes eld
+\end_inset
+
floppy
\begin_inset Quotes erd
\end_inset
@@ -406,6 +449,18 @@
\begin_inset Quotes eld
\end_inset
+teledisk
+\begin_inset Quotes erd
+\end_inset
+
+ : Disc images created by Sydex's TeleDisk.
+ This is a read-only driver.
+\layout Description
+
+
+\begin_inset Quotes eld
+\end_inset
+
nanowasp
\begin_inset Quotes erd
\end_inset
@@ -2788,7 +2843,7 @@
Used to set callbacks from LibDsk to your own code, for LibDsk to display
messages during processing that may take time.
- The code should be used to set the text on the status line of your program
+ The code could be used to set the text on the status line of your program
window, for example.
\layout LyX-Code
@@ -6372,7 +6427,7 @@
\layout Itemize
-pDriver contains the pointer to our instance data.
+pDriver points to a DSK_DRIVER containing the pointer to your instance data.
\layout Itemize
name is the filename as passed to LibDsk, starting with
Modified: trunk/lib765/libdsk/doc/libdsk.pdf
===================================================================
(Binary files differ)
Modified: trunk/lib765/libdsk/doc/libdsk.txt
===================================================================
--- trunk/lib765/libdsk/doc/libdsk.txt 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/doc/libdsk.txt 2007-08-06 01:11:59 UTC (rev 446)
@@ -1,4 +1,4 @@
-LibDsk v1.1.12
+LibDsk v1.1.14
John Elliott
@@ -163,8 +163,10 @@
disc images transparently. It currently supports the
following disc image formats:
- Raw "dd if=foo of=bar" images;
+ Raw "dd if=foo of=bar" images;
+ Raw images in logical filesystem order;
+
CPCEMU-format .DSK images (normal and extended);
MYZ80-format hard drive images;
@@ -178,6 +180,9 @@
NanoWasp-format disc images, used by the eponymous emulator.
+ Disc images created by the Sydex imaging programs
+ Teledisk and CopyQM (read only in both cases).
+
The floppy drive under Linux;
The floppy drive under Windows. Windows support is a
@@ -198,6 +203,8 @@
For full details, see the file ChangeLog.
+ Added two new drivers: "teledisk" and "logical".
+
Changes by Ramlaid <www.ramlaid.com> to the DSK and
NTWDM drivers to improve compatibility, and another
fix to stop file handles leaking.
@@ -283,6 +290,12 @@
. On systems other than Linux, DOS or Windows, this
is also used to access the host system's floppy drive.
+ "logical" : Raw disc image in logical filesystem order.
+ Previous versions of LibDsk could generate such
+ images (for example, by using the now-deprecated
+ -logical option to dsktrans) but couldn't then write
+ them back or use them in emulators.
+
"floppy" : Host system's floppy drive (under Linux, DOS
or Windows).
@@ -301,6 +314,9 @@
"qm" : Disc images created by Sydex's CopyQM. This is a
read-only driver.
+ "teledisk" : Disc images created by Sydex's TeleDisk.
+ This is a read-only driver.
+
"nanowasp" : Disc image in the 400k Microbee format
used by the NanoWasp emulator. This is similar to "raw"
, but the tracks are stored in a different order.
@@ -1188,7 +1204,7 @@
Used to set callbacks from LibDsk to your own code, for
LibDsk to display messages during processing that may
-take time. The code should be used to set the text on
+take time. The code could be used to set the text on
the status line of your program window, for example.
typedef void (*DSK_REPORTFUNC)(const char *message);
@@ -2707,7 +2723,8 @@
Connect to a remote server.
- pDriver contains the pointer to our instance data.
+ pDriver points to a DSK_DRIVER containing the pointer
+ to your instance data.
name is the filename as passed to LibDsk, starting
with "driver:" and containing any connection parameters
Modified: trunk/lib765/libdsk/dos16ppd/Makefile
===================================================================
--- trunk/lib765/libdsk/dos16ppd/Makefile 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/dos16ppd/Makefile 2007-08-06 01:11:59 UTC (rev 446)
@@ -9,7 +9,8 @@
OBS7=drvcpcem.obj dskcheck.obj dskpars.obj dskwrite.obj dskcmt.obj
OBS8=drvadisk.obj drvrcpm.obj drvqm.obj crctable.obj dskretry.obj
OBS9=dskreprt.obj dskdirty.obj dskrtrd.obj dsktrkid.obj remote.obj
-OBSA=rpcfossl.obj crc16.obj drvint25.obj int25l.obj
+OBSA=rpcfossl.obj crc16.obj drvint25.obj int25l.obj drvtele.obj
+OBSB=drvlogi.obj
OBS10=dskid.obj utilopts.obj libdsk.lib
OBS11=dskform.obj utilopts.obj formname.obj libdsk.lib
OBS12=dsktrans.obj utilopts.obj formname.obj bootsec.obj libdsk.lib
@@ -47,7 +48,7 @@
$(CC) $(CFLAGS) $(OBS13)
libdsk.lib: $(OBS1) $(OBS2) $(OBS3) $(OBS4) $(OBS5) $(OBS6) $(OBS7) \
- $(OBS8) $(OBS9) $(OBSA)
+ $(OBS8) $(OBS9) $(OBSA) $(OBSB)
libr r $@ $(OBS1)
libr r $@ $(OBS2)
libr r $@ $(OBS3)
@@ -58,6 +59,7 @@
libr r $@ $(OBS8)
libr r $@ $(OBS9)
libr r $@ $(OBSA)
+ libr r $@ $(OBSB)
%.obj: %.as
$(CC) -c $(CFLAGS) $<
Modified: trunk/lib765/libdsk/dos32gcc/Makefile
===================================================================
--- trunk/lib765/libdsk/dos32gcc/Makefile 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/dos32gcc/Makefile 2007-08-06 01:11:59 UTC (rev 446)
@@ -10,7 +10,8 @@
drvcpcem.o dskcheck.o dskpars.o dskwrite.o dskretry.o \
drvadisk.o drvrcpm.o drvqm.o dskretry.o dskcmt.o \
dskreprt.o crctable.o dskdirty.o dskrtrd.o dsktrkid.o \
- remote.o rpcfossl.o crc16.o drvint25.o
+ remote.o rpcfossl.o crc16.o drvint25.o drvtele.o \
+ drvlogi.o
OBS1 = dskid.o utilopts.o libdsk.a
OBS2 = dskform.o utilopts.o formname.o libdsk.a
Modified: trunk/lib765/libdsk/include/libdsk.h
===================================================================
--- trunk/lib765/libdsk/include/libdsk.h 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/include/libdsk.h 2007-08-06 01:11:59 UTC (rev 446)
@@ -1,7 +1,7 @@
/***************************************************************************
* *
* LIBDSK: General floppy and diskimage access library *
- * Copyright (C) 2001-6 John Elliott <jc...@se...> *
+ * Copyright (C) 2001-7 John Elliott <jc...@se...> *
* *
* Modifications to add dsk_dirty() *
* (c) 2005 Philip Kendall <pak...@sr...> *
@@ -58,7 +58,7 @@
extern "C" {
#endif
-#define LIBDSK_VERSION "1.1.12"
+#define LIBDSK_VERSION "1.1.14"
/************************* TYPES ********************************/
@@ -148,6 +148,7 @@
FMT_BBC200, /* 10 sectors, 80 tracks, 1 side, FM */
FMT_MBEE400, /* 10 sectors, 80 tracks, 1 side */
FMT_MGT800, /* 10 sectors, 80 tracks, 2 sides out and out */
+ FMT_TRDOS640, /* 16 sectors, 256 bytes/sector, 2 sides */
FMT_UNKNOWN = -1
} dsk_format_t;
Modified: trunk/lib765/libdsk/lib/Makefile.am
===================================================================
--- trunk/lib765/libdsk/lib/Makefile.am 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/lib/Makefile.am 2007-08-06 01:11:59 UTC (rev 446)
@@ -29,7 +29,7 @@
# If interfaces have been removed set the right-hand number to 0.
#
#
-libdsk_la_LDFLAGS = -version-info 5:1:2
+libdsk_la_LDFLAGS = -version-info 5:3:2
libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c \
dsklphys.c dskfmt.c dskopen.c dskpars.c \
dskerror.c dskseek.c dsksecid.c dskgeom.c \
@@ -57,10 +57,12 @@
drvdos16.h drvdos16.c \
drvdos32.h drvdos32.c \
drvcpcem.h drvcpcem.c \
+ drvlogi.h drvlogi.c \
drvposix.h drvposix.c \
drvnwasp.h drvnwasp.c \
drvadisk.h drvadisk.c \
drvrcpm.h drvrcpm.c \
+ drvtele.h drvtele.c \
drvmyz80.h drvmyz80.c \
drvcfi.h drvcfi.c \
drvqm.h drvqm.c
Modified: trunk/lib765/libdsk/lib/Makefile.in
===================================================================
--- trunk/lib765/libdsk/lib/Makefile.in 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/lib/Makefile.in 2007-08-06 01:11:59 UTC (rev 446)
@@ -114,8 +114,8 @@
# If interfaces have been removed set the right-hand number to 0.
#
#
-libdsk_la_LDFLAGS = -version-info 5:1:2
-libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c dsklphys.c dskfmt.c dskopen.c dskpars.c dskerror.c dskseek.c dsksecid.c dskgeom.c dsktread.c dsksgeom.c dskjni.c dskreprt.c dskcmt.c dskretry.c dskdirty.c dsktrkid.c dskrtrd.c comp.h compi.h compress.h compress.inc compress.c compsq.c compsq.h compgz.c compgz.h compbz2.c compbz2.h crctable.c crctable.h crc16.c crc16.h rpccli.c rpcfuncs.h rpcmap.c rpcpack.c rpcserv.c remote.c remote.h remote.inc remall.h rpctios.c rpctios.h rpcfork.c rpcfork.h rpcfossl.c rpcfossl.h rpcwin32.c rpcwin32.h drv.h drvi.h drivers.h drivers.inc drvlinux.h drvlinux.c drvntwdm.h drvntwdm.c drvwin32.h drvwin32.c w95defs.h drvwin16.h drvwin16.c w16defs.h drvint25.h drvint25.c drvdos16.h drvdos16.c drvdos32.h drvdos32.c drvcpcem.h drvcpcem.c drvposix.h drvposix.c drvnwasp.h drvnwasp.c drvadisk.h drvadisk.c drvrcpm.h drvrcpm.c drvmyz80.h drvmyz80.c drvcfi.h drvcfi.c drvqm.h drvqm.c
+libdsk_la_LDFLAGS = -version-info 5:3:2
+libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c dsklphys.c dskfmt.c dskopen.c dskpars.c dskerror.c dskseek.c dsksecid.c dskgeom.c dsktread.c dsksgeom.c dskjni.c dskreprt.c dskcmt.c dskretry.c dskdirty.c dsktrkid.c dskrtrd.c comp.h compi.h compress.h compress.inc compress.c compsq.c compsq.h compgz.c compgz.h compbz2.c compbz2.h crctable.c crctable.h crc16.c crc16.h rpccli.c rpcfuncs.h rpcmap.c rpcpack.c rpcserv.c remote.c remote.h remote.inc remall.h rpctios.c rpctios.h rpcfork.c rpcfork.h rpcfossl.c rpcfossl.h rpcwin32.c rpcwin32.h drv.h drvi.h drivers.h drivers.inc drvlinux.h drvlinux.c drvntwdm.h drvntwdm.c drvwin32.h drvwin32.c w95defs.h drvwin16.h drvwin16.c w16defs.h drvint25.h drvint25.c drvdos16.h drvdos16.c drvdos32.h drvdos32.c drvcpcem.h drvcpcem.c drvlogi.h drvlogi.c drvposix.h drvposix.c drvnwasp.h drvnwasp.c drvadisk.h drvadisk.c drvrcpm.h drvrcpm.c drvtele.h drvtele.c drvmyz80.h drvmyz80.c drvcfi.h drvcfi.c drvqm.h drvqm.c
JARCLASSES = $(CLASSDPRE)/Drive.class $(CLASSDPRE)/DskException.class $(CLASSDPRE)/FormatData.class $(CLASSDPRE)/FormatType.class $(CLASSDPRE)/Geometry.class $(CLASSDPRE)/Reporter.class $(CLASSDPRE)/LibDsk.class
@@ -141,8 +141,8 @@
compsq.lo compgz.lo compbz2.lo crctable.lo crc16.lo rpccli.lo rpcmap.lo \
rpcpack.lo rpcserv.lo remote.lo rpctios.lo rpcfork.lo rpcfossl.lo \
rpcwin32.lo drvlinux.lo drvntwdm.lo drvwin32.lo drvwin16.lo drvint25.lo \
-drvdos16.lo drvdos32.lo drvcpcem.lo drvposix.lo drvnwasp.lo drvadisk.lo \
-drvrcpm.lo drvmyz80.lo drvcfi.lo drvqm.lo
+drvdos16.lo drvdos32.lo drvcpcem.lo drvlogi.lo drvposix.lo drvnwasp.lo \
+drvadisk.lo drvrcpm.lo drvtele.lo drvmyz80.lo drvcfi.lo drvqm.lo
noinst_PROGRAMS = @LIBDSKJAR@
PROGRAMS = $(noinst_PROGRAMS)
@@ -325,6 +325,8 @@
../include/libdsk.h drv.h drvint25.h
drvlinux.lo drvlinux.o : drvlinux.c drvi.h ../config.h \
../include/libdsk.h drv.h drvlinux.h
+drvlogi.lo drvlogi.o : drvlogi.c ../include/libdsk.h drvi.h ../config.h \
+ drv.h drvlogi.h
drvmyz80.lo drvmyz80.o : drvmyz80.c ../include/libdsk.h drvi.h \
../config.h drv.h drvmyz80.h
drvntwdm.lo drvntwdm.o : drvntwdm.c drvi.h ../config.h \
@@ -337,6 +339,8 @@
drvqm.h crctable.h
drvrcpm.lo drvrcpm.o : drvrcpm.c ../include/libdsk.h drvi.h ../config.h \
drv.h drvrcpm.h
+drvtele.lo drvtele.o : drvtele.c drvi.h ../config.h ../include/libdsk.h \
+ drv.h drvtele.h
drvwin16.lo drvwin16.o : drvwin16.c drvi.h ../config.h \
../include/libdsk.h drv.h drvwin16.h
drvwin32.lo drvwin32.o : drvwin32.c drvi.h ../config.h \
Modified: trunk/lib765/libdsk/lib/drivers.h
===================================================================
--- trunk/lib765/libdsk/lib/drivers.h 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/lib/drivers.h 2007-08-06 01:11:59 UTC (rev 446)
@@ -32,6 +32,8 @@
extern DRV_CLASS dc_cfi; /* CFI driver */
extern DRV_CLASS dc_adisk; /* APRIDISK driver */
extern DRV_CLASS dc_qm; /* CopyQM driver */
+extern DRV_CLASS dc_tele; /* Teledisk driver */
+extern DRV_CLASS dc_logical; /* Raw, in logical sector order */
extern DRV_CLASS dc_rcpmfs; /* Reverse-CP/MFS driver */
extern DRV_CLASS dc_remote; /* All remote drivers */
#ifdef LINUXFLOPPY
Modified: trunk/lib765/libdsk/lib/drivers.inc
===================================================================
--- trunk/lib765/libdsk/lib/drivers.inc 2007-08-06 00:52:46 UTC (rev 445)
+++ trunk/lib765/libdsk/lib/drivers.inc 2007-08-06 01:11:59 UTC (rev 446)
@@ -61,6 +61,7 @@
* library. */
&dc_adisk, /* APRIDISK image */
&dc_qm, /* CopyQM */
+ &dc_tele, /* Teledisk */
/* 4. Raw files with no magic number. */
&dc_posix,
@@ -69,6 +70,7 @@
* explicitly specified. */
&dc_myz80,
&dc_nwasp,
+ &dc_logical,
&dc_cfi, /* RLE-compressed raw. The reasons that this isn't
* handled by the general compression system are:
* 1. No magic number, so can't autodetect.
Copied: trunk/lib765/libdsk/lib/drvlogi.c (from rev 443, vendor/libdsk/current/lib/drvlogi.c)
===================================================================
--- trunk/lib765/libdsk/lib/drvlogi.c (rev 0)
+++ trunk/lib765/libdsk/lib/drvlogi.c 2007-08-06 01:11:59 UTC (rev 446)
@@ -0,0 +1,262 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001,2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* This driver implements access to a flat file, like drvposix, but with the
+ * sides laid out in the order specified by the disk geometry. What you end
+ * up with is a logical filesystem image, hence the name. */
+
+#include <stdio.h>
+#include "libdsk.h"
+#include "drvi.h"
+#include "drvlogi.h"
+
+
+/* This struct contains function pointers to the driver's functions, and the
+ * size of its DSK_DRIVER subclass */
+
+DRV_CLASS dc_logical =
+{
+ sizeof(LOGICAL_DSK_DRIVER),
+ "logical",
+ "Raw file logical sector order",
+ logical_open, /* open */
+ logical_creat, /* create new */
+ logical_close, /* close */
+ logical_read, /* read sector, working from physical address */
+ logical_write, /* write sector, working from physical address */
+ logical_format, /* format track, physical */
+ NULL, /* get geometry */
+ NULL, /* sector ID */
+ logical_xseek, /* seek to track */
+ logical_status, /* drive status */
+};
+
+dsk_err_t logical_open(DSK_DRIVER *self, const char *filename)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ /* Sanity check: Is this meant for our driver? */
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ lpxself->lpx_fp = fopen(filename, "r+b");
+ if (!lpxself->lpx_fp)
+ {
+ lpxself->lpx_readonly = 1;
+ lpxself->lpx_fp = fopen(filename, "rb");
+ }
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTME;
+/* v0.9.5: Record exact size, so we can tell if we're writing off the end
+ * of the file. Under Windows, writing off the end of the file fills the
+ * gaps with random data, which can cause mess to appear in the directory;
+ * and under UNIX, the entire directory is filled with zeroes. */
+ if (fseek(lpxself->lpx_fp, 0, SEEK_END)) return DSK_ERR_SYSERR;
+ lpxself->lpx_filesize = ftell(lpxself->lpx_fp);
+
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_creat(DSK_DRIVER *self, const char *filename)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ /* Sanity check: Is this meant for our driver? */
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ lpxself->lpx_fp = fopen(filename, "w+b");
+ lpxself->lpx_readonly = 0;
+ if (!lpxself->lpx_fp) return DSK_ERR_SYSERR;
+ lpxself->lpx_filesize = 0;
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_close(DSK_DRIVER *self)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (lpxself->lpx_fp)
+ {
+ if (fclose(lpxself->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+ lpxself->lpx_fp = NULL;
+ }
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ dsk_err_t err;
+
+ if (!buf || !self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+
+ err = dg_ps2ls(geom, cylinder, head, sector, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ if (fseek(lpxself->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SYSERR;
+
+ if (fread(buf, 1, geom->dg_secsize, lpxself->lpx_fp) < geom->dg_secsize)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ return DSK_ERR_OK;
+}
+
+
+static dsk_err_t seekto(LOGICAL_DSK_DRIVER *self, unsigned long offset)
+{
+ /* 0.9.5: Fill any "holes" in the file with 0xE5. Otherwise, UNIX would
+ * fill them with zeroes and Windows would fill them with whatever
+ * happened to be lying around */
+ if (self->lpx_filesize < offset)
+ {
+ if (fseek(self->lpx_fp, self->lpx_filesize, SEEK_SET)) return DSK_ERR_SYSERR;
+ while (self->lpx_filesize < offset)
+ {
+ if (fputc(0xE5, self->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+ ++self->lpx_filesize;
+ }
+ }
+ if (fseek(self->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SYSERR;
+ return DSK_ERR_OK;
+}
+
+dsk_err_t logical_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ dsk_err_t err;
+
+ if (!buf || !self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+ if (lpxself->lpx_readonly) return DSK_ERR_RDONLY;
+
+ err = dg_ps2ls(geom, cylinder, head, sector, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ err = seekto(lpxself, offset);
+ if (err) return err;
+
+ if (fwrite(buf, 1, geom->dg_secsize, lpxself->lpx_fp) < geom->dg_secsize)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ if (lpxself->lpx_filesize < offset + geom->dg_secsize)
+ lpxself->lpx_filesize = offset + geom->dg_secsize;
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler)
+{
+/*
+ * Note that we completely ignore the "format" parameter, since raw LOGICAL
+ * images don't hold track headers.
+ */
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ unsigned long trklen;
+ dsk_err_t err;
+
+ (void)format;
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+ if (lpxself->lpx_readonly) return DSK_ERR_RDONLY;
+
+ trklen = geom->dg_sectors * geom->dg_secsize;
+
+ err = dg_ps2ls(geom, cylinder, head, geom->dg_secbase, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ err = seekto(lpxself, offset);
+ if (err) return err;
+ if (lpxself->lpx_filesize < offset + trklen)
+ lpxself->lpx_filesize = offset + trklen;
+
+ while (trklen--)
+ if (fputc(filler, lpxself->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+
+ return DSK_ERR_OK;
+}
+
+
+
+dsk_err_t logical_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_err_t err;
+ long offset;
+
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+
+ if (cylinder >= geom->dg_cylinders || head >= geom->dg_heads)
+ return DSK_ERR_SEEKFAIL;
+
+ err = dg_ps2ls(geom, cylinder, head, geom->dg_secbase, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ if (fseek(lpxself->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SEEKFAIL;
+
+ return DSK_ERR_OK;
+}
+
+dsk_err_t logical_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) *result &= ~DSK_ST3_READY;
+ if (lpxself->lpx_readonly) *result |= DSK_ST3_RO;
+ return DSK_ERR_OK;
+}
+
Copied: trunk/lib765/libdsk/lib/drvlogi.h (from rev 443, vendor/libdsk/current/lib/drvlogi.h)
===================================================================
--- trunk/lib765/libdsk/lib/drvlogi.h (rev 0)
+++ trunk/lib765/libdsk/lib/drvlogi.h 2007-08-06 01:11:59 UTC (rev 446)
@@ -0,0 +1,49 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001, 2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* Declarations for the logically-sectored POSIX driver */
+
+typedef struct
+{
+ DSK_DRIVER lpx_super;
+ FILE *lpx_fp;
+ int lpx_readonly;
+ unsigned long lpx_filesize;
+} LOGICAL_DSK_DRIVER;
+
+dsk_err_t logical_open(DSK_DRIVER *self, const char *filename);
+dsk_err_t logical_creat(DSK_DRIVER *self, const char *filename);
+dsk_err_t logical_close(DSK_DRIVER *self);
+dsk_err_t logical_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t logical_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t logical_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler);
+dsk_err_t logical_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head);
+dsk_err_t logical_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result);
+
Copied: trunk/lib765/libdsk/lib/drvtele.c (from rev 443, vendor/libdsk/current/lib/drvtele.c)
===================================================================
--- trunk/lib765/libdsk/lib/drvtele.c (rev 0)
+++ trunk/lib765/libdsk/lib/drvtele.c 2007-08-06 01:11:59 UTC (rev 446)
@@ -0,0 +1,655 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001-2,2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* This driver provides limited read-only support for Teledisk files. It is
+ * based entirely on the file format documentation at
+ * <http://www.fpns.net/willy/wteledsk.htm>. No code from wteledsk has been
+ * used, since it is under GPL and LibDsk is under LGPL.
+ *
+ * Current bugs / limitations:
+ * - No write support. The Teledisk format isn't really adapted to
+ * in-place rewrites of the sort that LibDsk likes to do, but in
+ * theory it would be possible to support writing to sectors that are
+ * stored uncompressed (type 0). This would require updating sector CRCs.
+ *
+ * - No support for images split into multiple files (.TD0, .TD1, .TD2...)
+ *
+ * - No support for advanced compression. There are two ways to get round
+ * this. One is to hack compression into this driver, and the other is to
+ * write a new compression method that checks for the 'td' signature and
+ * does an LZSS decompress when the image is opened and an LZSS compress
+ * when it's closed. I prefer the second. Note that the source referred
+ * to by wteledsk.htm (lz_comp2.zip) cannot be used by LibDsk as its
+ * licence disallows commercial use.
+ *
+ * There's also an "old advanced" compression, which uses 12-bit LZ
+ * compression in 6k blocks, so another 'comp' driver would be needed for
+ * that.
+ *
+ *
+ */
+
+
+#include "drvi.h"
+#include "drvtele.h"
+
+DRV_CLASS dc_tele =
+{
+ sizeof(TELE_DSK_DRIVER),
+ "tele",
+ "TeleDisk file driver",
+ tele_open,
+ NULL, /* tele_creat */
+ tele_close,
+ tele_read,
+ NULL, /* tele_write */
+ NULL, /* tele_format */
+ tele_getgeom,
+ tele_secid,
+ tele_xseek,
+ tele_status,
+ tele_xread,
+ NULL, /* tele_xwrite */
+ NULL, /* tele_tread */
+ NULL, /* tele_xtread */
+ tele_option_enum,
+ tele_option_set,
+ tele_option_get,
+ NULL, /* tele_trackids */
+ NULL /* tele_rtread */
+};
+
+/* #define MONITOR(x) printf x */
+
+#define MONITOR(x)
+
+
+#define DC_CHECK(s) \
+ TELE_DSK_DRIVER *self; \
+ if (s->dr_class != &dc_tele) return DSK_ERR_BADPTR; \
+ self = (TELE_DSK_DRIVER *)s;
+
+/* Check that the data rate and recording mode match those used when the
+ * disk was imaged. */
+static dsk_err_t check_rate(TELE_DSK_DRIVER *self, const DSK_GEOMETRY *geom)
+{
+ int fm;
+
+ switch(self->tele_head.datarate & 0x7F)
+ {
+/* Allow SD / DD interchangeably with 250/300. */
+ case 0:
+ case 1: if (geom->dg_datarate != RATE_SD &&
+ geom->dg_datarate != RATE_DD) return DSK_ERR_NOADDR;
+ break;
+ case 2: if (geom->dg_datarate != RATE_HD) return DSK_ERR_NOADDR;
+ break;
+ }
+ fm = (geom->dg_fm) ? 0x80 : 0;
+ if (fm != (self->tele_head.datarate & 0x80))
+ {
+ return DSK_ERR_NOADDR;
+ }
+ return DSK_ERR_OK;
+}
+
+static dsk_err_t tele_fread(TELE_DSK_DRIVER *self, tele_byte *buf, int count)
+{
+ if (!buf)
+ {
+ if (fseek(self->tele_fp, count, SEEK_CUR))
+ return DSK_ERR_SYSERR;
+ }
+ else
+ {
+ if (fread(buf, 1, count, self->tele_fp) < (size_t)count)
+ return DSK_ERR_SYSERR;
+ }
+ return DSK_ERR_OK;
+}
+
+static dsk_err_t tele_readsechead(TELE_DSK_DRIVER *self)
+{
+ dsk_err_t err;
+ tele_byte buf[6];
+
+ memset(&self->tele_sechead, 0, sizeof(self->tele_sechead));
+ err = tele_fread(self, buf, 6);
+ if (err) return err;
+ self->tele_sechead.cylinder_id = buf[0];
+ self->tele_sechead.head_id = buf[1];
+ self->tele_sechead.sector_id = buf[2];
+ self->tele_sechead.sector_len = (128 << buf[3]);
+ self->tele_sechead.syndrome = buf[4];
+ self->tele_sechead.header_crc = buf[5];
+
+ /* Syndromes 0x10 and 0x20 omit sector data */
+ if ((self->tele_sechead.syndrome & 0x30) == 0)
+ {
+ err = tele_fread(self, buf, 3);
+ if (err) return err;
+ self->tele_sechead.compressed_len = (((tele_word)buf[1]) << 8) |
+ buf[0];
+ self->tele_sechead.encoding = buf[2];
+ }
+ return DSK_ERR_OK;
+}
+
+/* Read the sector described by tele_sechead */
+static dsk_err_t tele_readsec(TELE_DSK_DRIVER *self, unsigned char *buf)
+{
+ int n, w, wleft, plen, ptype;
+ dsk_err_t err;
+ size_t len = self->tele_sechead.sector_len;
+ tele_byte pattern[257];
+
+ if (self->tele_sechead.syndrome & 0x30) /* Nothing there */
+ {
+ if (buf) memset(buf, 0xF6, len);
+ return DSK_ERR_OK;
+ }
+ switch(self->tele_sechead.encoding)
+ {
+ case 0: /* Uncompressed */
+ MONITOR(("tele_readsec @ 0x%08lx: Type 0 len %d\n",
+ ftell(self->tele_fp), len));
+ return tele_fread(self, buf, len);
+ case 1: /* One pattern */
+ MONITOR(("tele_readsec @ 0x%08lx: Type 1 len 4\n",
+ ftell(self->tele_fp)));
+ err = tele_fread(self, pattern, 4);
+ if (err) return err;
+
+ if (buf) for (n = 0; n < (int)len; n+= 2)
+ {
+ buf[n] = pattern[2];
+ buf[n+1] = pattern[3];
+ }
+ return DSK_ERR_OK;
+ case 2: /* More than one pattern */
+ w = 0;
+ MONITOR(("tele_readsec @ 0x%08lx: Type 2 \n",
+ ftell(self->tele_fp)));
+ while ((size_t)w < len)
+ {
+ wleft = len - w;
+ err = tele_fread(self, pattern, 2);
+ if (err) return err;
+ ptype = pattern[0];
+ plen = pattern[1];
+ MONITOR(("tele_readsec @ 0x%08lx: Type 2 ptype=%d plen=%d\n",
+ ftell(self->tele_fp), ptype, plen));
+ if (ptype == 0)
+ {
+ err = tele_fread(self, pattern, plen);
+ if (err) return err;
+ if (plen > wleft) plen = wleft;
+ if (buf) memcpy(buf + w, pattern, plen);
+ w += plen;
+ continue;
+ }
+ err = tele_fread(self, pattern, (1 << ptype));
+ for (n = 0; n < plen; n++)
+ {
+ if (buf)
+ {
+/* Ensure the amount of data written does not exceed len */
+ if ((1 << ptype) > wleft)
+ memcpy(buf + w,
+ pattern,wleft);
+ else memcpy(buf + w,
+ pattern, 1 << ptype);
+ }
+ w += (1 << ptype);
+ wleft -= (1 << ptype);
+ }
+ }
+ return DSK_ERR_OK;
+ default:
+#ifndef WIN16
+ fprintf(stderr, "Teledisk: Unsupported sector compression method %d!\n", self->tele_sechead.encoding);
+#endif
+ break;
+ }
+ return DSK_ERR_NOTIMPL;
+}
+
+/* We cache previously-encountered track addresses in self->tele_track_addr
+ * to avoid doing a linear search every time a track is needed. */
+static dsk_err_t tele_seektrack(TELE_DSK_DRIVER *self, dsk_pcyl_t cylinder,
+ dsk_phead_t head)
+{
+ long startpos;
+ int c, h, s;
+ dsk_err_t err;
+
+ h = head;
+ c = cylinder;
+ startpos = 0;
+ MONITOR(("tele_seektrack: cylinder=%d head=%d\n", cylinder, head));
+
+ do
+ {
+ MONITOR(("tele_seektrack: Trying c%d h%d\n", c, h));
+ if (c < 100 && h < 2 && self->tele_track_addr[c][h] != 0)
+ {
+ MONITOR(("tele_seektrack: starting at c%d h%d\n", c, h));
+ startpos = self->tele_track_addr[c][h];
+ }
+ if (h == 0)
+ {
+ h = 1;
+ --c;
+ }
+ else
+ {
+ --h;
+ }
+ }
+ while (startpos == 0 && c >= 0);
+
+ if (startpos == 0)
+ {
+#ifndef WIN16
+ fprintf(stderr, "drv_tele internal error: Cannot find cylinder 0 head 0\n");
+#endif
+ return DSK_ERR_CTRLR;
+ }
+
+ if (fseek(self->tele_fp, startpos, SEEK_SET))
+ return DSK_ERR_SYSERR;
+
+ do
+ {
+ tele_byte buf[4];
+ startpos = ftell(self->tele_fp);
+ err = tele_fread(self, buf, 4);
+ if (err)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ self->tele_trackhead.sectors = buf[0];
+ self->tele_trackhead.cylinder = buf[1];
+ self->tele_trackhead.head = buf[2];
+ self->tele_trackhead.crc = buf[3];
+ c = self->tele_trackhead.cylinder;
+ h = self->tele_trackhead.head;
+ MONITOR(("tele_seektrack: c%d h%d at 0x%08lx\n", c, h, startpos));
+ if (c < 100 && h < 2 && self->tele_track_addr[c][h] == 0)
+ {
+ self->tele_track_addr[c][h] = startpos;
+ }
+ if ((dsk_pcyl_t)c == cylinder && (dsk_phead_t)h == head)
+ {
+ return DSK_ERR_OK;
+ }
+ for (s = 0; s < self->tele_trackhead.sectors; s++)
+ {
+ err = tele_readsechead(self);
+ if (err) return err;
+ err = tele_readsec(self, NULL);
+ if (err) return err;
+ }
+
+ }
+ while(1);
+/* Should never happen, but need to shut Pacific C up */
+ return DSK_ERR_UNKNOWN;
+}
+
+dsk_err_t tele_seeksec(TELE_DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head, dsk_pcyl_t cyl_expected,
+ dsk_phead_t head_expected, dsk_psect_t sector,
+ size_t *request_len, size_t *sseclen)
+{
+ dsk_err_t err;
+ int s;
+ long pos;
+
+ err = tele_seektrack(self, cylinder, head);
+
+ for (s = 0; s < self->tele_trackhead.sectors; s++)
+ {
+ pos = ftell(self->tele_fp);
+ err = tele_readsechead(self);
+ if (err) return err;
+ MONITOR(("tele_seeksec: c%d h%d s%d at 0x%08lx (%d/%d)\n",
+ self->tele_sechead.cylinder_id,
+ self->tele_sechead.head_id,
+ self->tele_sechead.sector_id, pos,
+ s, self->tele_trackhead.sectors));
+ if (self->tele_sechead.sector_id == sector &&
+ self->tele_sechead.cylinder_id == cylinder &&
+ self->tele_sechead.head_id == head)
+ {
+ *sseclen = self->tele_sechead.sector_len;
+/* Sector shorter than expected. Report a data error, and set
+ * request_len to the actual size. */
+ if (*sseclen < *request_len)
+ {
+ *request_len = *sseclen;
+ err = DSK_ERR_DATAERR;
+ }
+/* Sector longer than expected. Report a data error but don't change
+ * request_len */
+ else if ((*sseclen) > (*request_len))
+ {
+ err = DSK_ERR_DATAERR;
+ }
+ return err;
+ }
+ /* Skip over that sector and on to the next */
+ err = tele_readsec(self, NULL);
+ }
+ return DSK_ERR_NOADDR;
+}
+
+
+dsk_err_t tele_open(DSK_DRIVER *s, const char *filename)
+{
+ unsigned char header[12];
+ DC_CHECK(s);
+
+ self->tele_fp = fopen(filename, "rb");
+ if (!self->tele_fp) return DSK_ERR_NOTME;
+ /* This does use fread not tele_fread, because it's not compressed
+ * by the Advanced compression */
+ if (fread(header, 1, sizeof(header), self->tele_fp) < (int)sizeof(header) ||
+ (memcmp(header, "TD", 2) && memcmp(header, "td", 2)))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_NOTME;
+ }
+ memcpy(self->tele_head.magic, header, 2);
+ self->tele_head.magic[2] = 0;
+ self->tele_head.volume_seq = header[2];
+ self->tele_head.volume_id = header[3];
+ self->tele_head.ver = header[4];
+ self->tele_head.datarate = header[5];
+ self->tele_head.drivetype = header[6];
+ self->tele_head.doubletrack = header[7];
+ self->tele_head.dosmode = header[8];
+ self->tele_head.sides = header[9];
+ self->tele_head.crc = ((tele_word)header[11]) << 8 | header[10];
+ /* XXX Advanced compression not supported */
+ if (!strcmp((char *)header, "td"))
+ {
+#ifndef WIN16
+ fprintf(stderr, "LibDsk TD0 driver: Advanced compression not supported\n");
+#endif
+ fclose(self->tele_fp);
+ return DSK_ERR_NOTIMPL;
+ }
+ /* Read a comment if there is one */
+ if (self->tele_head.doubletrack & 0x80)
+ {
+ int comment_len, n;
+ if (tele_fread(self, header, 10))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_SYSERR;
+ }
+ comment_len = ((int)(header[3])) << 8 | header[2];
+ self->tele_comment = dsk_malloc(comment_len + sizeof(TELE_COMMENT));
+ if (!self->tele_comment)
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_NOMEM;
+ }
+ self->tele_comment->year = header[4] + 1900;
+ self->tele_comment->mon = header[5];
+ self->tele_comment->day = header[6];
+ self->tele_comment->hour = header[7];
+ self->tele_comment->min = header[8];
+ self->tele_comment->sec = header[9];
+ if (tele_fread(self, self->tele_comment->text, comment_len))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_SYSERR;
+ }
+ self->tele_comment->text[comment_len] = 0;
+ for (n = 0; n < comment_len; n++)
+ {
+ if (self->tele_comment->text[n] == 0 &&
+ self->tele_comment->text[n+1] == 0)
+ {
+ self->tele_comment->text[n] = '\r';
+ self->tele_comment->text[n+1] = '\n';
+ }
+ }
+ dsk_set_comment(s, self->tele_comment->text);
+ }
+ self->tele_track_addr[0][0] = ftell(self->tele_fp);
+
+ return DSK_ERR_OK;
+}
+
+dsk_err_t tele_creat(DSK_DRIVER *self, const char *filename)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_close(DSK_DRIVER *s)
+{
+ DC_CHECK(s);
+
+ if (fclose(self->tele_fp)) return DSK_ERR_SYSERR;
+ if (self->tele_comment)
+ {
+ dsk_free(self->tele_comment);
+ self->tele_comment = NULL;
+ }
+ return DSK_ERR_OK;
+}
+
+
+
+dsk_err_t tele_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_secid(DSK_DRIVER *s, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ DSK_FORMAT *result)
+{
+ unsigned int n, m;
+ dsk_err_t err;
+
+ DC_CHECK(s);
+
+ /* Single-sided? */
+ if (head > 0 && self->tele_head.sides < 2)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ err = check_rate(self, geom); if (err) return err;
+ err = tele_seektrack(self, cylinder, head);
+ if (err) return err;
+
+ m = self->tele_sector % self->tele_trackhead.sectors;
+ ++self->tele_sector;
+ for (n = 0; n < m; n++)
+ {
+ err = tele_readsechead(self);
+ if (err) return err;
+ err = tele_readsec(self, NULL);
+ if (err) return err;
+ }
+ err = tele_readsechead(self);
+ if (result)
+ {
+ result->fmt_cylinder = self->tele_sechead.cylinder_id;
+ result->fmt_head = self->tele_sechead.head_id;
+ result->fmt_sector = self->tele_sechead.sector_id;
+ result->fmt_secsize = self->tele_sechead.sector_len;
+ }
+ return DSK_ERR_OK;
+}
+dsk_err_t tele_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+
+dsk_err_t tele_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ return tele_xread(self, geom, buf, cylinder, head, cylinder, head,
+ sector, geom->dg_secsize, NULL);
+}
+
+
+dsk_err_t tele_xread(DSK_DRIVER *s, const DSK_GEOMETRY *geom, void *buf,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_pcyl_t cyl_expected,
+ dsk_phead_t head_expected,
+ dsk_psect_t sector, size_t sector_size,
+ int *deleted)
+{
+ dsk_err_t err = DSK_ERR_OK;
+ unsigned char *secbuf;
+ size_t len = sector_size;
+ size_t sseclen;
+ int want_deleted = 0;
+ int try_again = 0;
+
+ DC_CHECK(s);
+
+ /* Single-sided? */
+ if (head > 0 && self->tele_head.sides < 2)
+ {
+ return DSK_ERR_NOADDR;
+ }
+
+/* Check that the requested data rate is compatible. */
+ err = check_rate(self, geom); if (err) return err;
+ if (deleted && *deleted) want_deleted = 4;
+ do
+ {
+ err = tele_seeksec(self, geom, cylinder, head,
+ cyl_expected, head_expected,
+ sector, &len, &sseclen);
+/* Are we retrying because we are looking for deleted data and found
+ * nondeleted or vice versa?
+ *
+ * If so, and we have run out of sectors in this track, AND we are on head 0,
+ * AND the disc has 2 heads, AND we are in multitrack mode, then look on head 1
+ * as well. Amazing.
+ * */
+ if (try_again == 1 && err == DSK_ERR_NOADDR)
+ {
+ err = DSK_ERR_NODATA;
+ if ((!geom->dg_nomulti) && head == 0 &&
+ self->tele_head.sides > 1)
+ {
+ head++;
+ sector = geom->dg_secbase;
+ continue;
+ }
+ }
+ try_again = 0;
+ if (err == DSK_ERR_NOADDR) self->tele_sector = 0;
+ if (err != DSK_ERR_DATAERR && err != DSK_ERR_OK)
+ return err;
+ /* We have the sector. But does it contain deleted data? */
+ if (deleted) *deleted = 0;
+ if ((self->tele_sechead.syndrome & 4) != want_deleted)
+ {
+ if (geom->dg_noskip)
+ {
+ if (deleted) *deleted = 1;
+ }
+ else
+ {
+ try_again = 1;
+ ++sector;
+ continue;
+ }
+ }
+ /* Read the whole sector into the buffer (if it's there) */
+ secbuf = dsk_malloc(sseclen);
+ if (!secbuf) return DSK_ERR_NOMEM;
+ err = tele_readsec(self, secbuf);
+ if (sseclen > sector_size) sseclen = sector_size;
+ memcpy(buf, secbuf, sseclen);
+ dsk_free(secbuf);
+ err = DSK_ERR_OK;
+ if (self->tele_sechead.syndrome & 2) err = DSK_ERR_DATAERR;
+ if (self->tele_sec...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-06 00:52:43
|
Revision: 445
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=445&view=rev
Author: fredm
Date: 2007-08-05 17:52:46 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Tag vendor/lib765/current as vendor/lib765/lib765-0.4.1.
Added Paths:
-----------
vendor/lib765/lib765-0.4.1/
Copied: vendor/lib765/lib765-0.4.1 (from rev 444, vendor/lib765/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 00:52:36
|
Revision: 444
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=444&view=rev
Author: fredm
Date: 2007-08-05 17:52:37 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Load . into vendor/lib765/current.
Modified Paths:
--------------
vendor/lib765/current/ChangeLog
vendor/lib765/current/configure
vendor/lib765/current/configure.in
vendor/lib765/current/lib/765ldsk.c
vendor/lib765/current/lib/Makefile.am
vendor/lib765/current/lib/Makefile.in
Modified: vendor/lib765/current/ChangeLog
===================================================================
--- vendor/lib765/current/ChangeLog 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/ChangeLog 2007-08-06 00:52:37 UTC (rev 444)
@@ -1,4 +1,7 @@
+2007-06-11 John Elliott
+ * Removed spurious reference to LIBDSK_EXPOSES_DIRTY.
+
2007-04-15 John Elliott
* lib765-0.4.0 released.
Modified: vendor/lib765/current/configure
===================================================================
--- vendor/lib765/current/configure 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/configure 2007-08-06 00:52:37 UTC (rev 444)
@@ -715,8 +715,8 @@
ac_config_sub=$ac_aux_dir/config.sub
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-VERSION=0.4.0
-UPDATED='15 April 2007'
+VERSION=0.4.1
+UPDATED='11 June 2007'
am__api_version="1.4"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
Modified: vendor/lib765/current/configure.in
===================================================================
--- vendor/lib765/current/configure.in 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/configure.in 2007-08-06 00:52:37 UTC (rev 444)
@@ -1,8 +1,8 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(lib/765fdc.c)
AC_CONFIG_AUX_DIR(config)
-VERSION=0.4.0
-UPDATED='15 April 2007'
+VERSION=0.4.1
+UPDATED='11 June 2007'
AM_INIT_AUTOMAKE(lib765, $VERSION)
AM_CONFIG_HEADER(config.h)
Modified: vendor/lib765/current/lib/765ldsk.c
===================================================================
--- vendor/lib765/current/lib/765ldsk.c 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/lib/765ldsk.c 2007-08-06 00:52:37 UTC (rev 444)
@@ -286,7 +286,6 @@
{
LIBDSK_FLOPPY_DRIVE *fdl = (LIBDSK_FLOPPY_DRIVE *)fd;
-#ifdef LIBDSK_EXPOSES_DIRTY
if (fdl->fdl_diskp)
{
return dsk_dirty(fdl->fdl_diskp);
@@ -295,9 +294,6 @@
{
return FD_D_UNAVAILABLE;
}
-#else // def LIBDSK_EXPOSES_DIRTY
- return FD_D_UNAVAILABLE;
-#endif // def LIBDSK_EXPOSES_DIRTY
}
/* Eject a DSK - close the image file */
Modified: vendor/lib765/current/lib/Makefile.am
===================================================================
--- vendor/lib765/current/lib/Makefile.am 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/lib/Makefile.am 2007-08-06 00:52:37 UTC (rev 444)
@@ -12,6 +12,6 @@
# If interfaces have been added increment the right-hand number.
# If interfaces have been removed set the right-hand number to 0.
#
-lib765_la_LDFLAGS = -version-info 4:1:1
+lib765_la_LDFLAGS = -version-info 4:2:1
lib765_la_SOURCES = 765drive.c 765dsk.c 765fdc.c 765ldsk.c 765i.h error.c
Modified: vendor/lib765/current/lib/Makefile.in
===================================================================
--- vendor/lib765/current/lib/Makefile.in 2007-08-06 00:44:01 UTC (rev 443)
+++ vendor/lib765/current/lib/Makefile.in 2007-08-06 00:52:37 UTC (rev 444)
@@ -89,7 +89,7 @@
# If interfaces have been added increment the right-hand number.
# If interfaces have been removed set the right-hand number to 0.
#
-lib765_la_LDFLAGS = -version-info 4:1:1
+lib765_la_LDFLAGS = -version-info 4:2:1
lib765_la_SOURCES = 765drive.c 765dsk.c 765fdc.c 765ldsk.c 765i.h error.c
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 00:43:59
|
Revision: 443
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=443&view=rev
Author: fredm
Date: 2007-08-05 17:44:01 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Tag vendor/libdsk/current as vendor/libdsk/libdsk-1.1.14.
Added Paths:
-----------
vendor/libdsk/libdsk-1.1.14/
Copied: vendor/libdsk/libdsk-1.1.14 (from rev 442, vendor/libdsk/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-08-06 00:43:58
|
Revision: 442
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=442&view=rev
Author: fredm
Date: 2007-08-05 17:43:48 -0700 (Sun, 05 Aug 2007)
Log Message:
-----------
Load . into vendor/libdsk/current.
Modified Paths:
--------------
vendor/libdsk/current/ChangeLog
vendor/libdsk/current/configure
vendor/libdsk/current/configure.in
vendor/libdsk/current/doc/libdsk.lyx
vendor/libdsk/current/doc/libdsk.pdf
vendor/libdsk/current/doc/libdsk.txt
vendor/libdsk/current/dos16ppd/Makefile
vendor/libdsk/current/dos32gcc/Makefile
vendor/libdsk/current/include/libdsk.h
vendor/libdsk/current/lib/Makefile.am
vendor/libdsk/current/lib/Makefile.in
vendor/libdsk/current/lib/drivers.h
vendor/libdsk/current/lib/drivers.inc
vendor/libdsk/current/lib/dsksgeom.c
vendor/libdsk/current/man/apriboot.1
vendor/libdsk/current/man/dskdump.1
vendor/libdsk/current/man/dskform.1
vendor/libdsk/current/man/dskid.1
vendor/libdsk/current/man/dskscan.1
vendor/libdsk/current/man/dsktrans.1
vendor/libdsk/current/man/dskutil.1
vendor/libdsk/current/man/md3serial.1
vendor/libdsk/current/tools/dsktrans.c
vendor/libdsk/current/win16bc5/libdsk.ide
vendor/libdsk/current/win16vc1/LIBDSK16.MAK
vendor/libdsk/current/win32bc5/libdsk.ide
vendor/libdsk/current/win32vc6/atlibdsk.dsp
vendor/libdsk/current/win32vc6/atlibdsk.h
vendor/libdsk/current/win32vc6/atlibdsk_i.c
vendor/libdsk/current/win32vc6/atlibdsk_p.c
vendor/libdsk/current/win32vc6/libdsk.dsp
Added Paths:
-----------
vendor/libdsk/current/lib/drvlogi.c
vendor/libdsk/current/lib/drvlogi.h
vendor/libdsk/current/lib/drvtele.c
vendor/libdsk/current/lib/drvtele.h
Property Changed:
----------------
vendor/libdsk/current/win32vc6/atlibdsk.dsp
vendor/libdsk/current/win32vc6/libdsk.dsp
Modified: vendor/libdsk/current/ChangeLog
===================================================================
--- vendor/libdsk/current/ChangeLog 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/ChangeLog 2007-08-06 00:43:48 UTC (rev 442)
@@ -1,6 +1,37 @@
+2007-07-27 John Elliott
+
+ * libdsk-1.1.14 released.
+
+2007-06-11 Stuart Brady
+
+ * Added a new geometry (FMT_TRDOS640).
+
+2007-06-10 John Elliott
+
+ * Updated the DOS and Windows projects with the new drivers
+ (the Teledisk one didn't compile under Win16).
+
+2007-06-09 John Elliott
+
+ * libdsk-1.1.13 released.
+
+ * New driver: Logical. This is a raw disc image as generated by
+ 'dsktrans -logical'; that is, it is arranged in logical sector order
+ rather than SIDES_ALT order. Useful for dealing with raw disc images
+ that were dumped in logical order.
+ * dsktrans: The -logical option has accordingly been deprecated,
+ since '-otype logical' should have the same effect.
+
+2007-06-02 John Elliott
+
+ * New driver: Teledisk, based on the file format documentation at
+ <http://www.fpns.net/willy/wteledsk.htm>. This driver is read-only.
+ No code from WTELEDSK has been used, because it's GPLed rather than
+ LGPLed.
+
2006-11-18 John Elliott
- * libdsk-1.1.11 released.
+ * libdsk-1.1.12 released.
2006-08-02 John Elliott
Modified: vendor/libdsk/current/configure
===================================================================
--- vendor/libdsk/current/configure 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/configure 2007-08-06 00:43:48 UTC (rev 442)
@@ -814,8 +814,8 @@
NONENONEs,x,x, &&
program_prefix=${target_alias}-
-VERSION=1.1.12
-UPDATED='November 18, 2006'
+VERSION=1.1.14
+UPDATED='July 27, 2007'
am__api_version="1.4"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
Modified: vendor/libdsk/current/configure.in
===================================================================
--- vendor/libdsk/current/configure.in 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/configure.in 2007-08-06 00:43:48 UTC (rev 442)
@@ -2,8 +2,8 @@
AC_INIT(lib/dskopen.c)
AC_CONFIG_AUX_DIR(config)
AC_CANONICAL_SYSTEM
-VERSION=1.1.12
-UPDATED='November 18, 2006'
+VERSION=1.1.14
+UPDATED='July 27, 2007'
AM_INIT_AUTOMAKE(libdsk, $VERSION)
AM_CONFIG_HEADER(config.h)
Modified: vendor/libdsk/current/doc/libdsk.lyx
===================================================================
--- vendor/libdsk/current/doc/libdsk.lyx 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/doc/libdsk.lyx 2007-08-06 00:43:48 UTC (rev 442)
@@ -26,7 +26,7 @@
\layout Title
-LibDsk v1.1.12
+LibDsk v1.1.14
\layout Author
John Elliott
@@ -83,9 +83,12 @@
\begin_inset Quotes erd
\end_inset
- images;
+ images;
\layout Itemize
+Raw images in logical filesystem order;
+\layout Itemize
+
CPCEMU-format .DSK images (normal and extended);
\layout Itemize
@@ -103,6 +106,10 @@
NanoWasp-format disc images, used by the eponymous emulator.
\layout Itemize
+Disc images created by the Sydex imaging programs Teledisk and CopyQM (read
+ only in both cases).
+\layout Itemize
+
The floppy drive under Linux;
\layout Itemize
@@ -136,6 +143,25 @@
For full details, see the file ChangeLog.
\layout Itemize
+Added two new drivers:
+\begin_inset Quotes eld
+\end_inset
+
+teledisk
+\begin_inset Quotes erd
+\end_inset
+
+ and
+\begin_inset Quotes eld
+\end_inset
+
+logical
+\begin_inset Quotes erd
+\end_inset
+
+.
+\layout Itemize
+
Changes by Ramlaid <www.ramlaid.com> to the DSK and NTWDM drivers to improve
compatibility, and another fix to stop file handles leaking.
\layout Itemize
@@ -322,6 +348,23 @@
\begin_inset Quotes eld
\end_inset
+logical
+\begin_inset Quotes erd
+\end_inset
+
+ : Raw disc image in logical filesystem order.
+ Previous versions of LibDsk could generate such images (for example, by
+ using the now-deprecated
+\family typewriter
+ -logical
+\family default
+ option to dsktrans) but couldn't then write them back or use them in emulators.
+\layout Description
+
+
+\begin_inset Quotes eld
+\end_inset
+
floppy
\begin_inset Quotes erd
\end_inset
@@ -406,6 +449,18 @@
\begin_inset Quotes eld
\end_inset
+teledisk
+\begin_inset Quotes erd
+\end_inset
+
+ : Disc images created by Sydex's TeleDisk.
+ This is a read-only driver.
+\layout Description
+
+
+\begin_inset Quotes eld
+\end_inset
+
nanowasp
\begin_inset Quotes erd
\end_inset
@@ -2788,7 +2843,7 @@
Used to set callbacks from LibDsk to your own code, for LibDsk to display
messages during processing that may take time.
- The code should be used to set the text on the status line of your program
+ The code could be used to set the text on the status line of your program
window, for example.
\layout LyX-Code
@@ -6372,7 +6427,7 @@
\layout Itemize
-pDriver contains the pointer to our instance data.
+pDriver points to a DSK_DRIVER containing the pointer to your instance data.
\layout Itemize
name is the filename as passed to LibDsk, starting with
Modified: vendor/libdsk/current/doc/libdsk.pdf
===================================================================
(Binary files differ)
Modified: vendor/libdsk/current/doc/libdsk.txt
===================================================================
--- vendor/libdsk/current/doc/libdsk.txt 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/doc/libdsk.txt 2007-08-06 00:43:48 UTC (rev 442)
@@ -1,4 +1,4 @@
-LibDsk v1.1.12
+LibDsk v1.1.14
John Elliott
@@ -163,8 +163,10 @@
disc images transparently. It currently supports the
following disc image formats:
- Raw "dd if=foo of=bar" images;
+ Raw "dd if=foo of=bar" images;
+ Raw images in logical filesystem order;
+
CPCEMU-format .DSK images (normal and extended);
MYZ80-format hard drive images;
@@ -178,6 +180,9 @@
NanoWasp-format disc images, used by the eponymous emulator.
+ Disc images created by the Sydex imaging programs
+ Teledisk and CopyQM (read only in both cases).
+
The floppy drive under Linux;
The floppy drive under Windows. Windows support is a
@@ -198,6 +203,8 @@
For full details, see the file ChangeLog.
+ Added two new drivers: "teledisk" and "logical".
+
Changes by Ramlaid <www.ramlaid.com> to the DSK and
NTWDM drivers to improve compatibility, and another
fix to stop file handles leaking.
@@ -283,6 +290,12 @@
. On systems other than Linux, DOS or Windows, this
is also used to access the host system's floppy drive.
+ "logical" : Raw disc image in logical filesystem order.
+ Previous versions of LibDsk could generate such
+ images (for example, by using the now-deprecated
+ -logical option to dsktrans) but couldn't then write
+ them back or use them in emulators.
+
"floppy" : Host system's floppy drive (under Linux, DOS
or Windows).
@@ -301,6 +314,9 @@
"qm" : Disc images created by Sydex's CopyQM. This is a
read-only driver.
+ "teledisk" : Disc images created by Sydex's TeleDisk.
+ This is a read-only driver.
+
"nanowasp" : Disc image in the 400k Microbee format
used by the NanoWasp emulator. This is similar to "raw"
, but the tracks are stored in a different order.
@@ -1188,7 +1204,7 @@
Used to set callbacks from LibDsk to your own code, for
LibDsk to display messages during processing that may
-take time. The code should be used to set the text on
+take time. The code could be used to set the text on
the status line of your program window, for example.
typedef void (*DSK_REPORTFUNC)(const char *message);
@@ -2707,7 +2723,8 @@
Connect to a remote server.
- pDriver contains the pointer to our instance data.
+ pDriver points to a DSK_DRIVER containing the pointer
+ to your instance data.
name is the filename as passed to LibDsk, starting
with "driver:" and containing any connection parameters
Modified: vendor/libdsk/current/dos16ppd/Makefile
===================================================================
--- vendor/libdsk/current/dos16ppd/Makefile 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/dos16ppd/Makefile 2007-08-06 00:43:48 UTC (rev 442)
@@ -9,7 +9,8 @@
OBS7=drvcpcem.obj dskcheck.obj dskpars.obj dskwrite.obj dskcmt.obj
OBS8=drvadisk.obj drvrcpm.obj drvqm.obj crctable.obj dskretry.obj
OBS9=dskreprt.obj dskdirty.obj dskrtrd.obj dsktrkid.obj remote.obj
-OBSA=rpcfossl.obj crc16.obj drvint25.obj int25l.obj
+OBSA=rpcfossl.obj crc16.obj drvint25.obj int25l.obj drvtele.obj
+OBSB=drvlogi.obj
OBS10=dskid.obj utilopts.obj libdsk.lib
OBS11=dskform.obj utilopts.obj formname.obj libdsk.lib
OBS12=dsktrans.obj utilopts.obj formname.obj bootsec.obj libdsk.lib
@@ -47,7 +48,7 @@
$(CC) $(CFLAGS) $(OBS13)
libdsk.lib: $(OBS1) $(OBS2) $(OBS3) $(OBS4) $(OBS5) $(OBS6) $(OBS7) \
- $(OBS8) $(OBS9) $(OBSA)
+ $(OBS8) $(OBS9) $(OBSA) $(OBSB)
libr r $@ $(OBS1)
libr r $@ $(OBS2)
libr r $@ $(OBS3)
@@ -58,6 +59,7 @@
libr r $@ $(OBS8)
libr r $@ $(OBS9)
libr r $@ $(OBSA)
+ libr r $@ $(OBSB)
%.obj: %.as
$(CC) -c $(CFLAGS) $<
Modified: vendor/libdsk/current/dos32gcc/Makefile
===================================================================
--- vendor/libdsk/current/dos32gcc/Makefile 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/dos32gcc/Makefile 2007-08-06 00:43:48 UTC (rev 442)
@@ -10,7 +10,8 @@
drvcpcem.o dskcheck.o dskpars.o dskwrite.o dskretry.o \
drvadisk.o drvrcpm.o drvqm.o dskretry.o dskcmt.o \
dskreprt.o crctable.o dskdirty.o dskrtrd.o dsktrkid.o \
- remote.o rpcfossl.o crc16.o drvint25.o
+ remote.o rpcfossl.o crc16.o drvint25.o drvtele.o \
+ drvlogi.o
OBS1 = dskid.o utilopts.o libdsk.a
OBS2 = dskform.o utilopts.o formname.o libdsk.a
Modified: vendor/libdsk/current/include/libdsk.h
===================================================================
--- vendor/libdsk/current/include/libdsk.h 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/include/libdsk.h 2007-08-06 00:43:48 UTC (rev 442)
@@ -1,7 +1,7 @@
/***************************************************************************
* *
* LIBDSK: General floppy and diskimage access library *
- * Copyright (C) 2001-6 John Elliott <jc...@se...> *
+ * Copyright (C) 2001-7 John Elliott <jc...@se...> *
* *
* Modifications to add dsk_dirty() *
* (c) 2005 Philip Kendall <pak...@sr...> *
@@ -58,7 +58,7 @@
extern "C" {
#endif
-#define LIBDSK_VERSION "1.1.12"
+#define LIBDSK_VERSION "1.1.14"
/************************* TYPES ********************************/
@@ -148,6 +148,7 @@
FMT_BBC200, /* 10 sectors, 80 tracks, 1 side, FM */
FMT_MBEE400, /* 10 sectors, 80 tracks, 1 side */
FMT_MGT800, /* 10 sectors, 80 tracks, 2 sides out and out */
+ FMT_TRDOS640, /* 16 sectors, 256 bytes/sector, 2 sides */
FMT_UNKNOWN = -1
} dsk_format_t;
Modified: vendor/libdsk/current/lib/Makefile.am
===================================================================
--- vendor/libdsk/current/lib/Makefile.am 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/lib/Makefile.am 2007-08-06 00:43:48 UTC (rev 442)
@@ -29,7 +29,7 @@
# If interfaces have been removed set the right-hand number to 0.
#
#
-libdsk_la_LDFLAGS = -version-info 5:1:2
+libdsk_la_LDFLAGS = -version-info 5:3:2
libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c \
dsklphys.c dskfmt.c dskopen.c dskpars.c \
dskerror.c dskseek.c dsksecid.c dskgeom.c \
@@ -57,10 +57,12 @@
drvdos16.h drvdos16.c \
drvdos32.h drvdos32.c \
drvcpcem.h drvcpcem.c \
+ drvlogi.h drvlogi.c \
drvposix.h drvposix.c \
drvnwasp.h drvnwasp.c \
drvadisk.h drvadisk.c \
drvrcpm.h drvrcpm.c \
+ drvtele.h drvtele.c \
drvmyz80.h drvmyz80.c \
drvcfi.h drvcfi.c \
drvqm.h drvqm.c
Modified: vendor/libdsk/current/lib/Makefile.in
===================================================================
--- vendor/libdsk/current/lib/Makefile.in 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/lib/Makefile.in 2007-08-06 00:43:48 UTC (rev 442)
@@ -114,8 +114,8 @@
# If interfaces have been removed set the right-hand number to 0.
#
#
-libdsk_la_LDFLAGS = -version-info 5:1:2
-libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c dsklphys.c dskfmt.c dskopen.c dskpars.c dskerror.c dskseek.c dsksecid.c dskgeom.c dsktread.c dsksgeom.c dskjni.c dskreprt.c dskcmt.c dskretry.c dskdirty.c dsktrkid.c dskrtrd.c comp.h compi.h compress.h compress.inc compress.c compsq.c compsq.h compgz.c compgz.h compbz2.c compbz2.h crctable.c crctable.h crc16.c crc16.h rpccli.c rpcfuncs.h rpcmap.c rpcpack.c rpcserv.c remote.c remote.h remote.inc remall.h rpctios.c rpctios.h rpcfork.c rpcfork.h rpcfossl.c rpcfossl.h rpcwin32.c rpcwin32.h drv.h drvi.h drivers.h drivers.inc drvlinux.h drvlinux.c drvntwdm.h drvntwdm.c drvwin32.h drvwin32.c w95defs.h drvwin16.h drvwin16.c w16defs.h drvint25.h drvint25.c drvdos16.h drvdos16.c drvdos32.h drvdos32.c drvcpcem.h drvcpcem.c drvposix.h drvposix.c drvnwasp.h drvnwasp.c drvadisk.h drvadisk.c drvrcpm.h drvrcpm.c drvmyz80.h drvmyz80.c drvcfi.h drvcfi.c drvqm.h drvqm.c
+libdsk_la_LDFLAGS = -version-info 5:3:2
+libdsk_la_SOURCES = dskread.c dskwrite.c dskcheck.c dskstat.c dsklphys.c dskfmt.c dskopen.c dskpars.c dskerror.c dskseek.c dsksecid.c dskgeom.c dsktread.c dsksgeom.c dskjni.c dskreprt.c dskcmt.c dskretry.c dskdirty.c dsktrkid.c dskrtrd.c comp.h compi.h compress.h compress.inc compress.c compsq.c compsq.h compgz.c compgz.h compbz2.c compbz2.h crctable.c crctable.h crc16.c crc16.h rpccli.c rpcfuncs.h rpcmap.c rpcpack.c rpcserv.c remote.c remote.h remote.inc remall.h rpctios.c rpctios.h rpcfork.c rpcfork.h rpcfossl.c rpcfossl.h rpcwin32.c rpcwin32.h drv.h drvi.h drivers.h drivers.inc drvlinux.h drvlinux.c drvntwdm.h drvntwdm.c drvwin32.h drvwin32.c w95defs.h drvwin16.h drvwin16.c w16defs.h drvint25.h drvint25.c drvdos16.h drvdos16.c drvdos32.h drvdos32.c drvcpcem.h drvcpcem.c drvlogi.h drvlogi.c drvposix.h drvposix.c drvnwasp.h drvnwasp.c drvadisk.h drvadisk.c drvrcpm.h drvrcpm.c drvtele.h drvtele.c drvmyz80.h drvmyz80.c drvcfi.h drvcfi.c drvqm.h drvqm.c
JARCLASSES = $(CLASSDPRE)/Drive.class $(CLASSDPRE)/DskException.class $(CLASSDPRE)/FormatData.class $(CLASSDPRE)/FormatType.class $(CLASSDPRE)/Geometry.class $(CLASSDPRE)/Reporter.class $(CLASSDPRE)/LibDsk.class
@@ -141,8 +141,8 @@
compsq.lo compgz.lo compbz2.lo crctable.lo crc16.lo rpccli.lo rpcmap.lo \
rpcpack.lo rpcserv.lo remote.lo rpctios.lo rpcfork.lo rpcfossl.lo \
rpcwin32.lo drvlinux.lo drvntwdm.lo drvwin32.lo drvwin16.lo drvint25.lo \
-drvdos16.lo drvdos32.lo drvcpcem.lo drvposix.lo drvnwasp.lo drvadisk.lo \
-drvrcpm.lo drvmyz80.lo drvcfi.lo drvqm.lo
+drvdos16.lo drvdos32.lo drvcpcem.lo drvlogi.lo drvposix.lo drvnwasp.lo \
+drvadisk.lo drvrcpm.lo drvtele.lo drvmyz80.lo drvcfi.lo drvqm.lo
noinst_PROGRAMS = @LIBDSKJAR@
PROGRAMS = $(noinst_PROGRAMS)
@@ -325,6 +325,8 @@
../include/libdsk.h drv.h drvint25.h
drvlinux.lo drvlinux.o : drvlinux.c drvi.h ../config.h \
../include/libdsk.h drv.h drvlinux.h
+drvlogi.lo drvlogi.o : drvlogi.c ../include/libdsk.h drvi.h ../config.h \
+ drv.h drvlogi.h
drvmyz80.lo drvmyz80.o : drvmyz80.c ../include/libdsk.h drvi.h \
../config.h drv.h drvmyz80.h
drvntwdm.lo drvntwdm.o : drvntwdm.c drvi.h ../config.h \
@@ -337,6 +339,8 @@
drvqm.h crctable.h
drvrcpm.lo drvrcpm.o : drvrcpm.c ../include/libdsk.h drvi.h ../config.h \
drv.h drvrcpm.h
+drvtele.lo drvtele.o : drvtele.c drvi.h ../config.h ../include/libdsk.h \
+ drv.h drvtele.h
drvwin16.lo drvwin16.o : drvwin16.c drvi.h ../config.h \
../include/libdsk.h drv.h drvwin16.h
drvwin32.lo drvwin32.o : drvwin32.c drvi.h ../config.h \
Modified: vendor/libdsk/current/lib/drivers.h
===================================================================
--- vendor/libdsk/current/lib/drivers.h 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/lib/drivers.h 2007-08-06 00:43:48 UTC (rev 442)
@@ -32,6 +32,8 @@
extern DRV_CLASS dc_cfi; /* CFI driver */
extern DRV_CLASS dc_adisk; /* APRIDISK driver */
extern DRV_CLASS dc_qm; /* CopyQM driver */
+extern DRV_CLASS dc_tele; /* Teledisk driver */
+extern DRV_CLASS dc_logical; /* Raw, in logical sector order */
extern DRV_CLASS dc_rcpmfs; /* Reverse-CP/MFS driver */
extern DRV_CLASS dc_remote; /* All remote drivers */
#ifdef LINUXFLOPPY
Modified: vendor/libdsk/current/lib/drivers.inc
===================================================================
--- vendor/libdsk/current/lib/drivers.inc 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/lib/drivers.inc 2007-08-06 00:43:48 UTC (rev 442)
@@ -61,6 +61,7 @@
* library. */
&dc_adisk, /* APRIDISK image */
&dc_qm, /* CopyQM */
+ &dc_tele, /* Teledisk */
/* 4. Raw files with no magic number. */
&dc_posix,
@@ -69,6 +70,7 @@
* explicitly specified. */
&dc_myz80,
&dc_nwasp,
+ &dc_logical,
&dc_cfi, /* RLE-compressed raw. The reasons that this isn't
* handled by the general compression system are:
* 1. No magic number, so can't autodetect.
Added: vendor/libdsk/current/lib/drvlogi.c
===================================================================
--- vendor/libdsk/current/lib/drvlogi.c (rev 0)
+++ vendor/libdsk/current/lib/drvlogi.c 2007-08-06 00:43:48 UTC (rev 442)
@@ -0,0 +1,262 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001,2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* This driver implements access to a flat file, like drvposix, but with the
+ * sides laid out in the order specified by the disk geometry. What you end
+ * up with is a logical filesystem image, hence the name. */
+
+#include <stdio.h>
+#include "libdsk.h"
+#include "drvi.h"
+#include "drvlogi.h"
+
+
+/* This struct contains function pointers to the driver's functions, and the
+ * size of its DSK_DRIVER subclass */
+
+DRV_CLASS dc_logical =
+{
+ sizeof(LOGICAL_DSK_DRIVER),
+ "logical",
+ "Raw file logical sector order",
+ logical_open, /* open */
+ logical_creat, /* create new */
+ logical_close, /* close */
+ logical_read, /* read sector, working from physical address */
+ logical_write, /* write sector, working from physical address */
+ logical_format, /* format track, physical */
+ NULL, /* get geometry */
+ NULL, /* sector ID */
+ logical_xseek, /* seek to track */
+ logical_status, /* drive status */
+};
+
+dsk_err_t logical_open(DSK_DRIVER *self, const char *filename)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ /* Sanity check: Is this meant for our driver? */
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ lpxself->lpx_fp = fopen(filename, "r+b");
+ if (!lpxself->lpx_fp)
+ {
+ lpxself->lpx_readonly = 1;
+ lpxself->lpx_fp = fopen(filename, "rb");
+ }
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTME;
+/* v0.9.5: Record exact size, so we can tell if we're writing off the end
+ * of the file. Under Windows, writing off the end of the file fills the
+ * gaps with random data, which can cause mess to appear in the directory;
+ * and under UNIX, the entire directory is filled with zeroes. */
+ if (fseek(lpxself->lpx_fp, 0, SEEK_END)) return DSK_ERR_SYSERR;
+ lpxself->lpx_filesize = ftell(lpxself->lpx_fp);
+
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_creat(DSK_DRIVER *self, const char *filename)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ /* Sanity check: Is this meant for our driver? */
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ lpxself->lpx_fp = fopen(filename, "w+b");
+ lpxself->lpx_readonly = 0;
+ if (!lpxself->lpx_fp) return DSK_ERR_SYSERR;
+ lpxself->lpx_filesize = 0;
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_close(DSK_DRIVER *self)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ if (self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (lpxself->lpx_fp)
+ {
+ if (fclose(lpxself->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+ lpxself->lpx_fp = NULL;
+ }
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ dsk_err_t err;
+
+ if (!buf || !self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+
+ err = dg_ps2ls(geom, cylinder, head, sector, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ if (fseek(lpxself->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SYSERR;
+
+ if (fread(buf, 1, geom->dg_secsize, lpxself->lpx_fp) < geom->dg_secsize)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ return DSK_ERR_OK;
+}
+
+
+static dsk_err_t seekto(LOGICAL_DSK_DRIVER *self, unsigned long offset)
+{
+ /* 0.9.5: Fill any "holes" in the file with 0xE5. Otherwise, UNIX would
+ * fill them with zeroes and Windows would fill them with whatever
+ * happened to be lying around */
+ if (self->lpx_filesize < offset)
+ {
+ if (fseek(self->lpx_fp, self->lpx_filesize, SEEK_SET)) return DSK_ERR_SYSERR;
+ while (self->lpx_filesize < offset)
+ {
+ if (fputc(0xE5, self->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+ ++self->lpx_filesize;
+ }
+ }
+ if (fseek(self->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SYSERR;
+ return DSK_ERR_OK;
+}
+
+dsk_err_t logical_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ dsk_err_t err;
+
+ if (!buf || !self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+ if (lpxself->lpx_readonly) return DSK_ERR_RDONLY;
+
+ err = dg_ps2ls(geom, cylinder, head, sector, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ err = seekto(lpxself, offset);
+ if (err) return err;
+
+ if (fwrite(buf, 1, geom->dg_secsize, lpxself->lpx_fp) < geom->dg_secsize)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ if (lpxself->lpx_filesize < offset + geom->dg_secsize)
+ lpxself->lpx_filesize = offset + geom->dg_secsize;
+ return DSK_ERR_OK;
+}
+
+
+dsk_err_t logical_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler)
+{
+/*
+ * Note that we completely ignore the "format" parameter, since raw LOGICAL
+ * images don't hold track headers.
+ */
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_lsect_t offset;
+ unsigned long trklen;
+ dsk_err_t err;
+
+ (void)format;
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+ if (lpxself->lpx_readonly) return DSK_ERR_RDONLY;
+
+ trklen = geom->dg_sectors * geom->dg_secsize;
+
+ err = dg_ps2ls(geom, cylinder, head, geom->dg_secbase, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ err = seekto(lpxself, offset);
+ if (err) return err;
+ if (lpxself->lpx_filesize < offset + trklen)
+ lpxself->lpx_filesize = offset + trklen;
+
+ while (trklen--)
+ if (fputc(filler, lpxself->lpx_fp) == EOF) return DSK_ERR_SYSERR;
+
+ return DSK_ERR_OK;
+}
+
+
+
+dsk_err_t logical_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+ dsk_err_t err;
+ long offset;
+
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) return DSK_ERR_NOTRDY;
+
+ if (cylinder >= geom->dg_cylinders || head >= geom->dg_heads)
+ return DSK_ERR_SEEKFAIL;
+
+ err = dg_ps2ls(geom, cylinder, head, geom->dg_secbase, &offset);
+ if (err) return err;
+ offset *= geom->dg_secsize;
+
+ if (fseek(lpxself->lpx_fp, offset, SEEK_SET)) return DSK_ERR_SEEKFAIL;
+
+ return DSK_ERR_OK;
+}
+
+dsk_err_t logical_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result)
+{
+ LOGICAL_DSK_DRIVER *lpxself;
+
+ if (!self || !geom || self->dr_class != &dc_logical) return DSK_ERR_BADPTR;
+ lpxself = (LOGICAL_DSK_DRIVER *)self;
+
+ if (!lpxself->lpx_fp) *result &= ~DSK_ST3_READY;
+ if (lpxself->lpx_readonly) *result |= DSK_ST3_RO;
+ return DSK_ERR_OK;
+}
+
Added: vendor/libdsk/current/lib/drvlogi.h
===================================================================
--- vendor/libdsk/current/lib/drvlogi.h (rev 0)
+++ vendor/libdsk/current/lib/drvlogi.h 2007-08-06 00:43:48 UTC (rev 442)
@@ -0,0 +1,49 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001, 2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* Declarations for the logically-sectored POSIX driver */
+
+typedef struct
+{
+ DSK_DRIVER lpx_super;
+ FILE *lpx_fp;
+ int lpx_readonly;
+ unsigned long lpx_filesize;
+} LOGICAL_DSK_DRIVER;
+
+dsk_err_t logical_open(DSK_DRIVER *self, const char *filename);
+dsk_err_t logical_creat(DSK_DRIVER *self, const char *filename);
+dsk_err_t logical_close(DSK_DRIVER *self);
+dsk_err_t logical_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t logical_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t logical_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler);
+dsk_err_t logical_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head);
+dsk_err_t logical_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result);
+
Added: vendor/libdsk/current/lib/drvtele.c
===================================================================
--- vendor/libdsk/current/lib/drvtele.c (rev 0)
+++ vendor/libdsk/current/lib/drvtele.c 2007-08-06 00:43:48 UTC (rev 442)
@@ -0,0 +1,655 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001-2,2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* This driver provides limited read-only support for Teledisk files. It is
+ * based entirely on the file format documentation at
+ * <http://www.fpns.net/willy/wteledsk.htm>. No code from wteledsk has been
+ * used, since it is under GPL and LibDsk is under LGPL.
+ *
+ * Current bugs / limitations:
+ * - No write support. The Teledisk format isn't really adapted to
+ * in-place rewrites of the sort that LibDsk likes to do, but in
+ * theory it would be possible to support writing to sectors that are
+ * stored uncompressed (type 0). This would require updating sector CRCs.
+ *
+ * - No support for images split into multiple files (.TD0, .TD1, .TD2...)
+ *
+ * - No support for advanced compression. There are two ways to get round
+ * this. One is to hack compression into this driver, and the other is to
+ * write a new compression method that checks for the 'td' signature and
+ * does an LZSS decompress when the image is opened and an LZSS compress
+ * when it's closed. I prefer the second. Note that the source referred
+ * to by wteledsk.htm (lz_comp2.zip) cannot be used by LibDsk as its
+ * licence disallows commercial use.
+ *
+ * There's also an "old advanced" compression, which uses 12-bit LZ
+ * compression in 6k blocks, so another 'comp' driver would be needed for
+ * that.
+ *
+ *
+ */
+
+
+#include "drvi.h"
+#include "drvtele.h"
+
+DRV_CLASS dc_tele =
+{
+ sizeof(TELE_DSK_DRIVER),
+ "tele",
+ "TeleDisk file driver",
+ tele_open,
+ NULL, /* tele_creat */
+ tele_close,
+ tele_read,
+ NULL, /* tele_write */
+ NULL, /* tele_format */
+ tele_getgeom,
+ tele_secid,
+ tele_xseek,
+ tele_status,
+ tele_xread,
+ NULL, /* tele_xwrite */
+ NULL, /* tele_tread */
+ NULL, /* tele_xtread */
+ tele_option_enum,
+ tele_option_set,
+ tele_option_get,
+ NULL, /* tele_trackids */
+ NULL /* tele_rtread */
+};
+
+/* #define MONITOR(x) printf x */
+
+#define MONITOR(x)
+
+
+#define DC_CHECK(s) \
+ TELE_DSK_DRIVER *self; \
+ if (s->dr_class != &dc_tele) return DSK_ERR_BADPTR; \
+ self = (TELE_DSK_DRIVER *)s;
+
+/* Check that the data rate and recording mode match those used when the
+ * disk was imaged. */
+static dsk_err_t check_rate(TELE_DSK_DRIVER *self, const DSK_GEOMETRY *geom)
+{
+ int fm;
+
+ switch(self->tele_head.datarate & 0x7F)
+ {
+/* Allow SD / DD interchangeably with 250/300. */
+ case 0:
+ case 1: if (geom->dg_datarate != RATE_SD &&
+ geom->dg_datarate != RATE_DD) return DSK_ERR_NOADDR;
+ break;
+ case 2: if (geom->dg_datarate != RATE_HD) return DSK_ERR_NOADDR;
+ break;
+ }
+ fm = (geom->dg_fm) ? 0x80 : 0;
+ if (fm != (self->tele_head.datarate & 0x80))
+ {
+ return DSK_ERR_NOADDR;
+ }
+ return DSK_ERR_OK;
+}
+
+static dsk_err_t tele_fread(TELE_DSK_DRIVER *self, tele_byte *buf, int count)
+{
+ if (!buf)
+ {
+ if (fseek(self->tele_fp, count, SEEK_CUR))
+ return DSK_ERR_SYSERR;
+ }
+ else
+ {
+ if (fread(buf, 1, count, self->tele_fp) < (size_t)count)
+ return DSK_ERR_SYSERR;
+ }
+ return DSK_ERR_OK;
+}
+
+static dsk_err_t tele_readsechead(TELE_DSK_DRIVER *self)
+{
+ dsk_err_t err;
+ tele_byte buf[6];
+
+ memset(&self->tele_sechead, 0, sizeof(self->tele_sechead));
+ err = tele_fread(self, buf, 6);
+ if (err) return err;
+ self->tele_sechead.cylinder_id = buf[0];
+ self->tele_sechead.head_id = buf[1];
+ self->tele_sechead.sector_id = buf[2];
+ self->tele_sechead.sector_len = (128 << buf[3]);
+ self->tele_sechead.syndrome = buf[4];
+ self->tele_sechead.header_crc = buf[5];
+
+ /* Syndromes 0x10 and 0x20 omit sector data */
+ if ((self->tele_sechead.syndrome & 0x30) == 0)
+ {
+ err = tele_fread(self, buf, 3);
+ if (err) return err;
+ self->tele_sechead.compressed_len = (((tele_word)buf[1]) << 8) |
+ buf[0];
+ self->tele_sechead.encoding = buf[2];
+ }
+ return DSK_ERR_OK;
+}
+
+/* Read the sector described by tele_sechead */
+static dsk_err_t tele_readsec(TELE_DSK_DRIVER *self, unsigned char *buf)
+{
+ int n, w, wleft, plen, ptype;
+ dsk_err_t err;
+ size_t len = self->tele_sechead.sector_len;
+ tele_byte pattern[257];
+
+ if (self->tele_sechead.syndrome & 0x30) /* Nothing there */
+ {
+ if (buf) memset(buf, 0xF6, len);
+ return DSK_ERR_OK;
+ }
+ switch(self->tele_sechead.encoding)
+ {
+ case 0: /* Uncompressed */
+ MONITOR(("tele_readsec @ 0x%08lx: Type 0 len %d\n",
+ ftell(self->tele_fp), len));
+ return tele_fread(self, buf, len);
+ case 1: /* One pattern */
+ MONITOR(("tele_readsec @ 0x%08lx: Type 1 len 4\n",
+ ftell(self->tele_fp)));
+ err = tele_fread(self, pattern, 4);
+ if (err) return err;
+
+ if (buf) for (n = 0; n < (int)len; n+= 2)
+ {
+ buf[n] = pattern[2];
+ buf[n+1] = pattern[3];
+ }
+ return DSK_ERR_OK;
+ case 2: /* More than one pattern */
+ w = 0;
+ MONITOR(("tele_readsec @ 0x%08lx: Type 2 \n",
+ ftell(self->tele_fp)));
+ while ((size_t)w < len)
+ {
+ wleft = len - w;
+ err = tele_fread(self, pattern, 2);
+ if (err) return err;
+ ptype = pattern[0];
+ plen = pattern[1];
+ MONITOR(("tele_readsec @ 0x%08lx: Type 2 ptype=%d plen=%d\n",
+ ftell(self->tele_fp), ptype, plen));
+ if (ptype == 0)
+ {
+ err = tele_fread(self, pattern, plen);
+ if (err) return err;
+ if (plen > wleft) plen = wleft;
+ if (buf) memcpy(buf + w, pattern, plen);
+ w += plen;
+ continue;
+ }
+ err = tele_fread(self, pattern, (1 << ptype));
+ for (n = 0; n < plen; n++)
+ {
+ if (buf)
+ {
+/* Ensure the amount of data written does not exceed len */
+ if ((1 << ptype) > wleft)
+ memcpy(buf + w,
+ pattern,wleft);
+ else memcpy(buf + w,
+ pattern, 1 << ptype);
+ }
+ w += (1 << ptype);
+ wleft -= (1 << ptype);
+ }
+ }
+ return DSK_ERR_OK;
+ default:
+#ifndef WIN16
+ fprintf(stderr, "Teledisk: Unsupported sector compression method %d!\n", self->tele_sechead.encoding);
+#endif
+ break;
+ }
+ return DSK_ERR_NOTIMPL;
+}
+
+/* We cache previously-encountered track addresses in self->tele_track_addr
+ * to avoid doing a linear search every time a track is needed. */
+static dsk_err_t tele_seektrack(TELE_DSK_DRIVER *self, dsk_pcyl_t cylinder,
+ dsk_phead_t head)
+{
+ long startpos;
+ int c, h, s;
+ dsk_err_t err;
+
+ h = head;
+ c = cylinder;
+ startpos = 0;
+ MONITOR(("tele_seektrack: cylinder=%d head=%d\n", cylinder, head));
+
+ do
+ {
+ MONITOR(("tele_seektrack: Trying c%d h%d\n", c, h));
+ if (c < 100 && h < 2 && self->tele_track_addr[c][h] != 0)
+ {
+ MONITOR(("tele_seektrack: starting at c%d h%d\n", c, h));
+ startpos = self->tele_track_addr[c][h];
+ }
+ if (h == 0)
+ {
+ h = 1;
+ --c;
+ }
+ else
+ {
+ --h;
+ }
+ }
+ while (startpos == 0 && c >= 0);
+
+ if (startpos == 0)
+ {
+#ifndef WIN16
+ fprintf(stderr, "drv_tele internal error: Cannot find cylinder 0 head 0\n");
+#endif
+ return DSK_ERR_CTRLR;
+ }
+
+ if (fseek(self->tele_fp, startpos, SEEK_SET))
+ return DSK_ERR_SYSERR;
+
+ do
+ {
+ tele_byte buf[4];
+ startpos = ftell(self->tele_fp);
+ err = tele_fread(self, buf, 4);
+ if (err)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ self->tele_trackhead.sectors = buf[0];
+ self->tele_trackhead.cylinder = buf[1];
+ self->tele_trackhead.head = buf[2];
+ self->tele_trackhead.crc = buf[3];
+ c = self->tele_trackhead.cylinder;
+ h = self->tele_trackhead.head;
+ MONITOR(("tele_seektrack: c%d h%d at 0x%08lx\n", c, h, startpos));
+ if (c < 100 && h < 2 && self->tele_track_addr[c][h] == 0)
+ {
+ self->tele_track_addr[c][h] = startpos;
+ }
+ if ((dsk_pcyl_t)c == cylinder && (dsk_phead_t)h == head)
+ {
+ return DSK_ERR_OK;
+ }
+ for (s = 0; s < self->tele_trackhead.sectors; s++)
+ {
+ err = tele_readsechead(self);
+ if (err) return err;
+ err = tele_readsec(self, NULL);
+ if (err) return err;
+ }
+
+ }
+ while(1);
+/* Should never happen, but need to shut Pacific C up */
+ return DSK_ERR_UNKNOWN;
+}
+
+dsk_err_t tele_seeksec(TELE_DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head, dsk_pcyl_t cyl_expected,
+ dsk_phead_t head_expected, dsk_psect_t sector,
+ size_t *request_len, size_t *sseclen)
+{
+ dsk_err_t err;
+ int s;
+ long pos;
+
+ err = tele_seektrack(self, cylinder, head);
+
+ for (s = 0; s < self->tele_trackhead.sectors; s++)
+ {
+ pos = ftell(self->tele_fp);
+ err = tele_readsechead(self);
+ if (err) return err;
+ MONITOR(("tele_seeksec: c%d h%d s%d at 0x%08lx (%d/%d)\n",
+ self->tele_sechead.cylinder_id,
+ self->tele_sechead.head_id,
+ self->tele_sechead.sector_id, pos,
+ s, self->tele_trackhead.sectors));
+ if (self->tele_sechead.sector_id == sector &&
+ self->tele_sechead.cylinder_id == cylinder &&
+ self->tele_sechead.head_id == head)
+ {
+ *sseclen = self->tele_sechead.sector_len;
+/* Sector shorter than expected. Report a data error, and set
+ * request_len to the actual size. */
+ if (*sseclen < *request_len)
+ {
+ *request_len = *sseclen;
+ err = DSK_ERR_DATAERR;
+ }
+/* Sector longer than expected. Report a data error but don't change
+ * request_len */
+ else if ((*sseclen) > (*request_len))
+ {
+ err = DSK_ERR_DATAERR;
+ }
+ return err;
+ }
+ /* Skip over that sector and on to the next */
+ err = tele_readsec(self, NULL);
+ }
+ return DSK_ERR_NOADDR;
+}
+
+
+dsk_err_t tele_open(DSK_DRIVER *s, const char *filename)
+{
+ unsigned char header[12];
+ DC_CHECK(s);
+
+ self->tele_fp = fopen(filename, "rb");
+ if (!self->tele_fp) return DSK_ERR_NOTME;
+ /* This does use fread not tele_fread, because it's not compressed
+ * by the Advanced compression */
+ if (fread(header, 1, sizeof(header), self->tele_fp) < (int)sizeof(header) ||
+ (memcmp(header, "TD", 2) && memcmp(header, "td", 2)))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_NOTME;
+ }
+ memcpy(self->tele_head.magic, header, 2);
+ self->tele_head.magic[2] = 0;
+ self->tele_head.volume_seq = header[2];
+ self->tele_head.volume_id = header[3];
+ self->tele_head.ver = header[4];
+ self->tele_head.datarate = header[5];
+ self->tele_head.drivetype = header[6];
+ self->tele_head.doubletrack = header[7];
+ self->tele_head.dosmode = header[8];
+ self->tele_head.sides = header[9];
+ self->tele_head.crc = ((tele_word)header[11]) << 8 | header[10];
+ /* XXX Advanced compression not supported */
+ if (!strcmp((char *)header, "td"))
+ {
+#ifndef WIN16
+ fprintf(stderr, "LibDsk TD0 driver: Advanced compression not supported\n");
+#endif
+ fclose(self->tele_fp);
+ return DSK_ERR_NOTIMPL;
+ }
+ /* Read a comment if there is one */
+ if (self->tele_head.doubletrack & 0x80)
+ {
+ int comment_len, n;
+ if (tele_fread(self, header, 10))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_SYSERR;
+ }
+ comment_len = ((int)(header[3])) << 8 | header[2];
+ self->tele_comment = dsk_malloc(comment_len + sizeof(TELE_COMMENT));
+ if (!self->tele_comment)
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_NOMEM;
+ }
+ self->tele_comment->year = header[4] + 1900;
+ self->tele_comment->mon = header[5];
+ self->tele_comment->day = header[6];
+ self->tele_comment->hour = header[7];
+ self->tele_comment->min = header[8];
+ self->tele_comment->sec = header[9];
+ if (tele_fread(self, self->tele_comment->text, comment_len))
+ {
+ fclose(self->tele_fp);
+ return DSK_ERR_SYSERR;
+ }
+ self->tele_comment->text[comment_len] = 0;
+ for (n = 0; n < comment_len; n++)
+ {
+ if (self->tele_comment->text[n] == 0 &&
+ self->tele_comment->text[n+1] == 0)
+ {
+ self->tele_comment->text[n] = '\r';
+ self->tele_comment->text[n+1] = '\n';
+ }
+ }
+ dsk_set_comment(s, self->tele_comment->text);
+ }
+ self->tele_track_addr[0][0] = ftell(self->tele_fp);
+
+ return DSK_ERR_OK;
+}
+
+dsk_err_t tele_creat(DSK_DRIVER *self, const char *filename)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_close(DSK_DRIVER *s)
+{
+ DC_CHECK(s);
+
+ if (fclose(self->tele_fp)) return DSK_ERR_SYSERR;
+ if (self->tele_comment)
+ {
+ dsk_free(self->tele_comment);
+ self->tele_comment = NULL;
+ }
+ return DSK_ERR_OK;
+}
+
+
+
+dsk_err_t tele_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler)
+{
+ return DSK_ERR_RDONLY;
+}
+dsk_err_t tele_secid(DSK_DRIVER *s, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ DSK_FORMAT *result)
+{
+ unsigned int n, m;
+ dsk_err_t err;
+
+ DC_CHECK(s);
+
+ /* Single-sided? */
+ if (head > 0 && self->tele_head.sides < 2)
+ {
+ return DSK_ERR_NOADDR;
+ }
+ err = check_rate(self, geom); if (err) return err;
+ err = tele_seektrack(self, cylinder, head);
+ if (err) return err;
+
+ m = self->tele_sector % self->tele_trackhead.sectors;
+ ++self->tele_sector;
+ for (n = 0; n < m; n++)
+ {
+ err = tele_readsechead(self);
+ if (err) return err;
+ err = tele_readsec(self, NULL);
+ if (err) return err;
+ }
+ err = tele_readsechead(self);
+ if (result)
+ {
+ result->fmt_cylinder = self->tele_sechead.cylinder_id;
+ result->fmt_head = self->tele_sechead.head_id;
+ result->fmt_sector = self->tele_sechead.sector_id;
+ result->fmt_secsize = self->tele_sechead.sector_len;
+ }
+ return DSK_ERR_OK;
+}
+dsk_err_t tele_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+
+dsk_err_t tele_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector)
+{
+ return tele_xread(self, geom, buf, cylinder, head, cylinder, head,
+ sector, geom->dg_secsize, NULL);
+}
+
+
+dsk_err_t tele_xread(DSK_DRIVER *s, const DSK_GEOMETRY *geom, void *buf,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_pcyl_t cyl_expected,
+ dsk_phead_t head_expected,
+ dsk_psect_t sector, size_t sector_size,
+ int *deleted)
+{
+ dsk_err_t err = DSK_ERR_OK;
+ unsigned char *secbuf;
+ size_t len = sector_size;
+ size_t sseclen;
+ int want_deleted = 0;
+ int try_again = 0;
+
+ DC_CHECK(s);
+
+ /* Single-sided? */
+ if (head > 0 && self->tele_head.sides < 2)
+ {
+ return DSK_ERR_NOADDR;
+ }
+
+/* Check that the requested data rate is compatible. */
+ err = check_rate(self, geom); if (err) return err;
+ if (deleted && *deleted) want_deleted = 4;
+ do
+ {
+ err = tele_seeksec(self, geom, cylinder, head,
+ cyl_expected, head_expected,
+ sector, &len, &sseclen);
+/* Are we retrying because we are looking for deleted data and found
+ * nondeleted or vice versa?
+ *
+ * If so, and we have run out of sectors in this track, AND we are on head 0,
+ * AND the disc has 2 heads, AND we are in multitrack mode, then look on head 1
+ * as well. Amazing.
+ * */
+ if (try_again == 1 && err == DSK_ERR_NOADDR)
+ {
+ err = DSK_ERR_NODATA;
+ if ((!geom->dg_nomulti) && head == 0 &&
+ self->tele_head.sides > 1)
+ {
+ head++;
+ sector = geom->dg_secbase;
+ continue;
+ }
+ }
+ try_again = 0;
+ if (err == DSK_ERR_NOADDR) self->tele_sector = 0;
+ if (err != DSK_ERR_DATAERR && err != DSK_ERR_OK)
+ return err;
+ /* We have the sector. But does it contain deleted data? */
+ if (deleted) *deleted = 0;
+ if ((self->tele_sechead.syndrome & 4) != want_deleted)
+ {
+ if (geom->dg_noskip)
+ {
+ if (deleted) *deleted = 1;
+ }
+ else
+ {
+ try_again = 1;
+ ++sector;
+ continue;
+ }
+ }
+ /* Read the whole sector into the buffer (if it's there) */
+ secbuf = dsk_malloc(sseclen);
+ if (!secbuf) return DSK_ERR_NOMEM;
+ err = tele_readsec(self, secbuf);
+ if (sseclen > sector_size) sseclen = sector_size;
+ memcpy(buf, secbuf, sseclen);
+ dsk_free(secbuf);
+ err = DSK_ERR_OK;
+ if (self->tele_sechead.syndrome & 2) err = DSK_ERR_DATAERR;
+ if (self->tele_sechead.syndrome & 32) err = DSK_ERR_NODATA;
+
+ }
+ while(try_again);
+
+ return err;
+}
+
+
+dsk_err_t tele_xwrite(DSK_DRIVER *self, const DSK_GEOMETRY *geom, const void *buf,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_pcyl_t cyl_expected, dsk_phead_t head_expected,
+ dsk_psect_t sector, size_t sector_size, int deleted)
+{
+ return DSK_ERR_RDONLY;
+}
+
+dsk_err_t tele_trackids(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_psect_t *count, DSK_FORMAT **result)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+dsk_err_t tele_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+dsk_err_t tele_option_enum(DSK_DRIVER *self, int idx, char **optname)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+dsk_err_t tele_option_set(DSK_DRIVER *self, const char *optname, int value)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+dsk_err_t tele_option_get(DSK_DRIVER *self, const char *optname, int *value)
+{
+ return DSK_ERR_NOTIMPL;
+}
+
+/* Don't bother to implement this one. Fall back on the standard version. */
+dsk_err_t tele_getgeom(DSK_DRIVER *self, DSK_GEOMETRY *dg)
+{
+ return DSK_ERR_NOTIMPL;
+}
Added: vendor/libdsk/current/lib/drvtele.h
===================================================================
--- vendor/libdsk/current/lib/drvtele.h (rev 0)
+++ vendor/libdsk/current/lib/drvtele.h 2007-08-06 00:43:48 UTC (rev 442)
@@ -0,0 +1,140 @@
+/***************************************************************************
+ * *
+ * LIBDSK: General floppy and diskimage access library *
+ * Copyright (C) 2001-2,2007 John Elliott <jc...@se...> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public *
+ * License along with this library; if not, write to the Free *
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
+ * MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+/* Declarations for the Teledisk driver */
+
+/* This structure (for the file header) is based on
+ * <http://www.fpns.net/willy/wteledsk.htm>
+ */
+
+typedef unsigned char tele_byte;
+typedef unsigned short tele_word;
+
+typedef struct
+{
+ char magic[3];
+ tele_byte volume_seq; /* 0 for first file in sequence, 1 for 2nd... */
+ tele_byte volume_id; /* All files must have the same volume ID */
+ tele_byte ver; /* Version of Teledisk used to create file */
+ tele_byte datarate; /* 0=250Kbps (360k/720k) 1=300Kbps (1.2M)
+ 2=500Kbps (1.4M). Bit 7 set for FM. */
+ tele_byte drivetype; /* 1=360k 2=1.2M 3=720k 4=1.4M */
+ tele_byte doubletrack; /* 0=media matched drive
+ 1=48tpi media, 96tpi drive
+ 2=96tpi media, 48tpi drive
+
+ Bit 7 set if comment present. */
+ tele_byte dosmode; /* Only allocated sectors backed up? */
+ tele_byte sides; /* Number of heads */
+ tele_word crc;
+} TELE_HEADER;
+
+typedef struct
+{
+ int year, mon, day;
+ int hour, min, sec;
+ char text[1];
+} TELE_COMMENT;
+
+typedef struct
+{
+ tele_byte sectors;
+ tele_byte cylinder;
+ tele_byte head;
+ tele_byte crc;
+} TELE_TRKHEAD;
+
+typedef struct
+{
+ tele_byte cylinder_id; /* On-disk sector ID */
+ tele_byte head_id;
+ tele_byte sector_id;
+ size_t sector_len;
+ tele_byte syndrome; /* Various errors:
+ * bit 0: Sector appeared more than once
+ * bit 1: CRC error
+ * bit 2: Deleted data
+ * bit 4: Unallocated sector not saved
+ * bit 5: Sector ID but no data
+ * bit 6: Data but no sector ID */
+ tele_byte header_crc;
+/* Strictly speaking the last 2 members are the start of the sector data
+ * rather than the end of the sector header. But there's not a lot of
+ * difference - you just have to be sure not to load them if
+ * (syndrome & 0x30). */
+ tele_word compressed_len;
+ tele_byte encoding;
+} TELE_SECHEAD;
+
+typedef struct
+{
+ DSK_DRIVER tele_super;
+ TELE_HEADER tele_head;
+ FILE *tele_fp;
+ TELE_COMMENT *tele_comment;
+ /* Fake sector for READ ID command */
+ unsigned int tele_sector;
+ /* Addresses of track headers */
+ long tele_track_addr[100][2];
+ TELE_TRKHEAD tele_trackhead;
+ TELE_SECHEAD tele_sechead;
+} TELE_DSK_DRIVER;
+
+
+dsk_err_t tele_open(DSK_DRIVER *self, const char *filename);
+dsk_err_t tele_creat(DSK_DRIVER *self, const char *filename);
+dsk_err_t tele_close(DSK_DRIVER *self);
+dsk_err_t tele_read(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t tele_write(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ const void *buf, dsk_pcyl_t cylinder,
+ dsk_phead_t head, dsk_psect_t sector);
+dsk_err_t tele_format(DSK_DRIVER *self, DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ const DSK_FORMAT *format, unsigned char filler);
+dsk_err_t tele_secid(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ DSK_FORMAT *result);
+dsk_err_t tele_xseek(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head);
+dsk_err_t tele_xread(DSK_DRIVER *self, const DSK_GEOMETRY *geom, void *buf,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_pcyl_t cyl_expected, dsk_phead_t head_expected,
+ dsk_psect_t sector, size_t sector_size, int *deleted);
+dsk_err_t tele_xwrite(DSK_DRIVER *self, const DSK_GEOMETRY *geom, const void *buf,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_pcyl_t cyl_expected, dsk_phead_t head_expected,
+ dsk_psect_t sector, size_t sector_size, int deleted);
+dsk_err_t tele_trackids(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_pcyl_t cylinder, dsk_phead_t head,
+ dsk_psect_t *count, DSK_FORMAT **result);
+dsk_err_t tele_status(DSK_DRIVER *self, const DSK_GEOMETRY *geom,
+ dsk_phead_t head, unsigned char *result);
+
+dsk_err_t tele_option_enum(DSK_DRIVER *self, int idx, char **optname);
+
+dsk_err_t tele_option_set(DSK_DRIVER *self, const char *optname, int value);
+dsk_err_t tele_option_get(DSK_DRIVER *self, const char *optname, int *value);
+
+dsk_err_t tele_getgeom(DSK_DRIVER *self, DSK_GEOMETRY *dg);
+
Modified: vendor/libdsk/current/lib/dsksgeom.c
===================================================================
--- vendor/libdsk/current/lib/dsksgeom.c 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/lib/dsksgeom.c 2007-08-06 00:43:48 UTC (rev 442)
@@ -34,6 +34,8 @@
struct dsk_namedgeom *next;
} DSK_NAMEDGEOM;
+/* These must match the order of the entries in dsk_format_t in libdsk.h */
+
static DSK_NAMEDGEOM stdg[] =
{
/* sidedness cyl hd sec psn sz rate rwgap fmtgap fm nomulti*/
@@ -60,6 +62,11 @@
{"bbc200", { SIDES_ALT, 80, 1,10, 0, 256, RATE_SD, 0x2A, 0x50, 1, 0 }, "BBC 200k" }, /* 200k */
{"mbee400", { SIDES_ALT, 40, 1,10, 0, 512, RATE_SD, 0x0C, 0x17, 0, 0 }, "Microbee 400k" }, /* 400k */
{"mgt800", { SIDES_OUTOUT, 80, 2,10, 1, 512, RATE_SD, 0x0C, 0x17, 0, 0 }, "MGT 800k" }, /* MGT 800k */
+{"trdos640",{ SIDES_ALT, 80, 2,16, 1, 256, RATE_SD, 0x12, 0x60, 0, 0 }, "TR-DOS 640k" }, /* TR-DOS 640k */
+
+/* Geometries below this line don't appear in dsk_format_t and can be accessed
+ * only by name. */
+
{"myz80", { SIDES_ALT, 64, 1,128, 0,1024, RATE_ED, 0x2A, 0x52, 0, 0 }, "MYZ80 8Mb" }, /* MYZ80 8Mb */
};
Modified: vendor/libdsk/current/man/apriboot.1
===================================================================
--- vendor/libdsk/current/man/apriboot.1 2007-08-03 10:15:21 UTC (rev 441)
+++ vendor/libdsk/current/man/apriboot.1 2007-08-06 00:43:48 UTC (rev 442)
@@ -1,7 +1,7 @@
.\" -*- nroff -*-
.\"
.\" apriboot.1: apriboot man page
-.\" Copyright (c) 2006 John Elliott
+.\" Copyright (c) 2006-7 John Elliott
.\"
.\" This library is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU Library General Public License as published by
@@ -20,7 +20,7 @@
.\" Author contact information:
.\" John Elliott: email: jc...@se...
.\"
-.TH apriboot 1 "18 November, 2006" "Version 1.1.12" "Emulators"
+.TH apriboot 1 "27 July, 2007" "Version 1.1.14" "Emulators"
.\"
.\...
[truncated message content] |
|
From: <fr...@us...> - 2007-08-03 10:15:19
|
Revision: 441
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=441&view=rev
Author: fredm
Date: 2007-08-03 03:15:21 -0700 (Fri, 03 Aug 2007)
Log Message:
-----------
Remove obsolete key release methods.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2007-07-28 12:44:41 UTC (rev 440)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2007-08-03 10:15:21 UTC (rev 441)
@@ -133,9 +133,6 @@
- savePanelAccessoryView;
- (NSPopUpButton*) saveFileType;
-- (void) releaseCmdKeys:(NSString *)character:(int)keyCode;
-- (void) releaseKey:(int)keyCode;
-
- (void)ui_menu_activate_media_cartridge:(NSNumber*)active;
- (void)ui_menu_activate_media_cartridge_dock:(NSNumber*)active;
- (void)ui_menu_activate_media_cartridge_dock_eject:(NSNumber*)active;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-07-28 12:44:41 UTC (rev 440)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2007-08-03 10:15:21 UTC (rev 441)
@@ -895,55 +895,6 @@
[super dealloc];
}
-/*------------------------------------------------------------------------------
- * releaseCmdKeys - This method fixes an issue when modal windows are used with
- * the Mac OSX version of the SDL library.
- * As the SDL normally captures all keystrokes, but we need to type in some
- * Mac windows, all of the control menu windows run in modal mode. However,
- * when this happens, the release of the command key and the shortcut key
- * are not sent to SDL. We have to manually cause these events to happen
- * to keep the SDL library in a sane state, otherwise only every other
- * shortcut keypress will work.
- *-----------------------------------------------------------------------------*/
-- (void) releaseCmdKeys:(NSString *)character:(int)keyCode
-{
- NSEvent *event1, *event2;
- NSPoint point;
-
- event1 = [NSEvent keyEventWithType:NSKeyUp location:point modifierFlags:0
- timestamp:nil windowNumber:0 context:nil characters:character
- charactersIgnoringModifiers:character isARepeat:NO
- keyCode:keyCode];
- [NSApp postEvent:event1 atStart:NO];
-
- event2 = [NSEvent keyEventWithType:NSFlagsChanged location:point
- modifierFlags:0 timestamp:nil windowNumber:0 context:nil
- characters:nil charactersIgnoringModifiers:nil isARepeat:NO
- keyCode:0];
- [NSApp postEvent:event2 atStart:NO];
-}
-
-/*------------------------------------------------------------------------------
- * releaseKey - This method fixes an issue when modal windows are used with
- * the Mac OSX version of the SDL library.
- * As the SDL normally captures all keystrokes, but we need to type in some
- * Mac windows, all of the control menu windows run in modal mode. However,
- * when this happens, the release of function key which started the process
- * is not sent to SDL. We have to manually cause these events to happen
- * to keep the SDL library in a sane state, otherwise only everyother shortcut
- * keypress will work.
- *-----------------------------------------------------------------------------*/
-- (void) releaseKey:(int)keyCode
-{
- NSEvent *event1;
- NSPoint point;
-
- event1 = [NSEvent keyEventWithType:NSKeyUp location:point modifierFlags:0
- timestamp:nil windowNumber:0 context:nil characters:@" "
- charactersIgnoringModifiers:@" " isARepeat:NO keyCode:keyCode];
- [NSApp postEvent:event1 atStart:NO];
-}
-
- (void)ui_menu_activate_media_cartridge:(NSNumber*)active
{
[cart setEnabled:[active boolValue]];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-07-28 12:44:45
|
Revision: 440
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=440&view=rev
Author: fredm
Date: 2007-07-28 05:44:41 -0700 (Sat, 28 Jul 2007)
Log Message:
-----------
Don't run the display link when the emulator is paused or we don't have a screen
texture initialised.
Modified Paths:
--------------
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-28 03:39:33 UTC (rev 439)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-28 12:44:41 UTC (rev 440)
@@ -249,11 +249,6 @@
NSLog( @"Callback created with error:%d", error );
return;
}
-
- error = CVDisplayLinkStart( displayLink );
- if( error ) {
- NSLog( @"error starting displayLink:%d", error );
- }
}
- (void)windowWillClose:(NSNotification *)notification
@@ -549,6 +544,11 @@
return;
}
+ CVReturn error = CVDisplayLinkStop( displayLink );
+ if( error ) {
+ NSLog( @"error starting displayLink:%d", error );
+ }
+
glDeleteTextures( MAX_SCREEN_BUFFERS, screenTexId );
for(i = 0; i < MAX_SCREEN_BUFFERS; i++)
{
@@ -609,6 +609,12 @@
screenTex[i].pixels );
}
screenTexInitialised = YES;
+
+ CVReturn error = CVDisplayLinkStart( displayLink );
+ if( error ) {
+ NSLog( @"error starting displayLink:%d", error );
+ }
+
[view_lock unlock];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-07-28 03:39:38
|
Revision: 439
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=439&view=rev
Author: fredm
Date: 2007-07-27 20:39:33 -0700 (Fri, 27 Jul 2007)
Log Message:
-----------
Merge up to vendor revision 3080.
Revision Links:
--------------
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=3080&view=rev
Modified Paths:
--------------
trunk/fuse/ChangeLog
trunk/fuse/configure.in
trunk/fuse/disk/Makefile.am
trunk/fuse/disk/plusd.c
trunk/fuse/disk/plusd.h
trunk/fuse/disk/wd1770.c
trunk/fuse/disk/wd1770.h
trunk/fuse/divide.c
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
trunk/fuse/fusepb/config.h
trunk/fuse/hacking/ChangeLog
trunk/fuse/if1.c
trunk/fuse/if2.c
trunk/fuse/joystick.c
trunk/fuse/kempmouse.c
trunk/fuse/keyboard.c
trunk/fuse/machines/specplus3.c
trunk/fuse/memory.c
trunk/fuse/module.c
trunk/fuse/module.h
trunk/fuse/periph.c
trunk/fuse/printer.c
trunk/fuse/scld.c
trunk/fuse/simpleide.c
trunk/fuse/sound/alsasound.c
trunk/fuse/sound/sfifo.c
trunk/fuse/tape.c
trunk/fuse/ui/ggi/ggi_internals.h
trunk/fuse/ui/ggi/ggidisplay.c
trunk/fuse/ui/ggi/ggikeyboard.c
trunk/fuse/ui/ggi/ggiui.c
trunk/fuse/ui/gtk/browse.c
trunk/fuse/ui/gtk/debugger.c
trunk/fuse/ui/gtk/gtkjoystick.c
trunk/fuse/ui/gtk/gtkmouse.c
trunk/fuse/ui/gtk/gtkui.c
trunk/fuse/ui/gtk/pokefinder.c
trunk/fuse/ui/gtk/rollback.c
trunk/fuse/ui/win32/debugger.c
trunk/fuse/ui/win32/error.c
trunk/fuse/ui/win32/icons/Makefile.am
trunk/fuse/ui/win32/menu_data.c
trunk/fuse/ui/win32/menu_data.h
trunk/fuse/ui/win32/menu_data.rc
trunk/fuse/ui/win32/statusbar.c
trunk/fuse/ui/win32/win32display.c
trunk/fuse/ui/win32/win32display.h
trunk/fuse/ui/win32/win32ui.c
trunk/fuse/utils.c
trunk/fuse/utils.h
trunk/fuse/z80/Makefile.am
trunk/fuse/z80/coretest.c
trunk/fuse/z80/tests/README
trunk/fuse/z80/z80.c
trunk/fuse/z80/z80_ops.c
trunk/fuse/zxatasp.c
trunk/fuse/zxcf.c
trunk/libspectrum/libspectrum/hacking/ChangeLog
trunk/libspectrum/libspectrum/libspectrum.c
trunk/libspectrum/libspectrum/szx.c
trunk/libspectrum/libspectrum/tape.c
trunk/libspectrum/libspectrum/tape_block.c
trunk/libspectrum/libspectrum/test/test.c
trunk/libspectrum/libspectrum/tzx_read.c
trunk/libspectrum/libspectrum/warajevo_read.c
trunk/libspectrum/libspectrum/wav.c
trunk/libspectrum/libspectrum/z80.c
Added Paths:
-----------
trunk/fuse/z80/tests/tests.expected
trunk/fuse/z80/tests/tests.in
trunk/libspectrum/libspectrum/test/empty-drb.tzx
trunk/libspectrum/libspectrum/test/invalid-archiveinfo.tzx
trunk/libspectrum/libspectrum/test/invalid-custominfo.tzx
trunk/libspectrum/libspectrum/test/invalid-gdb.tzx
trunk/libspectrum/libspectrum/test/invalid-hardwareinfo.tzx
trunk/libspectrum/libspectrum/test/invalid-warajevo-blockoffset.tap
trunk/libspectrum/libspectrum/test/invalid.gz
trunk/libspectrum/libspectrum/test/invalid.szx
trunk/libspectrum/libspectrum/test/loop.tzx
trunk/libspectrum/libspectrum/test/loopend.tzx
Removed Paths:
-------------
trunk/fuse/z80/harness.pl
trunk/fuse/z80/tests/00.in
trunk/fuse/z80/tests/00.out
trunk/fuse/z80/tests/01.in
trunk/fuse/z80/tests/01.out
trunk/fuse/z80/tests/02.in
trunk/fuse/z80/tests/02.out
trunk/fuse/z80/tests/03.in
trunk/fuse/z80/tests/03.out
trunk/fuse/z80/tests/04.in
trunk/fuse/z80/tests/04.out
trunk/fuse/z80/tests/05.in
trunk/fuse/z80/tests/05.out
trunk/fuse/z80/tests/06.in
trunk/fuse/z80/tests/06.out
trunk/fuse/z80/tests/07.in
trunk/fuse/z80/tests/07.out
trunk/fuse/z80/tests/08.in
trunk/fuse/z80/tests/08.out
trunk/fuse/z80/tests/09.in
trunk/fuse/z80/tests/09.out
trunk/fuse/z80/tests/0a.in
trunk/fuse/z80/tests/0a.out
trunk/fuse/z80/tests/0b.in
trunk/fuse/z80/tests/0b.out
trunk/fuse/z80/tests/0c.in
trunk/fuse/z80/tests/0c.out
trunk/fuse/z80/tests/0d.in
trunk/fuse/z80/tests/0d.out
trunk/fuse/z80/tests/0e.in
trunk/fuse/z80/tests/0e.out
trunk/fuse/z80/tests/0f.in
trunk/fuse/z80/tests/0f.out
trunk/fuse/z80/tests/10.in
trunk/fuse/z80/tests/10.out
trunk/fuse/z80/tests/11.in
trunk/fuse/z80/tests/11.out
trunk/fuse/z80/tests/12.in
trunk/fuse/z80/tests/12.out
trunk/fuse/z80/tests/13.in
trunk/fuse/z80/tests/13.out
trunk/fuse/z80/tests/14.in
trunk/fuse/z80/tests/14.out
trunk/fuse/z80/tests/15.in
trunk/fuse/z80/tests/15.out
trunk/fuse/z80/tests/16.in
trunk/fuse/z80/tests/16.out
trunk/fuse/z80/tests/17.in
trunk/fuse/z80/tests/17.out
trunk/fuse/z80/tests/18.in
trunk/fuse/z80/tests/18.out
trunk/fuse/z80/tests/19.in
trunk/fuse/z80/tests/19.out
trunk/fuse/z80/tests/1a.in
trunk/fuse/z80/tests/1a.out
trunk/fuse/z80/tests/1b.in
trunk/fuse/z80/tests/1b.out
trunk/fuse/z80/tests/1c.in
trunk/fuse/z80/tests/1c.out
trunk/fuse/z80/tests/1d.in
trunk/fuse/z80/tests/1d.out
trunk/fuse/z80/tests/1e.in
trunk/fuse/z80/tests/1e.out
trunk/fuse/z80/tests/1f.in
trunk/fuse/z80/tests/1f.out
trunk/fuse/z80/tests/20_1.in
trunk/fuse/z80/tests/20_1.out
trunk/fuse/z80/tests/20_2.in
trunk/fuse/z80/tests/20_2.out
trunk/fuse/z80/tests/21.in
trunk/fuse/z80/tests/21.out
trunk/fuse/z80/tests/22.in
trunk/fuse/z80/tests/22.out
trunk/fuse/z80/tests/23.in
trunk/fuse/z80/tests/23.out
trunk/fuse/z80/tests/24.in
trunk/fuse/z80/tests/24.out
trunk/fuse/z80/tests/25.in
trunk/fuse/z80/tests/25.out
trunk/fuse/z80/tests/26.in
trunk/fuse/z80/tests/26.out
trunk/fuse/z80/tests/27.in
trunk/fuse/z80/tests/27.out
trunk/fuse/z80/tests/27_1.in
trunk/fuse/z80/tests/27_1.out
trunk/fuse/z80/tests/28_1.in
trunk/fuse/z80/tests/28_1.out
trunk/fuse/z80/tests/28_2.in
trunk/fuse/z80/tests/28_2.out
trunk/fuse/z80/tests/29.in
trunk/fuse/z80/tests/29.out
trunk/fuse/z80/tests/2a.in
trunk/fuse/z80/tests/2a.out
trunk/fuse/z80/tests/2b.in
trunk/fuse/z80/tests/2b.out
trunk/fuse/z80/tests/2c.in
trunk/fuse/z80/tests/2c.out
trunk/fuse/z80/tests/2d.in
trunk/fuse/z80/tests/2d.out
trunk/fuse/z80/tests/2e.in
trunk/fuse/z80/tests/2e.out
trunk/fuse/z80/tests/2f.in
trunk/fuse/z80/tests/2f.out
trunk/fuse/z80/tests/30_1.in
trunk/fuse/z80/tests/30_1.out
trunk/fuse/z80/tests/30_2.in
trunk/fuse/z80/tests/30_2.out
trunk/fuse/z80/tests/31.in
trunk/fuse/z80/tests/31.out
trunk/fuse/z80/tests/32.in
trunk/fuse/z80/tests/32.out
trunk/fuse/z80/tests/33.in
trunk/fuse/z80/tests/33.out
trunk/fuse/z80/tests/34.in
trunk/fuse/z80/tests/34.out
trunk/fuse/z80/tests/35.in
trunk/fuse/z80/tests/35.out
trunk/fuse/z80/tests/36.in
trunk/fuse/z80/tests/36.out
trunk/fuse/z80/tests/37.in
trunk/fuse/z80/tests/37.out
trunk/fuse/z80/tests/37_1.in
trunk/fuse/z80/tests/37_1.out
trunk/fuse/z80/tests/37_2.in
trunk/fuse/z80/tests/37_2.out
trunk/fuse/z80/tests/37_3.in
trunk/fuse/z80/tests/37_3.out
trunk/fuse/z80/tests/38_1.in
trunk/fuse/z80/tests/38_1.out
trunk/fuse/z80/tests/38_2.in
trunk/fuse/z80/tests/38_2.out
trunk/fuse/z80/tests/39.in
trunk/fuse/z80/tests/39.out
trunk/fuse/z80/tests/3a.in
trunk/fuse/z80/tests/3a.out
trunk/fuse/z80/tests/3b.in
trunk/fuse/z80/tests/3b.out
trunk/fuse/z80/tests/3c.in
trunk/fuse/z80/tests/3c.out
trunk/fuse/z80/tests/3d.in
trunk/fuse/z80/tests/3d.out
trunk/fuse/z80/tests/3e.in
trunk/fuse/z80/tests/3e.out
trunk/fuse/z80/tests/3f.in
trunk/fuse/z80/tests/3f.out
trunk/fuse/z80/tests/40.in
trunk/fuse/z80/tests/40.out
trunk/fuse/z80/tests/41.in
trunk/fuse/z80/tests/41.out
trunk/fuse/z80/tests/42.in
trunk/fuse/z80/tests/42.out
trunk/fuse/z80/tests/43.in
trunk/fuse/z80/tests/43.out
trunk/fuse/z80/tests/44.in
trunk/fuse/z80/tests/44.out
trunk/fuse/z80/tests/45.in
trunk/fuse/z80/tests/45.out
trunk/fuse/z80/tests/46.in
trunk/fuse/z80/tests/46.out
trunk/fuse/z80/tests/47.in
trunk/fuse/z80/tests/47.out
trunk/fuse/z80/tests/48.in
trunk/fuse/z80/tests/48.out
trunk/fuse/z80/tests/49.in
trunk/fuse/z80/tests/49.out
trunk/fuse/z80/tests/4a.in
trunk/fuse/z80/tests/4a.out
trunk/fuse/z80/tests/4b.in
trunk/fuse/z80/tests/4b.out
trunk/fuse/z80/tests/4c.in
trunk/fuse/z80/tests/4c.out
trunk/fuse/z80/tests/4d.in
trunk/fuse/z80/tests/4d.out
trunk/fuse/z80/tests/4e.in
trunk/fuse/z80/tests/4e.out
trunk/fuse/z80/tests/4f.in
trunk/fuse/z80/tests/4f.out
trunk/fuse/z80/tests/50.in
trunk/fuse/z80/tests/50.out
trunk/fuse/z80/tests/51.in
trunk/fuse/z80/tests/51.out
trunk/fuse/z80/tests/52.in
trunk/fuse/z80/tests/52.out
trunk/fuse/z80/tests/53.in
trunk/fuse/z80/tests/53.out
trunk/fuse/z80/tests/54.in
trunk/fuse/z80/tests/54.out
trunk/fuse/z80/tests/55.in
trunk/fuse/z80/tests/55.out
trunk/fuse/z80/tests/56.in
trunk/fuse/z80/tests/56.out
trunk/fuse/z80/tests/57.in
trunk/fuse/z80/tests/57.out
trunk/fuse/z80/tests/58.in
trunk/fuse/z80/tests/58.out
trunk/fuse/z80/tests/59.in
trunk/fuse/z80/tests/59.out
trunk/fuse/z80/tests/5a.in
trunk/fuse/z80/tests/5a.out
trunk/fuse/z80/tests/5b.in
trunk/fuse/z80/tests/5b.out
trunk/fuse/z80/tests/5c.in
trunk/fuse/z80/tests/5c.out
trunk/fuse/z80/tests/5d.in
trunk/fuse/z80/tests/5d.out
trunk/fuse/z80/tests/5e.in
trunk/fuse/z80/tests/5e.out
trunk/fuse/z80/tests/5f.in
trunk/fuse/z80/tests/5f.out
trunk/fuse/z80/tests/60.in
trunk/fuse/z80/tests/60.out
trunk/fuse/z80/tests/61.in
trunk/fuse/z80/tests/61.out
trunk/fuse/z80/tests/62.in
trunk/fuse/z80/tests/62.out
trunk/fuse/z80/tests/63.in
trunk/fuse/z80/tests/63.out
trunk/fuse/z80/tests/64.in
trunk/fuse/z80/tests/64.out
trunk/fuse/z80/tests/65.in
trunk/fuse/z80/tests/65.out
trunk/fuse/z80/tests/66.in
trunk/fuse/z80/tests/66.out
trunk/fuse/z80/tests/67.in
trunk/fuse/z80/tests/67.out
trunk/fuse/z80/tests/68.in
trunk/fuse/z80/tests/68.out
trunk/fuse/z80/tests/69.in
trunk/fuse/z80/tests/69.out
trunk/fuse/z80/tests/6a.in
trunk/fuse/z80/tests/6a.out
trunk/fuse/z80/tests/6b.in
trunk/fuse/z80/tests/6b.out
trunk/fuse/z80/tests/6c.in
trunk/fuse/z80/tests/6c.out
trunk/fuse/z80/tests/6d.in
trunk/fuse/z80/tests/6d.out
trunk/fuse/z80/tests/6e.in
trunk/fuse/z80/tests/6e.out
trunk/fuse/z80/tests/6f.in
trunk/fuse/z80/tests/6f.out
trunk/fuse/z80/tests/70.in
trunk/fuse/z80/tests/70.out
trunk/fuse/z80/tests/71.in
trunk/fuse/z80/tests/71.out
trunk/fuse/z80/tests/72.in
trunk/fuse/z80/tests/72.out
trunk/fuse/z80/tests/73.in
trunk/fuse/z80/tests/73.out
trunk/fuse/z80/tests/74.in
trunk/fuse/z80/tests/74.out
trunk/fuse/z80/tests/75.in
trunk/fuse/z80/tests/75.out
trunk/fuse/z80/tests/76.in
trunk/fuse/z80/tests/76.out
trunk/fuse/z80/tests/77.in
trunk/fuse/z80/tests/77.out
trunk/fuse/z80/tests/78.in
trunk/fuse/z80/tests/78.out
trunk/fuse/z80/tests/79.in
trunk/fuse/z80/tests/79.out
trunk/fuse/z80/tests/7a.in
trunk/fuse/z80/tests/7a.out
trunk/fuse/z80/tests/7b.in
trunk/fuse/z80/tests/7b.out
trunk/fuse/z80/tests/7c.in
trunk/fuse/z80/tests/7c.out
trunk/fuse/z80/tests/7d.in
trunk/fuse/z80/tests/7d.out
trunk/fuse/z80/tests/7e.in
trunk/fuse/z80/tests/7e.out
trunk/fuse/z80/tests/7f.in
trunk/fuse/z80/tests/7f.out
trunk/fuse/z80/tests/80.in
trunk/fuse/z80/tests/80.out
trunk/fuse/z80/tests/81.in
trunk/fuse/z80/tests/81.out
trunk/fuse/z80/tests/82.in
trunk/fuse/z80/tests/82.out
trunk/fuse/z80/tests/83.in
trunk/fuse/z80/tests/83.out
trunk/fuse/z80/tests/84.in
trunk/fuse/z80/tests/84.out
trunk/fuse/z80/tests/85.in
trunk/fuse/z80/tests/85.out
trunk/fuse/z80/tests/86.in
trunk/fuse/z80/tests/86.out
trunk/fuse/z80/tests/87.in
trunk/fuse/z80/tests/87.out
trunk/fuse/z80/tests/88.in
trunk/fuse/z80/tests/88.out
trunk/fuse/z80/tests/89.in
trunk/fuse/z80/tests/89.out
trunk/fuse/z80/tests/8a.in
trunk/fuse/z80/tests/8a.out
trunk/fuse/z80/tests/8b.in
trunk/fuse/z80/tests/8b.out
trunk/fuse/z80/tests/8c.in
trunk/fuse/z80/tests/8c.out
trunk/fuse/z80/tests/8d.in
trunk/fuse/z80/tests/8d.out
trunk/fuse/z80/tests/8e.in
trunk/fuse/z80/tests/8e.out
trunk/fuse/z80/tests/8f.in
trunk/fuse/z80/tests/8f.out
trunk/fuse/z80/tests/90.in
trunk/fuse/z80/tests/90.out
trunk/fuse/z80/tests/91.in
trunk/fuse/z80/tests/91.out
trunk/fuse/z80/tests/92.in
trunk/fuse/z80/tests/92.out
trunk/fuse/z80/tests/93.in
trunk/fuse/z80/tests/93.out
trunk/fuse/z80/tests/94.in
trunk/fuse/z80/tests/94.out
trunk/fuse/z80/tests/95.in
trunk/fuse/z80/tests/95.out
trunk/fuse/z80/tests/96.in
trunk/fuse/z80/tests/96.out
trunk/fuse/z80/tests/97.in
trunk/fuse/z80/tests/97.out
trunk/fuse/z80/tests/98.in
trunk/fuse/z80/tests/98.out
trunk/fuse/z80/tests/99.in
trunk/fuse/z80/tests/99.out
trunk/fuse/z80/tests/9a.in
trunk/fuse/z80/tests/9a.out
trunk/fuse/z80/tests/9b.in
trunk/fuse/z80/tests/9b.out
trunk/fuse/z80/tests/9c.in
trunk/fuse/z80/tests/9c.out
trunk/fuse/z80/tests/9d.in
trunk/fuse/z80/tests/9d.out
trunk/fuse/z80/tests/9e.in
trunk/fuse/z80/tests/9e.out
trunk/fuse/z80/tests/9f.in
trunk/fuse/z80/tests/9f.out
trunk/fuse/z80/tests/a0.in
trunk/fuse/z80/tests/a0.out
trunk/fuse/z80/tests/a1.in
trunk/fuse/z80/tests/a1.out
trunk/fuse/z80/tests/a2.in
trunk/fuse/z80/tests/a2.out
trunk/fuse/z80/tests/a3.in
trunk/fuse/z80/tests/a3.out
trunk/fuse/z80/tests/a4.in
trunk/fuse/z80/tests/a4.out
trunk/fuse/z80/tests/a5.in
trunk/fuse/z80/tests/a5.out
trunk/fuse/z80/tests/a6.in
trunk/fuse/z80/tests/a6.out
trunk/fuse/z80/tests/a7.in
trunk/fuse/z80/tests/a7.out
trunk/fuse/z80/tests/a8.in
trunk/fuse/z80/tests/a8.out
trunk/fuse/z80/tests/a9.in
trunk/fuse/z80/tests/a9.out
trunk/fuse/z80/tests/aa.in
trunk/fuse/z80/tests/aa.out
trunk/fuse/z80/tests/ab.in
trunk/fuse/z80/tests/ab.out
trunk/fuse/z80/tests/ac.in
trunk/fuse/z80/tests/ac.out
trunk/fuse/z80/tests/ad.in
trunk/fuse/z80/tests/ad.out
trunk/fuse/z80/tests/ae.in
trunk/fuse/z80/tests/ae.out
trunk/fuse/z80/tests/af.in
trunk/fuse/z80/tests/af.out
trunk/fuse/z80/tests/b0.in
trunk/fuse/z80/tests/b0.out
trunk/fuse/z80/tests/b1.in
trunk/fuse/z80/tests/b1.out
trunk/fuse/z80/tests/b2.in
trunk/fuse/z80/tests/b2.out
trunk/fuse/z80/tests/b3.in
trunk/fuse/z80/tests/b3.out
trunk/fuse/z80/tests/b4.in
trunk/fuse/z80/tests/b4.out
trunk/fuse/z80/tests/b5.in
trunk/fuse/z80/tests/b5.out
trunk/fuse/z80/tests/b6.in
trunk/fuse/z80/tests/b6.out
trunk/fuse/z80/tests/b7.in
trunk/fuse/z80/tests/b7.out
trunk/fuse/z80/tests/b8.in
trunk/fuse/z80/tests/b8.out
trunk/fuse/z80/tests/b9.in
trunk/fuse/z80/tests/b9.out
trunk/fuse/z80/tests/ba.in
trunk/fuse/z80/tests/ba.out
trunk/fuse/z80/tests/bb.in
trunk/fuse/z80/tests/bb.out
trunk/fuse/z80/tests/bc.in
trunk/fuse/z80/tests/bc.out
trunk/fuse/z80/tests/bd.in
trunk/fuse/z80/tests/bd.out
trunk/fuse/z80/tests/be.in
trunk/fuse/z80/tests/be.out
trunk/fuse/z80/tests/bf.in
trunk/fuse/z80/tests/bf.out
trunk/fuse/z80/tests/c0_1.in
trunk/fuse/z80/tests/c0_1.out
trunk/fuse/z80/tests/c0_2.in
trunk/fuse/z80/tests/c0_2.out
trunk/fuse/z80/tests/c1.in
trunk/fuse/z80/tests/c1.out
trunk/fuse/z80/tests/c2_1.in
trunk/fuse/z80/tests/c2_1.out
trunk/fuse/z80/tests/c2_2.in
trunk/fuse/z80/tests/c2_2.out
trunk/fuse/z80/tests/c3.in
trunk/fuse/z80/tests/c3.out
trunk/fuse/z80/tests/c4_1.in
trunk/fuse/z80/tests/c4_1.out
trunk/fuse/z80/tests/c4_2.in
trunk/fuse/z80/tests/c4_2.out
trunk/fuse/z80/tests/c5.in
trunk/fuse/z80/tests/c5.out
trunk/fuse/z80/tests/c6.in
trunk/fuse/z80/tests/c6.out
trunk/fuse/z80/tests/c7.in
trunk/fuse/z80/tests/c7.out
trunk/fuse/z80/tests/c8_1.in
trunk/fuse/z80/tests/c8_1.out
trunk/fuse/z80/tests/c8_2.in
trunk/fuse/z80/tests/c8_2.out
trunk/fuse/z80/tests/c9.in
trunk/fuse/z80/tests/c9.out
trunk/fuse/z80/tests/ca_1.in
trunk/fuse/z80/tests/ca_1.out
trunk/fuse/z80/tests/ca_2.in
trunk/fuse/z80/tests/ca_2.out
trunk/fuse/z80/tests/cb00.in
trunk/fuse/z80/tests/cb00.out
trunk/fuse/z80/tests/cb01.in
trunk/fuse/z80/tests/cb01.out
trunk/fuse/z80/tests/cb02.in
trunk/fuse/z80/tests/cb02.out
trunk/fuse/z80/tests/cb03.in
trunk/fuse/z80/tests/cb03.out
trunk/fuse/z80/tests/cb04.in
trunk/fuse/z80/tests/cb04.out
trunk/fuse/z80/tests/cb05.in
trunk/fuse/z80/tests/cb05.out
trunk/fuse/z80/tests/cb06.in
trunk/fuse/z80/tests/cb06.out
trunk/fuse/z80/tests/cb07.in
trunk/fuse/z80/tests/cb07.out
trunk/fuse/z80/tests/cb08.in
trunk/fuse/z80/tests/cb08.out
trunk/fuse/z80/tests/cb09.in
trunk/fuse/z80/tests/cb09.out
trunk/fuse/z80/tests/cb0a.in
trunk/fuse/z80/tests/cb0a.out
trunk/fuse/z80/tests/cb0b.in
trunk/fuse/z80/tests/cb0b.out
trunk/fuse/z80/tests/cb0c.in
trunk/fuse/z80/tests/cb0c.out
trunk/fuse/z80/tests/cb0d.in
trunk/fuse/z80/tests/cb0d.out
trunk/fuse/z80/tests/cb0e.in
trunk/fuse/z80/tests/cb0e.out
trunk/fuse/z80/tests/cb0f.in
trunk/fuse/z80/tests/cb0f.out
trunk/fuse/z80/tests/cb10.in
trunk/fuse/z80/tests/cb10.out
trunk/fuse/z80/tests/cb11.in
trunk/fuse/z80/tests/cb11.out
trunk/fuse/z80/tests/cb12.in
trunk/fuse/z80/tests/cb12.out
trunk/fuse/z80/tests/cb13.in
trunk/fuse/z80/tests/cb13.out
trunk/fuse/z80/tests/cb14.in
trunk/fuse/z80/tests/cb14.out
trunk/fuse/z80/tests/cb15.in
trunk/fuse/z80/tests/cb15.out
trunk/fuse/z80/tests/cb16.in
trunk/fuse/z80/tests/cb16.out
trunk/fuse/z80/tests/cb17.in
trunk/fuse/z80/tests/cb17.out
trunk/fuse/z80/tests/cb18.in
trunk/fuse/z80/tests/cb18.out
trunk/fuse/z80/tests/cb19.in
trunk/fuse/z80/tests/cb19.out
trunk/fuse/z80/tests/cb1a.in
trunk/fuse/z80/tests/cb1a.out
trunk/fuse/z80/tests/cb1b.in
trunk/fuse/z80/tests/cb1b.out
trunk/fuse/z80/tests/cb1c.in
trunk/fuse/z80/tests/cb1c.out
trunk/fuse/z80/tests/cb1d.in
trunk/fuse/z80/tests/cb1d.out
trunk/fuse/z80/tests/cb1e.in
trunk/fuse/z80/tests/cb1e.out
trunk/fuse/z80/tests/cb1f.in
trunk/fuse/z80/tests/cb1f.out
trunk/fuse/z80/tests/cb20.in
trunk/fuse/z80/tests/cb20.out
trunk/fuse/z80/tests/cb21.in
trunk/fuse/z80/tests/cb21.out
trunk/fuse/z80/tests/cb22.in
trunk/fuse/z80/tests/cb22.out
trunk/fuse/z80/tests/cb23.in
trunk/fuse/z80/tests/cb23.out
trunk/fuse/z80/tests/cb24.in
trunk/fuse/z80/tests/cb24.out
trunk/fuse/z80/tests/cb25.in
trunk/fuse/z80/tests/cb25.out
trunk/fuse/z80/tests/cb26.in
trunk/fuse/z80/tests/cb26.out
trunk/fuse/z80/tests/cb27.in
trunk/fuse/z80/tests/cb27.out
trunk/fuse/z80/tests/cb28.in
trunk/fuse/z80/tests/cb28.out
trunk/fuse/z80/tests/cb29.in
trunk/fuse/z80/tests/cb29.out
trunk/fuse/z80/tests/cb2a.in
trunk/fuse/z80/tests/cb2a.out
trunk/fuse/z80/tests/cb2b.in
trunk/fuse/z80/tests/cb2b.out
trunk/fuse/z80/tests/cb2c.in
trunk/fuse/z80/tests/cb2c.out
trunk/fuse/z80/tests/cb2d.in
trunk/fuse/z80/tests/cb2d.out
trunk/fuse/z80/tests/cb2e.in
trunk/fuse/z80/tests/cb2e.out
trunk/fuse/z80/tests/cb2f.in
trunk/fuse/z80/tests/cb2f.out
trunk/fuse/z80/tests/cb30.in
trunk/fuse/z80/tests/cb30.out
trunk/fuse/z80/tests/cb31.in
trunk/fuse/z80/tests/cb31.out
trunk/fuse/z80/tests/cb32.in
trunk/fuse/z80/tests/cb32.out
trunk/fuse/z80/tests/cb33.in
trunk/fuse/z80/tests/cb33.out
trunk/fuse/z80/tests/cb34.in
trunk/fuse/z80/tests/cb34.out
trunk/fuse/z80/tests/cb35.in
trunk/fuse/z80/tests/cb35.out
trunk/fuse/z80/tests/cb36.in
trunk/fuse/z80/tests/cb36.out
trunk/fuse/z80/tests/cb37.in
trunk/fuse/z80/tests/cb37.out
trunk/fuse/z80/tests/cb38.in
trunk/fuse/z80/tests/cb38.out
trunk/fuse/z80/tests/cb39.in
trunk/fuse/z80/tests/cb39.out
trunk/fuse/z80/tests/cb3a.in
trunk/fuse/z80/tests/cb3a.out
trunk/fuse/z80/tests/cb3b.in
trunk/fuse/z80/tests/cb3b.out
trunk/fuse/z80/tests/cb3c.in
trunk/fuse/z80/tests/cb3c.out
trunk/fuse/z80/tests/cb3d.in
trunk/fuse/z80/tests/cb3d.out
trunk/fuse/z80/tests/cb3e.in
trunk/fuse/z80/tests/cb3e.out
trunk/fuse/z80/tests/cb3f.in
trunk/fuse/z80/tests/cb3f.out
trunk/fuse/z80/tests/cb40.in
trunk/fuse/z80/tests/cb40.out
trunk/fuse/z80/tests/cb41.in
trunk/fuse/z80/tests/cb41.out
trunk/fuse/z80/tests/cb42.in
trunk/fuse/z80/tests/cb42.out
trunk/fuse/z80/tests/cb43.in
trunk/fuse/z80/tests/cb43.out
trunk/fuse/z80/tests/cb44.in
trunk/fuse/z80/tests/cb44.out
trunk/fuse/z80/tests/cb45.in
trunk/fuse/z80/tests/cb45.out
trunk/fuse/z80/tests/cb46.in
trunk/fuse/z80/tests/cb46.out
trunk/fuse/z80/tests/cb47.in
trunk/fuse/z80/tests/cb47.out
trunk/fuse/z80/tests/cb47_1.in
trunk/fuse/z80/tests/cb47_1.out
trunk/fuse/z80/tests/cb48.in
trunk/fuse/z80/tests/cb48.out
trunk/fuse/z80/tests/cb49.in
trunk/fuse/z80/tests/cb49.out
trunk/fuse/z80/tests/cb4a.in
trunk/fuse/z80/tests/cb4a.out
trunk/fuse/z80/tests/cb4b.in
trunk/fuse/z80/tests/cb4b.out
trunk/fuse/z80/tests/cb4c.in
trunk/fuse/z80/tests/cb4c.out
trunk/fuse/z80/tests/cb4d.in
trunk/fuse/z80/tests/cb4d.out
trunk/fuse/z80/tests/cb4e.in
trunk/fuse/z80/tests/cb4e.out
trunk/fuse/z80/tests/cb4f.in
trunk/fuse/z80/tests/cb4f.out
trunk/fuse/z80/tests/cb4f_1.in
trunk/fuse/z80/tests/cb4f_1.out
trunk/fuse/z80/tests/cb50.in
trunk/fuse/z80/tests/cb50.out
trunk/fuse/z80/tests/cb51.in
trunk/fuse/z80/tests/cb51.out
trunk/fuse/z80/tests/cb52.in
trunk/fuse/z80/tests/cb52.out
trunk/fuse/z80/tests/cb53.in
trunk/fuse/z80/tests/cb53.out
trunk/fuse/z80/tests/cb54.in
trunk/fuse/z80/tests/cb54.out
trunk/fuse/z80/tests/cb55.in
trunk/fuse/z80/tests/cb55.out
trunk/fuse/z80/tests/cb56.in
trunk/fuse/z80/tests/cb56.out
trunk/fuse/z80/tests/cb57.in
trunk/fuse/z80/tests/cb57.out
trunk/fuse/z80/tests/cb57_1.in
trunk/fuse/z80/tests/cb57_1.out
trunk/fuse/z80/tests/cb58.in
trunk/fuse/z80/tests/cb58.out
trunk/fuse/z80/tests/cb59.in
trunk/fuse/z80/tests/cb59.out
trunk/fuse/z80/tests/cb5a.in
trunk/fuse/z80/tests/cb5a.out
trunk/fuse/z80/tests/cb5b.in
trunk/fuse/z80/tests/cb5b.out
trunk/fuse/z80/tests/cb5c.in
trunk/fuse/z80/tests/cb5c.out
trunk/fuse/z80/tests/cb5d.in
trunk/fuse/z80/tests/cb5d.out
trunk/fuse/z80/tests/cb5e.in
trunk/fuse/z80/tests/cb5e.out
trunk/fuse/z80/tests/cb5f.in
trunk/fuse/z80/tests/cb5f.out
trunk/fuse/z80/tests/cb5f_1.in
trunk/fuse/z80/tests/cb5f_1.out
trunk/fuse/z80/tests/cb60.in
trunk/fuse/z80/tests/cb60.out
trunk/fuse/z80/tests/cb61.in
trunk/fuse/z80/tests/cb61.out
trunk/fuse/z80/tests/cb62.in
trunk/fuse/z80/tests/cb62.out
trunk/fuse/z80/tests/cb63.in
trunk/fuse/z80/tests/cb63.out
trunk/fuse/z80/tests/cb64.in
trunk/fuse/z80/tests/cb64.out
trunk/fuse/z80/tests/cb65.in
trunk/fuse/z80/tests/cb65.out
trunk/fuse/z80/tests/cb66.in
trunk/fuse/z80/tests/cb66.out
trunk/fuse/z80/tests/cb67.in
trunk/fuse/z80/tests/cb67.out
trunk/fuse/z80/tests/cb67_1.in
trunk/fuse/z80/tests/cb67_1.out
trunk/fuse/z80/tests/cb68.in
trunk/fuse/z80/tests/cb68.out
trunk/fuse/z80/tests/cb69.in
trunk/fuse/z80/tests/cb69.out
trunk/fuse/z80/tests/cb6a.in
trunk/fuse/z80/tests/cb6a.out
trunk/fuse/z80/tests/cb6b.in
trunk/fuse/z80/tests/cb6b.out
trunk/fuse/z80/tests/cb6c.in
trunk/fuse/z80/tests/cb6c.out
trunk/fuse/z80/tests/cb6d.in
trunk/fuse/z80/tests/cb6d.out
trunk/fuse/z80/tests/cb6e.in
trunk/fuse/z80/tests/cb6e.out
trunk/fuse/z80/tests/cb6f.in
trunk/fuse/z80/tests/cb6f.out
trunk/fuse/z80/tests/cb6f_1.in
trunk/fuse/z80/tests/cb6f_1.out
trunk/fuse/z80/tests/cb70.in
trunk/fuse/z80/tests/cb70.out
trunk/fuse/z80/tests/cb71.in
trunk/fuse/z80/tests/cb71.out
trunk/fuse/z80/tests/cb72.in
trunk/fuse/z80/tests/cb72.out
trunk/fuse/z80/tests/cb73.in
trunk/fuse/z80/tests/cb73.out
trunk/fuse/z80/tests/cb74.in
trunk/fuse/z80/tests/cb74.out
trunk/fuse/z80/tests/cb75.in
trunk/fuse/z80/tests/cb75.out
trunk/fuse/z80/tests/cb76.in
trunk/fuse/z80/tests/cb76.out
trunk/fuse/z80/tests/cb77.in
trunk/fuse/z80/tests/cb77.out
trunk/fuse/z80/tests/cb77_1.in
trunk/fuse/z80/tests/cb77_1.out
trunk/fuse/z80/tests/cb78.in
trunk/fuse/z80/tests/cb78.out
trunk/fuse/z80/tests/cb79.in
trunk/fuse/z80/tests/cb79.out
trunk/fuse/z80/tests/cb7a.in
trunk/fuse/z80/tests/cb7a.out
trunk/fuse/z80/tests/cb7b.in
trunk/fuse/z80/tests/cb7b.out
trunk/fuse/z80/tests/cb7c.in
trunk/fuse/z80/tests/cb7c.out
trunk/fuse/z80/tests/cb7d.in
trunk/fuse/z80/tests/cb7d.out
trunk/fuse/z80/tests/cb7e.in
trunk/fuse/z80/tests/cb7e.out
trunk/fuse/z80/tests/cb7f.in
trunk/fuse/z80/tests/cb7f.out
trunk/fuse/z80/tests/cb7f_1.in
trunk/fuse/z80/tests/cb7f_1.out
trunk/fuse/z80/tests/cb80.in
trunk/fuse/z80/tests/cb80.out
trunk/fuse/z80/tests/cb81.in
trunk/fuse/z80/tests/cb81.out
trunk/fuse/z80/tests/cb82.in
trunk/fuse/z80/tests/cb82.out
trunk/fuse/z80/tests/cb83.in
trunk/fuse/z80/tests/cb83.out
trunk/fuse/z80/tests/cb84.in
trunk/fuse/z80/tests/cb84.out
trunk/fuse/z80/tests/cb85.in
trunk/fuse/z80/tests/cb85.out
trunk/fuse/z80/tests/cb86.in
trunk/fuse/z80/tests/cb86.out
trunk/fuse/z80/tests/cb87.in
trunk/fuse/z80/tests/cb87.out
trunk/fuse/z80/tests/cb88.in
trunk/fuse/z80/tests/cb88.out
trunk/fuse/z80/tests/cb89.in
trunk/fuse/z80/tests/cb89.out
trunk/fuse/z80/tests/cb8a.in
trunk/fuse/z80/tests/cb8a.out
trunk/fuse/z80/tests/cb8b.in
trunk/fuse/z80/tests/cb8b.out
trunk/fuse/z80/tests/cb8c.in
trunk/fuse/z80/tests/cb8c.out
trunk/fuse/z80/tests/cb8d.in
trunk/fuse/z80/tests/cb8d.out
trunk/fuse/z80/tests/cb8e.in
trunk/fuse/z80/tests/cb8e.out
trunk/fuse/z80/tests/cb8f.in
trunk/fuse/z80/tests/cb8f.out
trunk/fuse/z80/tests/cb90.in
trunk/fuse/z80/tests/cb90.out
trunk/fuse/z80/tests/cb91.in
trunk/fuse/z80/tests/cb91.out
trunk/fuse/z80/tests/cb92.in
trunk/fuse/z80/tests/cb92.out
trunk/fuse/z80/tests/cb93.in
trunk/fuse/z80/tests/cb93.out
trunk/fuse/z80/tests/cb94.in
trunk/fuse/z80/tests/cb94.out
trunk/fuse/z80/tests/cb95.in
trunk/fuse/z80/tests/cb95.out
trunk/fuse/z80/tests/cb96.in
trunk/fuse/z80/tests/cb96.out
trunk/fuse/z80/tests/cb97.in
trunk/fuse/z80/tests/cb97.out
trunk/fuse/z80/tests/cb98.in
trunk/fuse/z80/tests/cb98.out
trunk/fuse/z80/tests/cb99.in
trunk/fuse/z80/tests/cb99.out
trunk/fuse/z80/tests/cb9a.in
trunk/fuse/z80/tests/cb9a.out
trunk/fuse/z80/tests/cb9b.in
trunk/fuse/z80/tests/cb9b.out
trunk/fuse/z80/tests/cb9c.in
trunk/fuse/z80/tests/cb9c.out
trunk/fuse/z80/tests/cb9d.in
trunk/fuse/z80/tests/cb9d.out
trunk/fuse/z80/tests/cb9e.in
trunk/fuse/z80/tests/cb9e.out
trunk/fuse/z80/tests/cb9f.in
trunk/fuse/z80/tests/cb9f.out
trunk/fuse/z80/tests/cba0.in
trunk/fuse/z80/tests/cba0.out
trunk/fuse/z80/tests/cba1.in
trunk/fuse/z80/tests/cba1.out
trunk/fuse/z80/tests/cba2.in
trunk/fuse/z80/tests/cba2.out
trunk/fuse/z80/tests/cba3.in
trunk/fuse/z80/tests/cba3.out
trunk/fuse/z80/tests/cba4.in
trunk/fuse/z80/tests/cba4.out
trunk/fuse/z80/tests/cba5.in
trunk/fuse/z80/tests/cba5.out
trunk/fuse/z80/tests/cba6.in
trunk/fuse/z80/tests/cba6.out
trunk/fuse/z80/tests/cba7.in
trunk/fuse/z80/tests/cba7.out
trunk/fuse/z80/tests/cba8.in
trunk/fuse/z80/tests/cba8.out
trunk/fuse/z80/tests/cba9.in
trunk/fuse/z80/tests/cba9.out
trunk/fuse/z80/tests/cbaa.in
trunk/fuse/z80/tests/cbaa.out
trunk/fuse/z80/tests/cbab.in
trunk/fuse/z80/tests/cbab.out
trunk/fuse/z80/tests/cbac.in
trunk/fuse/z80/tests/cbac.out
trunk/fuse/z80/tests/cbad.in
trunk/fuse/z80/tests/cbad.out
trunk/fuse/z80/tests/cbae.in
trunk/fuse/z80/tests/cbae.out
trunk/fuse/z80/tests/cbaf.in
trunk/fuse/z80/tests/cbaf.out
trunk/fuse/z80/tests/cbb0.in
trunk/fuse/z80/tests/cbb0.out
trunk/fuse/z80/tests/cbb1.in
trunk/fuse/z80/tests/cbb1.out
trunk/fuse/z80/tests/cbb2.in
trunk/fuse/z80/tests/cbb2.out
trunk/fuse/z80/tests/cbb3.in
trunk/fuse/z80/tests/cbb3.out
trunk/fuse/z80/tests/cbb4.in
trunk/fuse/z80/tests/cbb4.out
trunk/fuse/z80/tests/cbb5.in
trunk/fuse/z80/tests/cbb5.out
trunk/fuse/z80/tests/cbb6.in
trunk/fuse/z80/tests/cbb6.out
trunk/fuse/z80/tests/cbb7.in
trunk/fuse/z80/tests/cbb7.out
trunk/fuse/z80/tests/cbb8.in
trunk/fuse/z80/tests/cbb8.out
trunk/fuse/z80/tests/cbb9.in
trunk/fuse/z80/tests/cbb9.out
trunk/fuse/z80/tests/cbba.in
trunk/fuse/z80/tests/cbba.out
trunk/fuse/z80/tests/cbbb.in
trunk/fuse/z80/tests/cbbb.out
trunk/fuse/z80/tests/cbbc.in
trunk/fuse/z80/tests/cbbc.out
trunk/fuse/z80/tests/cbbd.in
trunk/fuse/z80/tests/cbbd.out
trunk/fuse/z80/tests/cbbe.in
trunk/fuse/z80/tests/cbbe.out
trunk/fuse/z80/tests/cbbf.in
trunk/fuse/z80/tests/cbbf.out
trunk/fuse/z80/tests/cbc0.in
trunk/fuse/z80/tests/cbc0.out
trunk/fuse/z80/tests/cbc1.in
trunk/fuse/z80/tests/cbc1.out
trunk/fuse/z80/tests/cbc2.in
trunk/fuse/z80/tests/cbc2.out
trunk/fuse/z80/tests/cbc3.in
trunk/fuse/z80/tests/cbc3.out
trunk/fuse/z80/tests/cbc4.in
trunk/fuse/z80/tests/cbc4.out
trunk/fuse/z80/tests/cbc5.in
trunk/fuse/z80/tests/cbc5.out
trunk/fuse/z80/tests/cbc6.in
trunk/fuse/z80/tests/cbc6.out
trunk/fuse/z80/tests/cbc7.in
trunk/fuse/z80/tests/cbc7.out
trunk/fuse/z80/tests/cbc8.in
trunk/fuse/z80/tests/cbc8.out
trunk/fuse/z80/tests/cbc9.in
trunk/fuse/z80/tests/cbc9.out
trunk/fuse/z80/tests/cbca.in
trunk/fuse/z80/tests/cbca.out
trunk/fuse/z80/tests/cbcb.in
trunk/fuse/z80/tests/cbcb.out
trunk/fuse/z80/tests/cbcc.in
trunk/fuse/z80/tests/cbcc.out
trunk/fuse/z80/tests/cbcd.in
trunk/fuse/z80/tests/cbcd.out
trunk/fuse/z80/tests/cbce.in
trunk/fuse/z80/tests/cbce.out
trunk/fuse/z80/tests/cbcf.in
trunk/fuse/z80/tests/cbcf.out
trunk/fuse/z80/tests/cbd0.in
trunk/fuse/z80/tests/cbd0.out
trunk/fuse/z80/tests/cbd1.in
trunk/fuse/z80/tests/cbd1.out
trunk/fuse/z80/tests/cbd2.in
trunk/fuse/z80/tests/cbd2.out
trunk/fuse/z80/tests/cbd3.in
trunk/fuse/z80/tests/cbd3.out
trunk/fuse/z80/tests/cbd4.in
trunk/fuse/z80/tests/cbd4.out
trunk/fuse/z80/tests/cbd5.in
trunk/fuse/z80/tests/cbd5.out
trunk/fuse/z80/tests/cbd6.in
trunk/fuse/z80/tests/cbd6.out
trunk/fuse/z80/tests/cbd7.in
trunk/fuse/z80/tests/cbd7.out
trunk/fuse/z80/tests/cbd8.in
trunk/fuse/z80/tests/cbd8.out
trunk/fuse/z80/tests/cbd9.in
trunk/fuse/z80/tests/cbd9.out
trunk/fuse/z80/tests/cbda.in
trunk/fuse/z80/tests/cbda.out
trunk/fuse/z80/tests/cbdb.in
trunk/fuse/z80/tests/cbdb.out
trunk/fuse/z80/tests/cbdc.in
trunk/fuse/z80/tests/cbdc.out
trunk/fuse/z80/tests/cbdd.in
trunk/fuse/z80/tests/cbdd.out
trunk/fuse/z80/tests/cbde.in
trunk/fuse/z80/tests/cbde.out
trunk/fuse/z80/tests/cbdf.in
trunk/fuse/z80/tests/cbdf.out
trunk/fuse/z80/tests/cbe0.in
trunk/fuse/z80/tests/cbe0.out
trunk/fuse/z80/tests/cbe1.in
trunk/fuse/z80/tests/cbe1.out
trunk/fuse/z80/tests/cbe2.in
trunk/fuse/z80/tests/cbe2.out
trunk/fuse/z80/tests/cbe3.in
trunk/fuse/z80/tests/cbe3.out
trunk/fuse/z80/tests/cbe4.in
trunk/fuse/z80/tests/cbe4.out
trunk/fuse/z80/tests/cbe5.in
trunk/fuse/z80/tests/cbe5.out
trunk/fuse/z80/tests/cbe6.in
trunk/fuse/z80/tests/cbe6.out
trunk/fuse/z80/tests/cbe7.in
trunk/fuse/z80/tests/cbe7.out
trunk/fuse/z80/tests/cbe8.in
trunk/fuse/z80/tests/cbe8.out
trunk/fuse/z80/tests/cbe9.in
trunk/fuse/z80/tests/cbe9.out
trunk/fuse/z80/tests/cbea.in
trunk/fuse/z80/tests/cbea.out
trunk/fuse/z80/tests/cbeb.in
trunk/fuse/z80/tests/cbeb.out
trunk/fuse/z80/tests/cbec.in
trunk/fuse/z80/tests/cbec.out
trunk/fuse/z80/tests/cbed.in
trunk/fuse/z80/tests/cbed.out
trunk/fuse/z80/tests/cbee.in
trunk/fuse/z80/tests/cbee.out
trunk/fuse/z80/tests/cbef.in
trunk/fuse/z80/tests/cbef.out
trunk/fuse/z80/tests/cbf0.in
trunk/fuse/z80/tests/cbf0.out
trunk/fuse/z80/tests/cbf1.in
trunk/fuse/z80/tests/cbf1.out
trunk/fuse/z80/tests/cbf2.in
trunk/fuse/z80/tests/cbf2.out
trunk/fuse/z80/tests/cbf3.in
trunk/fuse/z80/tests/cbf3.out
trunk/fuse/z80/tests/cbf4.in
trunk/fuse/z80/tests/cbf4.out
trunk/fuse/z80/tests/cbf5.in
trunk/fuse/z80/tests/cbf5.out
trunk/fuse/z80/tests/cbf6.in
trunk/fuse/z80/tests/cbf6.out
trunk/fuse/z80/tests/cbf7.in
trunk/fuse/z80/tests/cbf7.out
trunk/fuse/z80/tests/cbf8.in
trunk/fuse/z80/tests/cbf8.out
trunk/fuse/z80/tests/cbf9.in
trunk/fuse/z80/tests/cbf9.out
trunk/fuse/z80/tests/cbfa.in
trunk/fuse/z80/tests/cbfa.out
trunk/fuse/z80/tests/cbfb.in
trunk/fuse/z80/tests/cbfb.out
trunk/fuse/z80/tests/cbfc.in
trunk/fuse/z80/tests/cbfc.out
trunk/fuse/z80/tests/cbfd.in
trunk/fuse/z80/tests/cbfd.out
trunk/fuse/z80/tests/cbfe.in
trunk/fuse/z80/tests/cbfe.out
trunk/fuse/z80/tests/cbff.in
trunk/fuse/z80/tests/cbff.out
trunk/fuse/z80/tests/cc_1.in
trunk/fuse/z80/tests/cc_1.out
trunk/fuse/z80/tests/cc_2.in
trunk/fuse/z80/tests/cc_2.out
trunk/fuse/z80/tests/cd.in
trunk/fuse/z80/tests/cd.out
trunk/fuse/z80/tests/ce.in
trunk/fuse/z80/tests/ce.out
trunk/fuse/z80/tests/cf.in
trunk/fuse/z80/tests/cf.out
trunk/fuse/z80/tests/d0_1.in
trunk/fuse/z80/tests/d0_1.out
trunk/fuse/z80/tests/d0_2.in
trunk/fuse/z80/tests/d0_2.out
trunk/fuse/z80/tests/d1.in
trunk/fuse/z80/tests/d1.out
trunk/fuse/z80/tests/d2_1.in
trunk/fuse/z80/tests/d2_1.out
trunk/fuse/z80/tests/d2_2.in
trunk/fuse/z80/tests/d2_2.out
trunk/fuse/z80/tests/d3.in
trunk/fuse/z80/tests/d3.out
trunk/fuse/z80/tests/d3_1.in
trunk/fuse/z80/tests/d3_1.out
trunk/fuse/z80/tests/d3_2.in
trunk/fuse/z80/tests/d3_2.out
trunk/fuse/z80/tests/d3_3.in
trunk/fuse/z80/tests/d3_3.out
trunk/fuse/z80/tests/d4_1.in
trunk/fuse/z80/tests/d4_1.out
trunk/fuse/z80/tests/d4_2.in
trunk/fuse/z80/tests/d4_2.out
trunk/fuse/z80/tests/d5.in
trunk/fuse/z80/tests/d5.out
trunk/fuse/z80/tests/d6.in
trunk/fuse/z80/tests/d6.out
trunk/fuse/z80/tests/d7.in
trunk/fuse/z80/tests/d7.out
trunk/fuse/z80/tests/d8_1.in
trunk/fuse/z80/tests/d8_1.out
trunk/fuse/z80/tests/d8_2.in
trunk/fuse/z80/tests/d8_2.out
trunk/fuse/z80/tests/d9.in
trunk/fuse/z80/tests/d9.out
trunk/fuse/z80/tests/da_1.in
trunk/fuse/z80/tests/da_1.out
trunk/fuse/z80/tests/da_2.in
trunk/fuse/z80/tests/da_2.out
trunk/fuse/z80/tests/db.in
trunk/fuse/z80/tests/db.out
trunk/fuse/z80/tests/db_1.in
trunk/fuse/z80/tests/db_1.out
trunk/fuse/z80/tests/db_2.in
trunk/fuse/z80/tests/db_2.out
trunk/fuse/z80/tests/db_3.in
trunk/fuse/z80/tests/db_3.out
trunk/fuse/z80/tests/dc_1.in
trunk/fuse/z80/tests/dc_1.out
trunk/fuse/z80/tests/dc_2.in
trunk/fuse/z80/tests/dc_2.out
trunk/fuse/z80/tests/dd00.in
trunk/fuse/z80/tests/dd00.out
trunk/fuse/z80/tests/dd09.in
trunk/fuse/z80/tests/dd09.out
trunk/fuse/z80/tests/dd19.in
trunk/fuse/z80/tests/dd19.out
trunk/fuse/z80/tests/dd21.in
trunk/fuse/z80/tests/dd21.out
trunk/fuse/z80/tests/dd22.in
trunk/fuse/z80/tests/dd22.out
trunk/fuse/z80/tests/dd23.in
trunk/fuse/z80/tests/dd23.out
trunk/fuse/z80/tests/dd24.in
trunk/fuse/z80/tests/dd24.out
trunk/fuse/z80/tests/dd25.in
trunk/fuse/z80/tests/dd25.out
trunk/fuse/z80/tests/dd26.in
trunk/fuse/z80/tests/dd26.out
trunk/fuse/z80/tests/dd29.in
trunk/fuse/z80/tests/dd29.out
trunk/fuse/z80/tests/dd2a.in
trunk/fuse/z80/tests/dd2a.out
trunk/fuse/z80/tests/dd2b.in
trunk/fuse/z80/tests/dd2b.out
trunk/fuse/z80/tests/dd2c.in
trunk/fuse/z80/tests/dd2c.out
trunk/fuse/z80/tests/dd2d.in
trunk/fuse/z80/tests/dd2d.out
trunk/fuse/z80/tests/dd2e.in
trunk/fuse/z80/tests/dd2e.out
trunk/fuse/z80/tests/dd34.in
trunk/fuse/z80/tests/dd34.out
trunk/fuse/z80/tests/dd35.in
trunk/fuse/z80/tests/dd35.out
trunk/fuse/z80/tests/dd36.in
trunk/fuse/z80/tests/dd36.out
trunk/fuse/z80/tests/dd39.in
trunk/fuse/z80/tests/dd39.out
trunk/fuse/z80/tests/dd44.in
trunk/fuse/z80/tests/dd44.out
trunk/fuse/z80/tests/dd45.in
trunk/fuse/z80/tests/dd45.out
trunk/fuse/z80/tests/dd46.in
trunk/fuse/z80/tests/dd46.out
trunk/fuse/z80/tests/dd4c.in
trunk/fuse/z80/tests/dd4c.out
trunk/fuse/z80/tests/dd4d.in
trunk/fuse/z80/tests/dd4d.out
trunk/fuse/z80/tests/dd4e.in
trunk/fuse/z80/tests/dd4e.out
trunk/fuse/z80/tests/dd54.in
trunk/fuse/z80/tests/dd54.out
trunk/fuse/z80/tests/dd55.in
trunk/fuse/z80/tests/dd55.out
trunk/fuse/z80/tests/dd56.in
trunk/fuse/z80/tests/dd56.out
trunk/fuse/z80/tests/dd5c.in
trunk/fuse/z80/tests/dd5c.out
trunk/fuse/z80/tests/dd5d.in
trunk/fuse/z80/tests/dd5d.out
trunk/fuse/z80/tests/dd5e.in
trunk/fuse/z80/tests/dd5e.out
trunk/fuse/z80/tests/dd60.in
trunk/fuse/z80/tests/dd60.out
trunk/fuse/z80/tests/dd61.in
trunk/fuse/z80/tests/dd61.out
trunk/fuse/z80/tests/dd62.in
trunk/fuse/z80/tests/dd62.out
trunk/fuse/z80/tests/dd63.in
trunk/fuse/z80/tests/dd63.out
trunk/fuse/z80/tests/dd64.in
trunk/fuse/z80/tests/dd64.out
trunk/fuse/z80/tests/dd65.in
trunk/fuse/z80/tests/dd65.out
trunk/fuse/z80/tests/dd66.in
trunk/fuse/z80/tests/dd66.out
trunk/fuse/z80/tests/dd67.in
trunk/fuse/z80/tests/dd67.out
trunk/fuse/z80/tests/dd68.in
trunk/fuse/z80/tests/dd68.out
trunk/fuse/z80/tests/dd69.in
trunk/fuse/z80/tests/dd69.out
trunk/fuse/z80/tests/dd6a.in
trunk/fuse/z80/tests/dd6a.out
trunk/fuse/z80/tests/dd6b.in
trunk/fuse/z80/tests/dd6b.out
trunk/fuse/z80/tests/dd6c.in
trunk/fuse/z80/tests/dd6c.out
trunk/fuse/z80/tests/dd6d.in
trunk/fuse/z80/tests/dd6d.out
trunk/fuse/z80/tests/dd6e.in
trunk/fuse/z80/tests/dd6e.out
trunk/fuse/z80/tests/dd6f.in
trunk/fuse/z80/tests/dd6f.out
trunk/fuse/z80/tests/dd70.in
trunk/fuse/z80/tests/dd70.out
trunk/fuse/z80/tests/dd71.in
trunk/fuse/z80/tests/dd71.out
trunk/fuse/z80/tests/dd72.in
trunk/fuse/z80/tests/dd72.out
trunk/fuse/z80/tests/dd73.in
trunk/fuse/z80/tests/dd73.out
trunk/fuse/z80/tests/dd74.in
trunk/fuse/z80/tests/dd74.out
trunk/fuse/z80/tests/dd75.in
trunk/fuse/z80/tests/dd75.out
trunk/fuse/z80/tests/dd77.in
trunk/fuse/z80/tests/dd77.out
trunk/fuse/z80/tests/dd7c.in
trunk/fuse/z80/tests/dd7c.out
trunk/fuse/z80/tests/dd7d.in
trunk/fuse/z80/tests/dd7d.out
trunk/fuse/z80/tests/dd7e.in
trunk/fuse/z80/tests/dd7e.out
trunk/fuse/z80/tests/dd84.in
trunk/fuse/z80/tests/dd84.out
trunk/fuse/z80/tests/dd85.in
trunk/fuse/z80/tests/dd85.out
trunk/fuse/z80/tests/dd86.in
trunk/fuse/z80/tests/dd86.out
trunk/fuse/z80/tests/dd8c.in
trunk/fuse/z80/tests/dd8c.out
trunk/fuse/z80/tests/dd8d.in
trunk/fuse/z80/tests/dd8d.out
trunk/fuse/z80/tests/dd8e.in
trunk/fuse/z80/tests/dd8e.out
trunk/fuse/z80/tests/dd94.in
trunk/fuse/z80/tests/dd94.out
trunk/fuse/z80/tests/dd95.in
trunk/fuse/z80/tests/dd95.out
trunk/fuse/z80/tests/dd96.in
trunk/fuse/z80/tests/dd96.out
trunk/fuse/z80/tests/dd9c.in
trunk/fuse/z80/tests/dd9c.out
trunk/fuse/z80/tests/dd9d.in
trunk/fuse/z80/tests/dd9d.out
trunk/fuse/z80/tests/dd9e.in
trunk/fuse/z80/tests/dd9e.out
trunk/fuse/z80/tests/dda4.in
trunk/fuse/z80/tests/dda4.out
trunk/fuse/z80/tests/dda5.in
trunk/fuse/z80/tests/dda5.out
trunk/fuse/z80/tests/dda6.in
trunk/fuse/z80/tests/dda6.out
trunk/fuse/z80/tests/ddac.in
trunk/fuse/z80/tests/ddac.out
trunk/fuse/z80/tests/ddad.in
trunk/fuse/z80/tests/ddad.out
trunk/fuse/z80/tests/ddae.in
trunk/fuse/z80/tests/ddae.out
trunk/fuse/z80/tests/ddb4.in
trunk/fuse/z80/tests/ddb4.out
trunk/fuse/z80/tests/ddb5.in
trunk/fuse/z80/tests/ddb5.out
trunk/fuse/z80/tests/ddb6.in
trunk/fuse/z80/tests/ddb6.out
trunk/fuse/z80/tests/ddbc.in
trunk/fuse/z80/tests/ddbc.out
trunk/fuse/z80/tests/ddbd.in
trunk/fuse/z80/tests/ddbd.out
trunk/fuse/z80/tests/ddbe.in
trunk/fuse/z80/tests/ddbe.out
trunk/fuse/z80/tests/ddcb00.in
trunk/fuse/z80/tests/ddcb00.out
trunk/fuse/z80/tests/ddcb01.in
trunk/fuse/z80/tests/ddcb01.out
trunk/fuse/z80/tests/ddcb02.in
trunk/fuse/z80/tests/ddcb02.out
trunk/fuse/z80/tests/ddcb03.in
trunk/fuse/z80/tests/ddcb03.out
trunk/fuse/z80/tests/ddcb04.in
trunk/fuse/z80/tests/ddcb04.out
trunk/fuse/z80/tests/ddcb05.in
trunk/fuse/z80/tests/ddcb05.out
trunk/fuse/z80/tests/ddcb06.in
trunk/fuse/z80/tests/ddcb06.out
trunk/fuse/z80/tests/ddcb07.in
trunk/fuse/z80/tests/ddcb07.out
trunk/fuse/z80/tests/ddcb08.in
trunk/fuse/z80/tests/ddcb08.out
trunk/fuse/z80/tests/ddcb09.in
trunk/fuse/z80/tests/ddcb09.out
trunk/fuse/z80/tests/ddcb0a.in
trunk/fuse/z80/tests/ddcb0a.out
trunk/fuse/z80/tests/ddcb0b.in
trunk/fuse/z80/tests/ddcb0b.out
trunk/fuse/z80/tests/ddcb0c.in
trunk/fuse/z80/tests/ddcb0c.out
trunk/fuse/z80/tests/ddcb0d.in
trunk/fuse/z80/tests/ddcb0d.out
trunk/fuse/z80/tests/ddcb0e.in
trunk/fuse/z80/tests/ddcb0e.out
trunk/fuse/z80/tests/ddcb0f.in
trunk/fuse/z80/tests/ddcb0f.out
trunk/fuse/z80/tests/ddcb10.in
trunk/fuse/z80/tests/ddcb10.out
trunk/fuse/z80/tests/ddcb11.in
trunk/fuse/z80/tests/ddcb11.out
trunk/fuse/z80/tests/ddcb12.in
trunk/fuse/z80/tests/ddcb12.out
trunk/fuse/z80/tests/ddcb13.in
trunk/fuse/z80/tests/ddcb13.out
trunk/fuse/z80/tests/ddcb14.in
trunk/fuse/z80/tests/ddcb14.out
trunk/fuse/z80/tests/ddcb15.in
trunk/fuse/z80/tests/ddcb15.out
trunk/fuse/z80/tests/ddcb16.in
trunk/fuse/z80/tests/ddcb16.out
trunk/fuse/z80/tests/ddcb17.in
trunk/fuse/z80/tests/ddcb17.out
trunk/fuse/z80/tests/ddcb18.in
trunk/fuse/z80/tests/ddcb18.out
trunk/fuse/z80/tests/ddcb19.in
trunk/fuse/z80/tests/ddcb19.out
trunk/fuse/z80/tests/ddcb1a.in
trunk/fuse/z80/tests/ddcb1a.out
trunk/fuse/z80/tests/ddcb1b.in
trunk/fuse/z80/tests/ddcb1b.out
trunk/fuse/z80/tests/ddcb1c.in
trunk/fuse/z80/tests/ddcb1c.out
trunk/fuse/z80/tests/ddcb1d.in
trunk/fuse/z80/tests/ddcb1d.out
trunk/fuse/z80/tests/ddcb1e.in
trunk/fuse/z80/tests/ddcb1e.out
trunk/fuse/z80/tests/ddcb1f.in
trunk/fuse/z80/tests/ddcb1f.out
trunk/fuse/z80/tests/ddcb20.in
trunk/fuse/z80/tests/ddcb20.out
trunk/fuse/z80/tests/ddcb21.in
trunk/fuse/z80/tests/ddcb21.out
trunk/fuse/z80/tests/ddcb22.in
trunk/fuse/z80/tests/ddcb22.out
trunk/fuse/z80/tests/ddcb23.in
trunk/fuse/z80/tests/ddcb23.out
trunk/fuse/z80/tests/ddcb24.in
trunk/fuse/z80/tests/ddcb24.out
trunk/fuse/z80/tests/ddcb25.in
trunk/fuse/z80/tests/ddcb25.out
trunk/fuse/z80/tests/ddcb26.in
trunk/fuse/z80/tests/ddcb26.out
trunk/fuse/z80/tests/ddcb27.in
trunk/fuse/z80/tests/ddcb27.out
trunk/fuse/z80/tests/ddcb28.in
trunk/fuse/z80/tests/ddcb28.out
trunk/fuse/z80/tests/ddcb29.in
trunk/fuse/z80/tests/ddcb29.out
trunk/fuse/z80/tests/ddcb2a.in
trunk/fuse/z80/tests/ddcb2a.out
trunk/fuse/z80/tests/ddcb2b.in
trunk/fuse/z80/tests/ddcb2b.out
trunk/fuse/z80/tests/ddcb2c.in
trunk/fuse/z80/tests/ddcb2c.out
trunk/fuse/z80/tests/ddcb2d.in
trunk/fuse/z80/tests/ddcb2d.out
trunk/fuse/z80/tests/ddcb2e.in
trunk/fuse/z80/tests/ddcb2e.out
trunk/fuse/z80/tests/ddcb2f.in
trunk/fuse/z80/tests/ddcb2f.out
trunk/fuse/z80/tests/ddcb30.in
trunk/fuse/z80/tests/ddcb30.out
trunk/fuse/z80/tests/ddcb31.in
trunk/fuse/z80/tests/ddcb31.out
trunk/fuse/z80/tests/ddcb32.in
trunk/fuse/z80/tests/ddcb32.out
trunk/fuse/z80/tests/ddcb33.in
trunk/fuse/z80/tests/ddcb33.out
trunk/fuse/z80/tests/ddcb34.in
trunk/fuse/z80/tests/ddcb34.out
trunk/fuse/z80/tests/ddcb35.in
trunk/fuse/z80/tests/ddcb35.out
trunk/fuse/z80/tests/ddcb36.in
trunk/fuse/z80/tests/ddcb36.out
trunk/fuse/z80/tests/ddcb37.in
trunk/fuse/z80/tests/ddcb37.out
trunk/fuse/z80/tests/ddcb38.in
trunk/fuse/z80/tests/ddcb38.out
trunk/fuse/z80/tests/ddcb39.in
trunk/fuse/z80/tests/ddcb39.out
trunk/fuse/z80/tests/ddcb3a.in
trunk/fuse/z80/tests/ddcb3a.out
trunk/fuse/z80/tests/ddcb3b.in
trunk/fuse/z80/tests/ddcb3b.out
trunk/fuse/z80/tests/ddcb3c.in
trunk/fuse/z80/tests/ddcb3c.out
trunk/fuse/z80/tests/ddcb3d.in
trunk/fuse/z80/tests/ddcb3d.out
trunk/fuse/z80/tests/ddcb3e.in
trunk/fuse/z80/tests/ddcb3e.out
trunk/fuse/z80/tests/ddcb3f.in
trunk/fuse/z80/tests/ddcb3f.out
trunk/fuse/z80/tests/ddcb40.in
trunk/fuse/z80/tests/ddcb40.out
trunk/fuse/z80/tests/ddcb41.in
trunk/fuse/z80/tests/ddcb41.out
trunk/fuse/z80/tests/ddcb42.in
trunk/fuse/z80/tests/ddcb42.out
trunk/fuse/z80/tests/ddcb43.in
trunk/fuse/z80/tests/ddcb43.out
trunk/fuse/z80/tests/ddcb44.in
trunk/fuse/z80/tests/ddcb44.out
trunk/fuse/z80/tests/ddcb45.in
trunk/fuse/z80/tests/ddcb45.out
trunk/fuse/z80/tests/ddcb46.in
trunk/fuse/z80/tests/ddcb46.out
trunk/fuse/z80/tests/ddcb47.in
trunk/fuse/z80/tests/ddcb47.out
trunk/fuse/z80/tests/ddcb48.in
trunk/fuse/z80/tests/ddcb48.out
trunk/fuse/z80/tests/ddcb49.in
trunk/fuse/z80/tests/ddcb49.out
trunk/fuse/z80/tests/ddcb4a.in
trunk/fuse/z80/tests/ddcb4a.out
trunk/fuse/z80/tests/ddcb4b.in
trunk/fuse/z80/tests/ddcb4b.out
trunk/fuse/z80/tests/ddcb4c.in
trunk/fuse/z80/tests/ddcb4c.out
trunk/fuse/z80/tests/ddcb4d.in
trunk/fuse/z80/tests/ddcb4d.out
trunk/fuse/z80/tests/ddcb4e.in
trunk/fuse/z80/tests/ddcb4e.out
trunk/fuse/z80/tests/ddcb4f.in
trunk/fuse/z80/tests/ddcb4f.out
trunk/fuse/z80/tests/ddcb50.in
trunk/fuse/z80/tests/ddcb50.out
trunk/fuse/z80/tests/ddcb51.in
trunk/fuse/z80/tests/ddcb51.out
trunk/fuse/z80/tests/ddcb52.in
trunk/fuse/z80/tests/ddcb52.out
trunk/fuse/z80/tests/ddcb53.in
trunk/fuse/z80/tests/ddcb53.out
trunk/fuse/z80/tests/ddcb54.in
trunk/fuse/z80/tests/ddcb54.out
trunk/fuse/z80/tests/ddcb55.in
trunk/fuse/z80/tests/ddcb55.out
trunk/fuse/z80/tests/ddcb56.in
trunk/fuse/z80/tests/ddcb56.out
trunk/fuse/z80/tests/ddcb57.in
trunk/fuse/z80/tests/ddcb57.out
trunk/fuse/z80/tests/ddcb58.in
trunk/fuse/z80/tests/ddcb58.out
trunk/fuse/z80/tests/ddcb59.in
trunk/fuse/z80/tests/ddcb59.out
trunk/fuse/z80/tests/ddcb5a.in
trunk/fuse/z80/tests/ddcb5a.out
trunk/fuse/z80/tests/ddcb5b.in
trunk/fuse/z80/tests/ddcb5b.out
trunk/fuse/z80/tests/ddcb5c.in
trunk/fuse/z80/tests/ddcb5c.out
trunk/fuse/z80/tests/ddcb5d.in
trunk/fuse/z80/tests/ddcb5d.out
trunk/fuse/z80/tests/ddcb5e.in
trunk/fuse/z80/tests/ddcb5e.out
trunk/fuse/z80/tests/ddcb5f.in
trunk/fuse/z80/tests/ddcb5f.out
trunk/fuse/z80/tests/ddcb60.in
trunk/fuse/z80/tests/ddcb60.out
trunk/fuse/z80/tests/ddcb61.in
trunk/fuse/z80/tests/ddcb61.out
trunk/fuse/z80/tests/ddcb62.in
trunk/fuse/z80/tests/ddcb62.out
trunk/fuse/z80/tests/ddcb63.in
trunk/fuse/z80/tests/ddcb63.out
trunk/fuse/z80/tests/ddcb64.in
trunk/fuse/z80/tests/ddcb64.out
trunk/fuse/z80/tests/ddcb65.in
trunk/fuse/z80/tests/ddcb65.out
trunk/fuse/z80/tests/ddcb66.in
trunk/fuse/z80/tests/ddcb66.out
trunk/fuse/z80/tests/ddcb67.in
trunk/fuse/z80/tests/ddcb67.out
trunk/fuse/z80/tests/ddcb68.in
trunk/fuse/z80/tests/ddcb68.out
trunk/fuse/z80/tests/ddcb69.in
trunk/fuse/z80/tests/ddcb69.out
trunk/fuse/z80/tests/ddcb6a.in
trunk/fuse/z80/tests/ddcb6a.out
trunk/fuse/z80/tests/ddcb6b.in
trunk/fuse/z80/tests/ddcb6b.out
trunk/fuse/z80/tests/ddcb6c.in
trunk/fuse/z80/tests/ddcb6c.out
trunk/fuse/z80/tests/ddcb6d.in
trunk/fuse/z80/tests/ddcb6d.out
trunk/fuse/z80/tests/ddcb6e.in
trunk/fuse/z80/tests/ddcb6e.out
trunk/fuse/z80/tests/ddcb6f.in
trunk/fuse/z80/tests/ddcb6f.out
trunk/fuse/z80/tests/ddcb70.in
trunk/fuse/z80/tests/ddcb70.out
trunk/fuse/z80/tests/ddcb71.in
trunk/fuse/z80/tests/ddcb71.out
trunk/fuse/z80/tests/ddcb72.in
trunk/fuse/z80/tests/ddcb72.out
trunk/fuse/z80/tests/ddcb73.in
trunk/fuse/z80/tests/ddcb73.out
trunk/fuse/z80/tests/ddcb74.in
trunk/fuse/z80/tests/ddcb74.out
trunk/fuse/z80/tests/ddcb75.in
trunk/fuse/z80/tests/ddcb75.out
trunk/fuse/z80/tests/ddcb76.in
trunk/fuse/z80/tests/ddcb76.out
trunk/fuse/z80/tests/ddcb77.in
trunk/fuse/z80/tests/ddcb77.out
trunk/fuse/z80/tests/ddcb78.in
trunk/fuse/z80/tests/ddcb78.out
trunk/fuse/z80/tests/ddcb79.in
trunk/fuse/z80/tests/ddcb79.out
trunk/fuse/z80/tests/ddcb7a.in
trunk/fuse/z80/tests/ddcb7a.out
trunk/fuse/z80/tests/ddcb7b.in
trunk/fuse/z80/tests/ddcb7b.out
trunk/fuse/z80/tests/ddcb7c.in
trunk/fuse/z80/tests/ddcb7c.out
trunk/fuse/z80/tests/ddcb7d.in
trunk/fuse/z80/tests/ddcb7d.out
trunk/fuse/z80/tests/ddcb7e.in
trunk/fuse/z80/tests/ddcb7e.out
trunk/fuse/z80/tests/ddcb7f.in
trunk/fuse/z80/tests/ddcb7f.out
trunk/fuse/z80/tests/ddcb80.in
trunk/fuse/z80/tests/ddcb80.out
trunk/fuse/z80/tests/ddcb81.in
trunk/fuse/z80/tests/ddcb81.out
trunk/fuse/z80/tests/ddcb82.in
trunk/fuse/z80/tests/ddcb82.out
trunk/fuse/z80/tests/ddcb83.in
trunk/fuse/z80/tests/ddcb83.out
trunk/fuse/z80/tests/ddcb84.in
trunk/fuse/z80/tests/ddcb84.out
trunk/fuse/z80/tests/ddcb85.in
trunk/fuse/z80/tests/ddcb85.out
trunk/fuse/z80/tests/ddcb86.in
trunk/fuse/z80/tests/ddcb86.out
trunk/fuse/z80/tests/ddcb87.in
trunk/fuse/z80/tests/ddcb87.out
trunk/fuse/z80/tests/ddcb88.in
trunk/fuse/z80/tests/ddcb88.out
trunk/fuse/z80/tests/ddcb89.in
trunk/fuse/z80/tests/ddcb89.out
trunk/fuse/z80/tests/ddcb8a.in
trunk/fuse/z80/tests/ddcb8a.out
trunk/fuse/z80/tests/ddcb8b.in
trunk/fuse/z80/tests/ddcb8b.out
trunk/fuse/z80/tests/ddcb8c.in
trunk/fuse/z80/tests/ddcb8c.out
trunk/fuse/z80/tests/ddcb8d.in
trunk/fuse/z80/tests/ddcb8d.out
trunk/fuse/z80/tests/ddcb8e.in
trunk/fuse/z80/tests/ddcb8e.out
trunk/fuse/z80/tests/ddcb8f.in
trunk/fuse/z80/tests/ddcb8f.out
trunk/fuse/z80/tests/ddcb90.in
trunk/fuse/z80/tests/ddcb90.out
trunk/fuse/z80/tests/ddcb91.in
trunk/fuse/z80/tests/ddcb91.out
trunk/fuse/z80/tests/ddcb92.in
trunk/fuse/z80/tests/ddcb92.out
trunk/fuse/z80/tests/ddcb93.in
trunk/fuse/z80/tests/ddcb93.out
trunk/fuse/z80/tests/ddcb94.in
trunk/fuse/z80/tests/ddcb94.out
trunk/fuse/z80/tests/ddcb95.in
trunk/fuse/z80/tests/ddcb95.out
trunk/fuse/z80/tests/ddcb96.in
trunk/fuse/z80/tests/ddcb96.out
trunk/fuse/z80/tests/ddcb97.in
trunk/fuse/z80/tests/ddcb97.out
trunk/fuse/z80/tests/ddcb98.in
trunk/fuse/z80/tests/ddcb98.out
trunk/fuse/z80/tests/ddcb99.in
trunk/fuse/z80/tests/ddcb99.out
trunk/fuse/z80/tests/ddcb9a.in
trunk/fuse/z80/tests/ddcb9a.out
trunk/fuse/z80/tests/ddcb9b.in
trunk/fuse/z80/tests/ddcb9b.out
trunk/fuse/z80/tests/ddcb9c.in
trunk/fuse/z80/tests/ddcb9c.out
trunk/fuse/z80/tests/ddcb9d.in
trunk/fuse/z80/tests/ddcb9d.out
trunk/fuse/z80/tests/ddcb9e.in
trunk/fuse/z80/tests/ddcb9e.out
trunk/fuse/z80/tests/ddcb9f.in
trunk/fuse/z80/tests/ddcb9f.out
trunk/fuse/z80/tests/ddcba0.in
trunk/fuse/z80/tests/ddcba0.out
trunk/fuse/z80/tests/ddcba1.in
trunk/fuse/z80/tests/ddcba1.out
trunk/fuse/z80/tests/ddcba2.in
trunk/fuse/z80/tests/ddcba2.out
trunk/fuse/z80/tests/ddcba3.in
trunk/fuse/z80/tests/ddcba3.out
trunk/fuse/z80/tests/ddcba4.in
trunk/fuse/z80/tests/ddcba4.out
trunk/fuse/z80/tests/ddcba5.in
trunk/fuse/z80/tests/ddcba5.out
trunk/fuse/z80/tests/ddcba6.in
trunk/fuse/z80/tests/ddcba6.out
trunk/fuse/z80/tests/ddcba7.in
trunk/fuse/z80/tests/ddcba7.out
trunk/fuse/z80/tests/ddcba8.in
trunk/fuse/z80/tests/ddcba8.out
trunk/fuse/z80/tests/ddcba9.in
trunk/fuse/z80/tests/ddcba9.out
trunk/fuse/z80/tests/ddcbaa.in
trunk/fuse/z80/tests/ddcbaa.out
trunk/fuse/z80/tests/ddcbab.in
trunk/fuse/z80/tests/ddcbab.out
trunk/fuse/z80/tests/ddcbac.in
trunk/fuse/z80/tests/ddcbac.out
trunk/fuse/z80/tests/ddcbad.in
trunk/fuse/z80/tests/ddcbad.out
trunk/fuse/z80/tests/ddcbae.in
trunk/fuse/z80/tests/ddcbae.out
trunk/fuse/z80/tests/ddcbaf.in
trunk/fuse/z80/tests/ddcbaf.out
trunk/fuse/z80/tests/ddcbb0.in
trunk/fuse/z80/tests/ddcbb0.out
trunk/fuse/z80/tests/ddcbb1.in
trunk/fuse/z80/tests/ddcbb1.out
trunk/fuse/z80/tests/ddcbb2.in
trunk/fuse/z80/tests/ddcbb2.out
trunk/fuse/z80/tests/ddcbb3.in
trunk/fuse/z80/tests/ddcbb3.out
trunk/fuse/z80/tests/ddcbb4.in
trunk/fuse/z80/tests/ddcbb4.out
trunk/fuse/z80/tests/ddcbb5.in
trunk/fuse/z80/tests/ddcbb5.out
trunk/fuse/z80/tests/ddcbb6.in
trunk/fuse/z80/tests/ddcbb6.out
trunk/fuse/z80/tests/ddcbb7.in
trunk/fuse/z80/tests/ddcbb7.out
trunk/fuse/z80/tests/ddcbb8.in
trunk/fuse/z80/tests/ddcbb8.out
trunk/fuse/z80/tests/ddcbb9.in
trunk/fuse/z80/tests/ddcbb9.out
trunk/fuse/z80/tests/ddcbba.in
trunk/fuse/z80/tests/ddcbba.out
trunk/fuse/z80/tests/ddcbbb.in
trunk/fuse/z80/tests/ddcbbb.out
trunk/fuse/z80/tests/ddcbbc.in
trunk/fuse/z80/tests/ddcbbc.out
trunk/fuse/z80/tests/ddcbbd.in
trunk/fuse/z80/tests/ddcbbd.out
trunk/fuse/z80/tests/ddcbbe.in
trunk/fuse/z80/tests/ddcbbe.out
trunk/fuse/z80/tests/ddcbbf.in
trunk/fuse/z80/tests/ddcbbf.out
trunk/fuse/z80/tests/ddcbc0.in
trunk/fuse/z80/tests/ddcbc0.out
trunk/fuse/z80/tests/ddcbc1.in
trunk/fuse/z80/tests/ddcbc1.out
trunk/fuse/z80/tests/ddcbc2.in
trunk/fuse/z80/tests/ddcbc2.out
trunk/fuse/z80/tests/ddcbc3.in
trunk/fuse/z80/tests/ddcbc3.out
trunk/fuse/z80/tests/ddcbc4.in
trunk/fuse/z80/tests/ddcbc4.out
trunk/fuse/z80/tests/ddcbc5.in
trunk/fuse/z80/tests/ddcbc5.out
trunk/fuse/z80/tests/ddcbc6.in
trunk/fuse/z80/tests/ddcbc6.out
trunk/fuse/z80/tests/ddcbc7.in
trunk/fuse/z80/tests/ddcbc7.out
trunk/fuse/z80/tests/ddcbc8.in
trunk/fuse/z80/tests/ddcbc8.out
trunk/fuse/z80/tests/ddcbc9.in
trunk/fuse/z80/tests/ddcbc9.out
trunk/fuse/z80/tests/ddcbca.in
trunk/fuse/z80/tests/ddcbca.out
trunk/fuse/z80/tests/ddcbcb.in
trunk/fuse/z80/tests/ddcbcb.out
trunk/fuse/z80/tests/ddcbcc.in
trunk/fuse/z80/tests/ddcbcc.out
trunk/fuse/z80/tests/ddcbcd.in
trunk/fuse/z80/tests/ddcbcd.out
trunk/fuse/z80/tests/ddcbce.in
trunk/fuse/z80/tests/ddcbce.out
trunk/fuse/z80/tests/ddcbcf.in
trunk/fuse/z80/tests/ddcbcf.out
trunk/fuse/z80/tests/ddcbd0.in
trunk/fuse/z80/tests/ddcbd0.out
trunk/fuse/z80/tests/ddcbd1.in
trunk/fuse/z80/tests/ddcbd1.out
trunk/fuse/z80/tests/ddcbd2.in
trunk/fuse/z80/tests/ddcbd2.out
trunk/fuse/z80/tests/ddcbd3.in
trunk/fuse/z80/tests/ddcbd3.out
trunk/fuse/z80/tests/ddcbd4.in
trunk/fuse/z80/tests/ddcbd4.out
trunk/fuse/z80/tests/ddcbd5.in
trunk/fuse/z80/tests/ddcbd5.out
trunk/fuse/z80/tests/ddcbd6.in
trunk/fuse/z80/tests/ddcbd6.out
trunk/fuse/z80/tests/ddcbd7.in
trunk/fuse/z80/tests/ddcbd7.out
trunk/fuse/z80/tests/ddcbd8.in
trunk/fuse/z80/tests/ddcbd8.out
trunk/fuse/z80/tests/ddcbd9.in
trunk/fuse/z80/tests/ddcbd9.out
trunk/fuse/z80/tests/ddcbda.in
trunk/fuse/z80/tests/ddcbda.out
trunk/fuse/z80/tests/ddcbdb.in
trunk/fuse/z80/tests/ddcbdb.out
trunk/fuse/z80/tests/ddcbdc.in
trunk/fuse/z80/tests/ddcbdc.out
trunk/fuse/z80/tests/ddcbdd.in
trunk/fuse/z80/tests/ddcbdd.out
trunk/fuse/z80/tests/ddcbde.in
trunk/fuse/z80/tests/ddcbde.out
trunk/fuse/z80/tests/ddcbdf.in
trunk/fuse/z80/tests/ddcbdf.out
trunk/fuse/z80/tests/ddcbe0.in
trunk/fuse/z80/tests/ddcbe0.out
trunk/fuse/z80/tests/ddcbe1.in
trunk/fuse/z80/tests/ddcbe1.out
trunk/fuse/z80/tests/ddcbe2.in
trunk/fuse/z80/tests/ddcbe2.out
trunk/fuse/z80/tests/ddcbe3.in
trunk/fuse/z80/tests/ddcbe3.out
trunk/fuse/z80/tests/ddcbe4.in
trunk/fuse/z80/tests/ddcbe4.out
trunk/fuse/z80/tests/ddcbe5.in
trunk/fuse/z80/tests/ddcbe5.out
trunk/fuse/z80/tests/ddcbe6.in
trunk/fuse/z80/tests/ddcbe6.out
trunk/fuse/z80/tests/ddcbe7.in
trunk/fuse/z80/tests/ddcbe7.out
trunk/fuse/z80/tests/ddcbe8.in
trunk/fuse/z80/tests/ddcbe8.out
trunk/fuse/z80/tests/ddcbe9.in
trunk/fuse/z80/tests/ddcbe9.out
trunk/fuse/z80/tests/ddcbea.in
trunk/fuse/z80/tests/ddcbea.out
trunk/fuse/z80/tests/ddcbeb.in
trunk/fuse/z80/tests/ddcbeb.out
trunk/fuse/z80/tests/ddcbec.in
trunk/fuse/z80/tests/ddcbec.out
trunk/fuse/z80/tests/ddcbed.in
trunk/fuse/z80/tests/ddcbed.out
trunk/fuse/z80/tests/ddcbee.in
trunk/fuse/z80/tests/ddcbee.out
trunk/fuse/z80/tests/ddcbef.in
trunk/fuse/z80/tests/ddcbef.out
trunk/fuse/z80/tests/ddcbf0.in
trunk/fuse/z80/tests/ddcbf0.out
trunk/fuse/z80/tests/ddcbf1.in
trunk/fuse/z80/tests/ddcbf1.out
trunk/fuse/z80/tests/ddcbf2.in
trunk/fuse/z80/tests/ddcbf2.out
trunk/fuse/z80/tests/ddcbf3.in
trunk/fuse/z80/tests/ddcbf3.out
trunk/fuse/z80/tests/ddcbf4.in
trunk/fuse/z80/tests/ddcbf4.out
trunk/fuse/z80/tests/ddcbf5.in
trunk/fuse/z80/tests/ddcbf5.out
trunk/fuse/z80/tests/ddcbf6.in
trunk/fuse/z80/tests/ddcbf6.out
trunk/fuse/z80/tests/ddcbf7.in
trunk/fuse/z80/tests/ddcbf7.out
trunk/fuse/z80/tests/ddcbf8.in
trunk/fuse/z80/tests/ddcbf8.out
trunk/fuse/z80/tests/ddcbf9.in
trunk/fuse/z80/tests/ddcbf9.out
trunk/fuse/z80/tests/ddcbfa.in
trunk/fuse/z80/tests/ddcbfa.out
trunk/fuse/z80/tests/ddcbfb.in
trunk/fuse/z80/tests/ddcbfb.out
trunk/fuse/z80/tests/ddcbfc.in
trunk/fuse/z80/tests/ddcbfc.out
trunk/fuse/z80/tests/ddcbfd.in
trunk/fuse/z80/tests/ddcbfd.out
trunk/fuse/z80/tests/ddcbfe.in
trunk/fuse/z80/tests/ddcbfe.out
trunk/fuse/z80/tests/ddcbff.in
trunk/fuse/z80/tests/ddcbff.out
trunk/fuse/z80/tests/dde1.in
trunk/fuse/z80/tests/dde1.out
trunk/fuse/z80/tests/dde3.in
trunk/fuse/z80/tests/dde3.out
trunk/fuse/z80/tests/dde5.in
trunk/fuse/z80/tests/dde5.out
trunk/fuse/z80/tests/dde9.in
trunk/fuse/z80/tests/dde9.out
trunk/fuse/z80/tests/ddf9.in
trunk/fuse/z80/tests/ddf9.out
trunk/fuse/z80/tests/ddfd00.in
trunk/fuse/z80/tests/ddfd00.out
...
[truncated message content] |
|
From: <fr...@us...> - 2007-07-28 01:35:00
|
Revision: 438
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=438&view=rev
Author: fredm
Date: 2007-07-27 18:35:01 -0700 (Fri, 27 Jul 2007)
Log Message:
-----------
Tag vendor/fuse-emulator/current as vendor/fuse-emulator/fuse-r3080.
Added Paths:
-----------
vendor/fuse-emulator/fuse-r3080/
Copied: vendor/fuse-emulator/fuse-r3080 (from rev 437, vendor/fuse-emulator/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|