fuse-for-macosx-commits Mailing List for Fuse for macOS (Page 15)
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...> - 2008-02-18 08:45:02
|
Revision: 487
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=487&view=rev
Author: fredm
Date: 2008-02-18 00:45:07 -0800 (Mon, 18 Feb 2008)
Log Message:
-----------
Don't use standard Fuse menu.c, move only function we use
(menu_select_roms_with_title) to FuseMenus.m.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/FuseMenus.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 07:33:15 UTC (rev 486)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 08:45:07 UTC (rev 487)
@@ -191,7 +191,6 @@
B6A6F1060B3D60D0000B88E9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F520C8BC038D022E01A804BA /* OpenGL.framework */; };
B6A6F10E0B3D6360000B88E9 /* cocoaerror.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F10D0B3D6360000B88E9 /* cocoaerror.m */; };
B6A6F1200B3EA737000B88E9 /* cocoascreenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F11E0B3EA737000B88E9 /* cocoascreenshot.m */; };
- B6AB34900C3BC91A0005935E /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = B6AB348E0C3BC91A0005935E /* menu.c */; };
B6B076B30B59FE9A00D4F95C /* Emulator.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B076B10B59FE9A00D4F95C /* Emulator.m */; };
B6B99F8A0B5F798700EE408F /* cocoadisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B99F890B5F798700EE408F /* cocoadisplay.m */; };
B6CA27A70C2CDBC500F06FB3 /* dirty.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CA27A50C2CDBC500F06FB3 /* dirty.c */; };
@@ -428,7 +427,6 @@
B6A7F0E904C9A11D001025EB /* NumberFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberFormatter.h; sourceTree = "<group>"; };
B6A7F0EA04C9A11D001025EB /* NumberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NumberFormatter.m; sourceTree = "<group>"; };
B6AA8A3C03D2FC1C00FED55D /* trdos.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = trdos.rom; path = ../roms/trdos.rom; sourceTree = SOURCE_ROOT; };
- B6AB348E0C3BC91A0005935E /* menu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = menu.c; sourceTree = "<group>"; };
B6AB348F0C3BC91A0005935E /* menu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = menu.h; sourceTree = "<group>"; };
B6AB429D0677466E007C50EF /* ula.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ula.c; path = ../ula.c; sourceTree = SOURCE_ROOT; };
B6AB429E0677466E007C50EF /* ula.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ula.h; path = ../ula.h; sourceTree = SOURCE_ROOT; };
@@ -1168,7 +1166,6 @@
B6403FD70A7E4B1A00E00B11 /* loader.h */,
B60B11F7059BC7E70048B64B /* machine.c */,
F55985EA038922ED01A804BA /* machine.h */,
- B6AB348E0C3BC91A0005935E /* menu.c */,
B6AB348F0C3BC91A0005935E /* menu.h */,
B68CB2CC03DD923C00A804BA /* memory.c */,
B6CA2A210C33F8490003CF90 /* module.c */,
@@ -1471,7 +1468,6 @@
B6CA27A70C2CDBC500F06FB3 /* dirty.c in Sources */,
B6CA2A230C33F84A0003CF90 /* module.c in Sources */,
B6CA2A2E0C33F8C10003CF90 /* plusd.c in Sources */,
- B6AB34900C3BC91A0005935E /* menu.c in Sources */,
B6CADD580C47AD90004BA954 /* Texture.m in Sources */,
B63225EC0C66BA1300BB081B /* osname.c in Sources */,
B63225EE0C66BA3700BB081B /* paths.c in Sources */,
Modified: trunk/fuse/fusepb/FuseMenus.m
===================================================================
--- trunk/fuse/fusepb/FuseMenus.m 2008-02-18 07:33:15 UTC (rev 486)
+++ trunk/fuse/fusepb/FuseMenus.m 2008-02-18 08:45:07 UTC (rev 487)
@@ -31,7 +31,93 @@
#import "FuseController.h"
#import "FuseMenus.h"
+#include "divide.h"
+#include "if1.h"
+#include "menu.h"
+#include "settings.h"
+#include "simpleide.h"
+#include "tape.h"
+#include "zxatasp.h"
+#include "zxcf.h"
+
void SetEmulationHz( float hz )
{
[[Emulator instance] setEmulationHz:hz];
}
+
+int
+menu_check_media_changed( void )
+{
+ int confirm, i;
+
+ confirm = tape_close(); if( confirm ) return 1;
+
+#ifdef HAVE_765_H
+
+ confirm = specplus3_disk_eject( SPECPLUS3_DRIVE_A, 0 );
+ if( confirm ) return 1;
+
+ confirm = specplus3_disk_eject( SPECPLUS3_DRIVE_B, 0 );
+ if( confirm ) return 1;
+
+#endif /* #ifdef HAVE_765_H */
+
+ confirm = beta_disk_eject( BETA_DRIVE_A, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_B, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_C, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_D, 0 );
+ if( confirm ) return 1;
+
+ confirm = plusd_disk_eject( PLUSD_DRIVE_1, 0 );
+ if( confirm ) return 1;
+
+ confirm = plusd_disk_eject( PLUSD_DRIVE_2, 0 );
+ if( confirm ) return 1;
+
+ for( i = 0; i < 8; i++ ) {
+ confirm = if1_mdr_eject( i, 0 );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.simpleide_master_file ) {
+ confirm = simpleide_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.simpleide_slave_file ) {
+ confirm = simpleide_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxatasp_master_file ) {
+ confirm = zxatasp_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxatasp_slave_file ) {
+ confirm = zxatasp_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxcf_pri_file ) {
+ confirm = zxcf_eject(); if( confirm ) return 1;
+ }
+
+ if( settings_current.divide_master_file ) {
+ confirm = divide_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.divide_slave_file ) {
+ confirm = divide_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ return 0;
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 07:33:09
|
Revision: 486
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=486&view=rev
Author: fredm
Date: 2008-02-17 23:33:15 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Make tag for 20080217 release.
Added Paths:
-----------
tags/FuseForMacOSX-20080217/
Copied: tags/FuseForMacOSX-20080217 (from rev 485, trunk)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 07:25:38
|
Revision: 485
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=485&view=rev
Author: fredm
Date: 2008-02-17 23:25:41 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Ignore any shortcuts that raise dialogs in fullscreen mode.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.m
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-02-18 07:20:32 UTC (rev 484)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-18 07:25:41 UTC (rev 485)
@@ -137,6 +137,7 @@
#define QZ_q 0x0C
#define QZ_o 0x1F
#define QZ_p 0x23
+#define QZ_k 0x28
#define QZ_SLASH 0x2C
#define QZ_PERIOD 0x2F
@@ -432,19 +433,21 @@
{
char *filename = NULL;
- [[DisplayOpenGLView instance] pause];
+ if( !settings_current.full_screen ) {
+ [[DisplayOpenGLView instance] pause];
- filename = cocoaui_openpanel_get_filename( @"Open Spectrum File", allFileTypes );
+ filename = cocoaui_openpanel_get_filename( @"Open Spectrum File", allFileTypes );
- if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
+ if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
- [self addRecentSnapshot:filename];
+ [self addRecentSnapshot:filename];
- [self openFile:filename];
+ [self openFile:filename];
- free(filename);
+ free(filename);
- [[DisplayOpenGLView instance] unpause];
+ [[DisplayOpenGLView instance] unpause];
+ }
[self releaseCmdKeys:@"o":QZ_o];
}
@@ -597,23 +600,25 @@
{
char *filename = NULL;
- [[DisplayOpenGLView instance] pause];
+ if( !settings_current.full_screen ) {
+ [[DisplayOpenGLView instance] pause];
- filename = cocoaui_savepanel_get_filename( @"Save Snapshot As", [NSArray arrayWithObjects:@"szx", @"z80", @"sna", nil] );
+ filename = cocoaui_savepanel_get_filename( @"Save Snapshot As", [NSArray arrayWithObjects:@"szx", @"z80", @"sna", nil] );
- if( !filename ) goto save_as_exit;
+ if( !filename ) goto save_as_exit;
- [[DisplayOpenGLView instance] snapshotWrite:filename];
+ [[DisplayOpenGLView instance] snapshotWrite:filename];
- if( settings_current.thumbnails )
- add_screen_thumbnail_to( filename );
+ if( settings_current.thumbnails )
+ add_screen_thumbnail_to( filename );
- [self addRecentSnapshot:filename];
+ [self addRecentSnapshot:filename];
- free( filename );
+ free( filename );
save_as_exit:
- [[DisplayOpenGLView instance] unpause];
+ [[DisplayOpenGLView instance] unpause];
+ }
[self releaseCmdKeys:@"s":QZ_s];
}
@@ -772,7 +777,9 @@
- (IBAction)quit:(id)sender
{
- [[NSApp keyWindow] performClose:self];
+ if( !settings_current.full_screen ) {
+ [[NSApp keyWindow] performClose:self];
+ }
[self releaseCmdKeys:@"q":QZ_q];
}
@@ -784,7 +791,9 @@
- (IBAction)help:(id)sender
{
- [NSApp showHelp:self];
+ if( !settings_current.full_screen ) {
+ [NSApp showHelp:self];
+ }
[self releaseCmdKeys:@"?":QZ_SLASH];
}
@@ -811,10 +820,13 @@
- (IBAction)showKeyboardPane:(id)sender
{
- if( !keyboardController ) {
- keyboardController = [[KeyboardController alloc] init];
+ if( !settings_current.full_screen ) {
+ if( !keyboardController ) {
+ keyboardController = [[KeyboardController alloc] init];
+ }
+ [keyboardController showCloseWindow:self];
}
- [keyboardController showCloseWindow:self];
+ [self releaseCmdKeys:@"k":QZ_k];
}
- (IBAction)showLoadBinaryPane:(id)sender
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 07:20:28
|
Revision: 484
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=484&view=rev
Author: fredm
Date: 2008-02-17 23:20:32 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Remove pentagon.h from distribution binaries and remove references to obsolete
SDL and bzip2 frameworks.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 04:00:34 UTC (rev 483)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 07:20:32 UTC (rev 484)
@@ -215,7 +215,6 @@
B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F3C0B2830A300EB65B3 /* cocoajoystick.c */; };
B6CE7F520B283A0700EB65B3 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F510B283A0700EB65B3 /* main.mm */; };
B6CE7FCE0B28FBD600EB65B3 /* DisplayOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */; };
- B6DDE5290D64D96E00D6F905 /* pentagon.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DDE5280D64D96E00D6F905 /* pentagon.h */; };
B6DDE53C0D67963600D6F905 /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DDE53B0D67963600D6F905 /* ui.c */; };
B6E0252C0B38AFE500E23A0F /* keysyms.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E0252B0B38AFE500E23A0F /* keysyms.m */; };
B6F047F60952A6D6006D8005 /* tape_se.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F20952A6BA006D8005 /* tape_se.szx */; };
@@ -1225,7 +1224,6 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- B6DDE5290D64D96E00D6F905 /* pentagon.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1517,7 +1515,6 @@
../../libspectrum/build/Deployment,
../../lib765/build/Deployment,
../../libgcrypt/build/Deployment,
- ../../bzip2/build/Deployment,
../../,
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
);
@@ -1534,8 +1531,6 @@
../../lib765/build/Deployment/765.framework/Headers,
../../libspectrum/build/Deployment/spectrum.framework/Headers,
../../libgcrypt/build/Deployment/gcrypt.framework/Headers,
- ../../SDL.framework/Headers,
- ../../bzip2/build/Deployment/libbz2.framework/Headers,
..,
);
INFOPLIST_FILE = "Info-Fuse.plist";
@@ -1580,7 +1575,6 @@
../../lib765/build/Deployment/765.framework/Headers,
../../libspectrum/build/Deployment/spectrum.framework/Headers,
../../libgcrypt/build/Deployment/gcrypt.framework/Headers,
- ../../SDL.framework/Headers,
..,
);
INFOPLIST_FILE = "Info-Fuse.plist";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 04:00:29
|
Revision: 483
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=483&view=rev
Author: fredm
Date: 2008-02-17 20:00:34 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Merge up to vendor libgcrypt version 1.2.4.
Modified Paths:
--------------
trunk/libgcrypt/Info-gcrypt.plist
trunk/libgcrypt/libgcrypt/AUTHORS
trunk/libgcrypt/libgcrypt/ChangeLog
trunk/libgcrypt/libgcrypt/INSTALL
trunk/libgcrypt/libgcrypt/Makefile.am
trunk/libgcrypt/libgcrypt/Makefile.in
trunk/libgcrypt/libgcrypt/NEWS
trunk/libgcrypt/libgcrypt/README
trunk/libgcrypt/libgcrypt/THANKS
trunk/libgcrypt/libgcrypt/TODO
trunk/libgcrypt/libgcrypt/VERSION
trunk/libgcrypt/libgcrypt/acinclude.m4
trunk/libgcrypt/libgcrypt/aclocal.m4
trunk/libgcrypt/libgcrypt/autogen.sh
trunk/libgcrypt/libgcrypt/cipher/ChangeLog
trunk/libgcrypt/libgcrypt/cipher/Makefile.in
trunk/libgcrypt/libgcrypt/cipher/ac.c
trunk/libgcrypt/libgcrypt/cipher/blowfish.c
trunk/libgcrypt/libgcrypt/cipher/cast5.c
trunk/libgcrypt/libgcrypt/cipher/cipher.c
trunk/libgcrypt/libgcrypt/cipher/crc.c
trunk/libgcrypt/libgcrypt/cipher/des.c
trunk/libgcrypt/libgcrypt/cipher/dsa.c
trunk/libgcrypt/libgcrypt/cipher/elgamal.c
trunk/libgcrypt/libgcrypt/cipher/md.c
trunk/libgcrypt/libgcrypt/cipher/primegen.c
trunk/libgcrypt/libgcrypt/cipher/pubkey.c
trunk/libgcrypt/libgcrypt/cipher/random.c
trunk/libgcrypt/libgcrypt/cipher/random.h
trunk/libgcrypt/libgcrypt/cipher/rfc2268.c
trunk/libgcrypt/libgcrypt/cipher/rijndael.c
trunk/libgcrypt/libgcrypt/cipher/rmd160.c
trunk/libgcrypt/libgcrypt/cipher/rndlinux.c
trunk/libgcrypt/libgcrypt/cipher/rndw32.c
trunk/libgcrypt/libgcrypt/cipher/rsa.c
trunk/libgcrypt/libgcrypt/cipher/serpent.c
trunk/libgcrypt/libgcrypt/cipher/sha256.c
trunk/libgcrypt/libgcrypt/cipher/sha512.c
trunk/libgcrypt/libgcrypt/cipher/tiger.c
trunk/libgcrypt/libgcrypt/cipher/twofish.c
trunk/libgcrypt/libgcrypt/compile
trunk/libgcrypt/libgcrypt/config.guess
trunk/libgcrypt/libgcrypt/config.h.in
trunk/libgcrypt/libgcrypt/config.sub
trunk/libgcrypt/libgcrypt/configure
trunk/libgcrypt/libgcrypt/configure.ac
trunk/libgcrypt/libgcrypt/depcomp
trunk/libgcrypt/libgcrypt/doc/ChangeLog
trunk/libgcrypt/libgcrypt/doc/Makefile.in
trunk/libgcrypt/libgcrypt/doc/gcrypt.info
trunk/libgcrypt/libgcrypt/doc/gcrypt.texi
trunk/libgcrypt/libgcrypt/doc/mdate-sh
trunk/libgcrypt/libgcrypt/doc/stamp-vti
trunk/libgcrypt/libgcrypt/doc/texinfo.tex
trunk/libgcrypt/libgcrypt/doc/version.texi
trunk/libgcrypt/libgcrypt/install-sh
trunk/libgcrypt/libgcrypt/ltmain.sh
trunk/libgcrypt/libgcrypt/missing
trunk/libgcrypt/libgcrypt/mkinstalldirs
trunk/libgcrypt/libgcrypt/mpi/ChangeLog
trunk/libgcrypt/libgcrypt/mpi/Makefile.am
trunk/libgcrypt/libgcrypt/mpi/Makefile.in
trunk/libgcrypt/libgcrypt/mpi/config.links
trunk/libgcrypt/libgcrypt/mpi/hppa1.1/udiv-qrnnd.S
trunk/libgcrypt/libgcrypt/mpi/mpi-bit.c
trunk/libgcrypt/libgcrypt/mpi/mpi-pow.c
trunk/libgcrypt/libgcrypt/mpi/mpicoder.c
trunk/libgcrypt/libgcrypt/mpi/mpiutil.c
trunk/libgcrypt/libgcrypt/src/ChangeLog
trunk/libgcrypt/libgcrypt/src/Makefile.am
trunk/libgcrypt/libgcrypt/src/Makefile.in
trunk/libgcrypt/libgcrypt/src/ath.c
trunk/libgcrypt/libgcrypt/src/ath.h
trunk/libgcrypt/libgcrypt/src/g10lib.h
trunk/libgcrypt/libgcrypt/src/gcrypt-module.h
trunk/libgcrypt/libgcrypt/src/gcrypt.h
trunk/libgcrypt/libgcrypt/src/global.c
trunk/libgcrypt/libgcrypt/src/libgcrypt.m4
trunk/libgcrypt/libgcrypt/src/missing-string.c
trunk/libgcrypt/libgcrypt/src/secmem.c
trunk/libgcrypt/libgcrypt/src/secmem.h
trunk/libgcrypt/libgcrypt/src/sexp.c
trunk/libgcrypt/libgcrypt/src/types.h
trunk/libgcrypt/libgcrypt/tests/ChangeLog
trunk/libgcrypt/libgcrypt/tests/Makefile.am
trunk/libgcrypt/libgcrypt/tests/Makefile.in
trunk/libgcrypt/libgcrypt/tests/ac.c
trunk/libgcrypt/libgcrypt/tests/basic.c
trunk/libgcrypt/libgcrypt/tests/benchmark.c
trunk/libgcrypt/libgcrypt/tests/pubkey.c
trunk/libgcrypt/libgcrypt/tests/tsexp.c
trunk/libgcrypt/libgcrypt/w32-dll/Makefile.in
trunk/libgcrypt/libgcrypt.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/libgcrypt/libgcrypt/README.SVN
trunk/libgcrypt/libgcrypt/m4/
trunk/libgcrypt/libgcrypt/m4/ChangeLog
trunk/libgcrypt/libgcrypt/m4/Makefile.am
trunk/libgcrypt/libgcrypt/m4/Makefile.in
trunk/libgcrypt/libgcrypt/m4/libtool.m4
trunk/libgcrypt/libgcrypt/m4/onceonly.m4
trunk/libgcrypt/libgcrypt/m4/socklen.m4
trunk/libgcrypt/libgcrypt/m4/sys_socket_h.m4
trunk/libgcrypt/libgcrypt/src/gcrypt.h.in
trunk/libgcrypt/libgcrypt/tests/random.c
trunk/libgcrypt/libgcrypt/tests/t-mpi-bit.c
Removed Paths:
-------------
trunk/libgcrypt/libgcrypt/README.CVS
trunk/libgcrypt/libgcrypt/m4/ChangeLog
trunk/libgcrypt/libgcrypt/m4/Makefile.am
trunk/libgcrypt/libgcrypt/m4/Makefile.in
trunk/libgcrypt/libgcrypt/m4/libtool.m4
trunk/libgcrypt/libgcrypt/m4/onceonly.m4
trunk/libgcrypt/libgcrypt/m4/socklen.m4
trunk/libgcrypt/libgcrypt/m4/sys_socket_h.m4
Modified: trunk/libgcrypt/Info-gcrypt.plist
===================================================================
--- trunk/libgcrypt/Info-gcrypt.plist 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/Info-gcrypt.plist 2008-02-18 04:00:34 UTC (rev 483)
@@ -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>
@@ -23,6 +23,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.2.0</string>
+ <string>1.2.4</string>
</dict>
</plist>
Modified: trunk/libgcrypt/libgcrypt/AUTHORS
===================================================================
--- trunk/libgcrypt/libgcrypt/AUTHORS 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/AUTHORS 2008-02-18 04:00:34 UTC (rev 483)
@@ -63,7 +63,6 @@
Orginal code for cipher/rfc2268.c.
-
More credits
============
The ATH implementation (src/ath*) has been taken from GPGME and
Modified: trunk/libgcrypt/libgcrypt/ChangeLog
===================================================================
--- trunk/libgcrypt/libgcrypt/ChangeLog 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/ChangeLog 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,3 +1,97 @@
+2007-02-01 Werner Koch <wk...@g1...>
+
+ Released 1.2.4.
+
+ * configure.ac: Set LT to C13/A2/R3.
+
+2006-11-30 Werner Koch <wk...@g1...>
+
+ * autogen.sh: New option --force.
+ * configure.ac: Add SVN revision magic
+
+ * configure.ac (FALLBACK_SOCKLEN_T): Define gcry_socklen_t, to
+ avoid conflicts with socklen_t definitions by autoconf.
+ * configure.ac: Do not call GNUPG_FIX_HDR_VERSION.
+ * configure.ac: Invoke AC_CHECK_SOCKLEN_TYPE.
+ (AC_CONFIG_FILES): Add src/gcrypt.h and m4/Makefile
+ (AC_CONFIG_SRCDIR): Change to src/libgcrypt.vers.
+ * Makefile.am (SUBDIRS): Add m4/
+
+2006-08-28 Werner Koch <wk...@g1...>
+
+ Released 1.2.3.
+
+ * configure.ac: Set LT to C13/A2/R2.
+
+2006-07-26 Werner Koch <wk...@g1...>
+
+ * configure.ac: New option --disable-optimization.
+
+2005-12-08 Werner Koch <wk...@g1...>
+
+ * configure.ac: Changed the random device names for netbsd. From
+ Christian Biere.
+
+2005-10-05 Werner Koch <wk...@g1...>
+
+ Released 1.2.2.
+
+ * configure.ac: Set LT to C13/A2/R1.
+
+2005-09-14 Werner Koch <wk...@g1...>
+
+ * configure.ac: New option --enable-noexecstack.
+
+2005-06-10 Werner Koch <wk...@g1...>
+
+ * configure.ac: Moved basic tests to the top.
+
+2005-02-03 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2005-01-05 Werner Koch <wk...@g1...>
+
+ Released 1.2.1.
+
+ * configure.ac: Set LT to C13/A2/R0.
+
+2005-01-04 Werner Koch <wk...@g1...>
+
+ * Makefile.am (ACLOCAL_AMFLAGS): New for -I m4.
+ (AUTOMAKE_OPTIONS): New to create a bzip archive.
+
+ Updated to automake 1.9.
+
+ * acinclude.m4: Updated for automake 1.9.
+
+2004-12-18 Werner Koch <wk...@g1...>
+
+ * autogen.sh: Added option --build-w32 to run W32 cross compiling
+ configure.
+
+2004-08-09 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+ * libgcrypt.txt: Slightly updated.
+
+2004-07-04 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2004-04-21 Werner Koch <wk...@gn...>
+
+ * configure.ac: Don't print a warning if GNU make was not found.
+
+2004-05-07 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2004-04-02 Thomas Schwinge <sch...@ni...>
+
+ * autogen.sh: Added ACLOCAL_FLAGS.
+
2004-04-15 Werner Koch <wk...@gn...>
Released 1.2.0.
Modified: trunk/libgcrypt/libgcrypt/INSTALL
===================================================================
--- trunk/libgcrypt/libgcrypt/INSTALL 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/INSTALL 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,13 +1,16 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions
+*************************
- This file is free documentation; the Free Software Foundation gives
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
- These are generic installation instructions.
+These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -67,9 +70,9 @@
Compilers and Options
=====================
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
@@ -82,7 +85,7 @@
Compiling For Multiple Architectures
====================================
- You can compile the package for more than one kind of computer at the
+You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
@@ -99,19 +102,19 @@
Installation Names
==================
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
@@ -122,7 +125,7 @@
Optional Features
=================
- Some packages pay attention to `--enable-FEATURE' options to
+Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -137,11 +140,11 @@
Specifying the System Type
==========================
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -156,7 +159,7 @@
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
+use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
@@ -167,9 +170,9 @@
Sharing Defaults
================
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -178,7 +181,7 @@
Defining Variables
==================
- Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -186,14 +189,18 @@
./configure CC=/usr/local2/bin/gcc
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
`configure' Invocation
======================
- `configure' recognizes the following options to control how it
-operates.
+`configure' recognizes the following options to control how it operates.
`--help'
`-h'
Modified: trunk/libgcrypt/libgcrypt/Makefile.am
===================================================================
--- trunk/libgcrypt/libgcrypt/Makefile.am 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/Makefile.am 2008-02-18 04:00:34 UTC (rev 483)
@@ -17,10 +17,12 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ACLOCAL_AMFLAGS = -I m4
+AUTOMAKE_OPTIONS = dist-bzip2
-DIST_SUBDIRS = mpi cipher src doc tests w32-dll
-SUBDIRS = mpi cipher src doc tests
-EXTRA_DIST = BUGS autogen.sh README.apichanges README.CVS
+DIST_SUBDIRS = m4 mpi cipher src doc tests w32-dll
+SUBDIRS = m4 mpi cipher src doc tests
+EXTRA_DIST = BUGS autogen.sh README.apichanges README.SVN
DISTCLEANFILES =
Modified: trunk/libgcrypt/libgcrypt/Makefile.in
===================================================================
--- trunk/libgcrypt/libgcrypt/Makefile.in 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/Makefile.in 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -31,7 +31,6 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -39,7 +38,6 @@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -53,7 +51,48 @@
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \
+ INSTALL NEWS THANKS TODO compile config.guess config.sub \
+ depcomp install-sh ltmain.sh missing mkinstalldirs
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/socklen.m4 \
+ $(top_srcdir)/m4/sys_socket_h.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
@@ -86,6 +125,7 @@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
+FALLBACK_SOCKLEN_T = @FALLBACK_SOCKLEN_T@
FFLAGS = @FFLAGS@
GCRYPT_CIPHERS = @GCRYPT_CIPHERS@
GCRYPT_DIGESTS = @GCRYPT_DIGESTS@
@@ -94,6 +134,7 @@
GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@
GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@
GPG_ERROR_LIBS = @GPG_ERROR_LIBS@
+GREP = @GREP@
HAVE_LD_VERSION_SCRIPT_FALSE = @HAVE_LD_VERSION_SCRIPT_FALSE@
HAVE_LD_VERSION_SCRIPT_TRUE = @HAVE_LD_VERSION_SCRIPT_TRUE@
INSTALL_DATA = @INSTALL_DATA@
@@ -123,6 +164,7 @@
MPI_MOD_LIST_LO = @MPI_MOD_LIST_LO@
MPI_MOD_LIST_O = @MPI_MOD_LIST_O@
MPI_SFLAGS = @MPI_SFLAGS@
+NOEXECSTACK_FLAGS = @NOEXECSTACK_FLAGS@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -135,13 +177,11 @@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SYS_SOCKET_H = @SYS_SOCKET_H@
VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -149,6 +189,8 @@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -156,22 +198,30 @@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
+htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
+localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
@@ -180,47 +230,48 @@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
-
-DIST_SUBDIRS = mpi cipher src doc tests w32-dll
-SUBDIRS = mpi cipher src doc tests
-EXTRA_DIST = BUGS autogen.sh README.apichanges README.CVS
+ACLOCAL_AMFLAGS = -I m4
+AUTOMAKE_OPTIONS = dist-bzip2
+DIST_SUBDIRS = m4 mpi cipher src doc tests w32-dll
+SUBDIRS = m4 mpi cipher src doc tests
+EXTRA_DIST = BUGS autogen.sh README.apichanges README.SVN
DISTCLEANFILES =
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
- COPYING COPYING.LIB ChangeLog INSTALL Makefile.am NEWS THANKS \
- TODO acinclude.m4 aclocal.m4 compile config.guess config.h.in \
- config.sub configure configure.ac depcomp install-sh ltmain.sh \
- missing mkinstalldirs
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac acinclude.m4
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@@ -232,10 +283,10 @@
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
- touch $(srcdir)/config.h.in
+ rm -f stamp-h1
+ touch $@
distclean-hdr:
-rm -f config.h stamp-h1
@@ -257,7 +308,13 @@
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -269,7 +326,7 @@
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -277,7 +334,13 @@
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -298,7 +361,7 @@
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -309,14 +372,6 @@
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -325,19 +380,22 @@
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -347,10 +405,11 @@
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -373,24 +432,11 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
- $(mkinstalldirs) $(distdir)/src
+ $(mkdir_p) $(distdir)/m4 $(distdir)/src
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@@ -402,7 +448,7 @@
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -419,13 +465,15 @@
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -439,19 +487,46 @@
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
@@ -471,19 +546,20 @@
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
- (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -507,7 +583,6 @@
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
-
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@@ -527,7 +602,7 @@
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -540,13 +615,15 @@
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
- distclean-tags
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -583,23 +660,20 @@
uninstall-info: uninstall-info-recursive
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
- clean-generic clean-libtool clean-recursive ctags \
- ctags-recursive dist dist-all dist-gzip distcheck distclean \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-am clean clean-generic clean-libtool clean-recursive \
+ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-generic distclean-hdr distclean-libtool \
distclean-recursive distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am dvi-recursive info info-am \
- info-recursive install install-am install-data install-data-am \
- install-data-recursive install-exec install-exec-am \
- install-exec-recursive install-info install-info-am \
- install-info-recursive install-man install-recursive \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
- installdirs-am installdirs-recursive maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive mostlyclean \
- mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
- pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
- tags-recursive uninstall uninstall-am uninstall-info-am \
- uninstall-info-recursive uninstall-recursive
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am
# Add all the files listed in "distfiles" files to the distribution,
Modified: trunk/libgcrypt/libgcrypt/NEWS
===================================================================
--- trunk/libgcrypt/libgcrypt/NEWS 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/NEWS 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,3 +1,61 @@
+Noteworthy changes in version 1.2.4 (2007-02-01)
+------------------------------------------------
+
+ * Fixed a bug in the memory allocator which could have been the
+ reason for some of non-duplicable bugs.
+
+ * Other minor bug fixes.
+
+
+Noteworthy changes in version 1.2.3 (2006-08-28)
+------------------------------------------------
+
+ * Rewrote gcry_mpi_rshift to allow arbitrary shift counts.
+
+ * Minor bug fixes.
+
+
+Noteworthy changes in version 1.2.2 (2005-10-05)
+------------------------------------------------
+
+ * Made the RNG immune against fork without exec.
+
+ * Minor changes to some function declarations. Buffer arguments are
+ now typed as void pointer. This should not affect any compilation.
+
+ * A bug in the definition of gcry_cipher_register has been fixed.
+
+ * Interface changes relative to the 1.2.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_cipher_encrypt CHANGED: Arguments IN and OUT are now void*.
+ gcry_cipher_decrypt CHANGED: Arguments IN and OUT are now void*.
+ gcry_create_nonce CHANGED: Argument BUFFER is now void*.
+ gcry_md_ctl CHANGED: Argument BUFFER is now void*.
+ gcry_sexp_sprint CHANGED: Argument BUFFER is now void*.
+ gcry_mpi_scan CHANGED: Argument BUFFER is now void*.
+ gcry_cipher_register CHANGED: Argument ALGORITHM_ID is now int*.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.2.1 (2005-01-05)
+------------------------------------------------
+
+ * Portability fixes, memory allocation fixes and other minor things.
+
+ * Support to build as a W32 static library.
+
+ * Changed the way the RNG gets initialized. This allows to keep it
+ uninitialized as long as no random numbers are used. To override
+ this, the new macro gcry_fast_random_poll may be used. It is in
+ general a good idea to spread this macro into the application code
+ to make sure that these polls happen often enough.
+
+ * Interface changes relative to the 1.2.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_fast_random_poll NEW
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Noteworthy changes in version 1.2.0 (2004-04-15)
------------------------------------------------
Modified: trunk/libgcrypt/libgcrypt/README
===================================================================
--- trunk/libgcrypt/libgcrypt/README 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/README 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,8 +1,9 @@
libgcrypt - The GNU crypto library
------------------------------------
- Version 1.2.0
+ Version 1.2.4
- Copyright 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2000, 2002, 2003, 2004, 2005, 2006,
+ 2007 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
Deleted: trunk/libgcrypt/libgcrypt/README.CVS
===================================================================
--- trunk/libgcrypt/libgcrypt/README.CVS 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/README.CVS 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,51 +0,0 @@
-If you are building from CVS, run the script
-
-./autogen.sh
-
-first, to make sure that you have all the necessary maintainer tools
-are installed and to build the actual configuration files. Then run
-
-./configure --enable-maintainer-mode
-
-followed by the usual make.
-
-If autogen.sh complains about insufficient versions of the required
-tools, or the tools are not installed, you may use environment
-variables to override the default tool names:
-
- AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake
- package. For example
- AUTOMAKE_SUFFIX="-1.7" ./autogen.sh
- uses "automake-1.7" and "aclocal-1.7.
- AUTOMAKE_PREFIX is used as a prefix for all tools from the automake
- page and may be combined with AUTOMAKE_SUFFIX. e.g.:
- AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh
- uses "automake" and "aclocal" in the /usr/foo/bin
- directory.
- AUTOCONF_SUFFIX is used as a suffix for all tools from the automake
- package
- AUTOCONF_PREFIX is used as a prefix for all tools from the automake
- package
- GETTEXT_SUFFIX is used as a suffix for all tools from the gettext
- package
- GETTEXT_PREFIX is used as a prefix for all tools from the gettext
- package
-
-It is also possible to use the variable name AUTOMAKE, AUTOCONF,
-ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name
-of the programs to run. It is however better to use the suffix and
-prefix forms as described above because that does not require
-knowledge about the actual tools used by autgen.sh.
-
-
-Please don't use autopoint, libtoolize or autoreconf unless you are
-the current maintainer and want to update the standard configuration
-files. All those files should be in the CVS and only updated manually
-if the maintainer decides that newer versions are required. The
-maintainer should also make sure that the required version of automake
-et al. are properly indicated at the top of configure.ac and take care
-to copy the files and not merely use symlinks.
-
-
-
-
Copied: trunk/libgcrypt/libgcrypt/README.SVN (from rev 482, vendor/libgcrypt/current/README.SVN)
===================================================================
--- trunk/libgcrypt/libgcrypt/README.SVN (rev 0)
+++ trunk/libgcrypt/libgcrypt/README.SVN 2008-02-18 04:00:34 UTC (rev 483)
@@ -0,0 +1,51 @@
+If you are building from CVS, run the script
+
+./autogen.sh
+
+first, to make sure that you have all the necessary maintainer tools
+are installed and to build the actual configuration files. Then run
+
+./configure --enable-maintainer-mode
+
+followed by the usual make.
+
+If autogen.sh complains about insufficient versions of the required
+tools, or the tools are not installed, you may use environment
+variables to override the default tool names:
+
+ AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake
+ package. For example
+ AUTOMAKE_SUFFIX="-1.7" ./autogen.sh
+ uses "automake-1.7" and "aclocal-1.7.
+ AUTOMAKE_PREFIX is used as a prefix for all tools from the automake
+ page and may be combined with AUTOMAKE_SUFFIX. e.g.:
+ AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh
+ uses "automake" and "aclocal" in the /usr/foo/bin
+ directory.
+ AUTOCONF_SUFFIX is used as a suffix for all tools from the automake
+ package
+ AUTOCONF_PREFIX is used as a prefix for all tools from the automake
+ package
+ GETTEXT_SUFFIX is used as a suffix for all tools from the gettext
+ package
+ GETTEXT_PREFIX is used as a prefix for all tools from the gettext
+ package
+
+It is also possible to use the variable name AUTOMAKE, AUTOCONF,
+ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name
+of the programs to run. It is however better to use the suffix and
+prefix forms as described above because that does not require
+knowledge about the actual tools used by autgen.sh.
+
+
+Please don't use autopoint, libtoolize or autoreconf unless you are
+the current maintainer and want to update the standard configuration
+files. All those files should be in the CVS and only updated manually
+if the maintainer decides that newer versions are required. The
+maintainer should also make sure that the required version of automake
+et al. are properly indicated at the top of configure.ac and take care
+to copy the files and not merely use symlinks.
+
+
+
+
Modified: trunk/libgcrypt/libgcrypt/THANKS
===================================================================
--- trunk/libgcrypt/libgcrypt/THANKS 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/THANKS 2008-02-18 04:00:34 UTC (rev 483)
@@ -14,6 +14,7 @@
Caskey L. Dickson ca...@te...
Cees van de Griend cee...@gr...
Charles Levert ch...@co...
+Christian Biere chr...@gm...
Christian Grothoff gro...@cs...
Christian von Roques ro...@po...
Christopher Oliver ol...@fr...
@@ -30,7 +31,7 @@
Felix von Leitner le...@am...
Frank Heckenbach he...@mi...
Frank Stajano fra...@cl...
-Ga\xEBl Qu\xE9ri gq...@ma...
+Gaël Quéri gq...@ma...
Gerlinde Klaes gk...@u6...
Greg Louis gl...@dy...
Greg Troxel gd...@ir...
@@ -51,8 +52,8 @@
Joachim Backes ba...@rh...
Jordi Mallach jo...@si...
John A. Martin ja...@ja...
-Johnny Teve\xDFen j.t...@gm...
-J\xF6rg Schilling sch...@fo...
+Johnny Teveßen j.t...@gm...
+Jörg Schilling sch...@fo...
Jun Kuriyama kur...@sk...
Karl Fogel kf...@gu...
Karsten Thygesen ka...@ko...
@@ -63,6 +64,7 @@
Mark Adler ma...@al...
Mark Elbrecht sno...@bi...
Markus Friedl Mar...@in...
+Matthias Urlichs sm...@sm...
Martin Kahlert mar...@pr...
Martin Hamilton
Martin Schulte sc...@th...
@@ -71,20 +73,24 @@
Michael Fischer v. Mollard mf...@gm...
Michael Roth mr...@ne...
Michael Sobolev ms...@de...
+Michele Baldessari mi...@pu...
+Modestas Vainius ger...@ma...
Neil Spring ns...@cs...
Newton Hammet ne...@ha...
Nicolas Graner Nic...@cr...
NIIBE Yutaka gn...@ch...
Niklas Hernaeus
+Nikolay Sturm st...@se...
Nikos Mavroyanopoulos nm...@he...
Nimrod Zimerman zim...@fo...
N J Doye ni...@ni...
Oliver Haakert ha...@hs...
-Oskari J\xE4\xE4skel\xE4inen f3...@cc...
+Oskari Jääskeläinen f3...@cc...
Paul D. Smith ps...@ba...
Philippe Laliberte ar...@oe...
Peter Gutmann pg...@cs...
QingLong qin...@bo...
+Rafael Ávila de Espíndola raf...@gm...
Ralf Hildebrandt Ral...@in...
Ralf Schneider ra...@ta...
Ralph Gillen gi...@th...
@@ -93,7 +99,7 @@
Randy mcc...@oi...
Rat ra...@pe...
Reinhard Wobst R....@if...
-R\xE9mi Guyomarch rg...@ma...
+Rémi Guyomarch rg...@ma...
Reuben Sumner ras...@wi...
Richard Outerbridge ou...@in...
Roddy Strachan ro...@sa...
@@ -118,7 +124,9 @@
Tomas Fasth tom...@tw...
Tommi Komulainen Tom...@ik...
Thomas Mikkelsen tb...@im...
-Ulf M\xF6ller 3um...@in...
+Ulf Möller 3um...@in...
+Umberto Salsi sa...@ic...
+Uoti Urpala
Urko Lusa ul...@eu...
Walter Koch ko...@u3...
Werner Koch wk...@gn...
Modified: trunk/libgcrypt/libgcrypt/TODO
===================================================================
--- trunk/libgcrypt/libgcrypt/TODO 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/TODO 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,5 +1,7 @@
What's left to do -*- outline -*-
+* Updated the FSF directory.
+
* Add more tests. Even basic is very minimal.
* udiv-qrnbd.o should get build as *.lo [HPUX]
@@ -32,4 +34,5 @@
* cipher/pubkey.c and pubkey implementaions.
Don't rely on the secure memory based wiping function but add an
extra wiping.
-
+
+
Modified: trunk/libgcrypt/libgcrypt/VERSION
===================================================================
--- trunk/libgcrypt/libgcrypt/VERSION 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/VERSION 2008-02-18 04:00:34 UTC (rev 483)
@@ -1 +1 @@
-1.2.0
+1.2.4
Modified: trunk/libgcrypt/libgcrypt/acinclude.m4
===================================================================
--- trunk/libgcrypt/libgcrypt/acinclude.m4 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/acinclude.m4 2008-02-18 04:00:34 UTC (rev 483)
@@ -21,14 +21,14 @@
dnl GNUPG_MSG_PRINT(STRING)
dnl print a message
dnl
-define(GNUPG_MSG_PRINT,
+define([GNUPG_MSG_PRINT],
[ echo $ac_n "$1"" $ac_c" 1>&AS_MESSAGE_FD([])
])
dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
dnl Check whether a typedef exists and create a #define $2 if it exists
dnl
-AC_DEFUN(GNUPG_CHECK_TYPEDEF,
+AC_DEFUN([GNUPG_CHECK_TYPEDEF],
[ AC_MSG_CHECKING(for $1 typedef)
AC_CACHE_VAL(gnupg_cv_typedef_$1,
[AC_TRY_COMPILE([#define _GNU_SOURCE 1
@@ -50,7 +50,7 @@
dnl We must use a temp file in the current directory because make distcheck
dnl install all sourcefiles RO.
dnl
-AC_DEFUN(GNUPG_FIX_HDR_VERSION,
+AC_DEFUN([GNUPG_FIX_HDR_VERSION],
[ sed "s/^#define $2 \".*/#define $2 \"$VERSION\"/" $srcdir/$1 > fixhdr.tmp
if cmp -s $srcdir/$1 fixhdr.tmp 2>/dev/null; then
rm -f fixhdr.tmp
@@ -72,7 +72,7 @@
dnl GNUPG_CHECK_GNUMAKE
dnl
-AC_DEFUN(GNUPG_CHECK_GNUMAKE,
+AC_DEFUN([GNUPG_CHECK_GNUMAKE],
[
if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
:
@@ -93,7 +93,7 @@
# Does the compiler prefix global symbols with an underscore?
#
# Taken from GnuPG 1.2 and modified to use the libtool macros.
-AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
+AC_DEFUN([GNUPG_SYS_SYMBOL_UNDERSCORE],
[tmp_do_check="no"
case "${target}" in
i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
@@ -158,7 +158,7 @@
######################################################################
dnl GNUPG_CHECK_MLOCK
dnl
-define(GNUPG_CHECK_MLOCK,
+define([GNUPG_CHECK_MLOCK],
[ AC_CHECK_FUNCS(mlock)
if test "$ac_cv_func_mlock" = "no"; then
AC_CHECK_HEADERS(sys/mman.h)
@@ -244,7 +244,7 @@
])
# GNUPG_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
-AC_DEFUN(GNUPG_SYS_LIBTOOL_CYGWIN32,
+AC_DEFUN([GNUPG_SYS_LIBTOOL_CYGWIN32],
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
])
@@ -252,7 +252,7 @@
dnl LIST_MEMBER()
dnl Check wether an element ist contained in a list. Set `found' to
dnl `1' if the element is found in the list, to `0' otherwise.
-AC_DEFUN(LIST_MEMBER,
+AC_DEFUN([LIST_MEMBER],
[
name=$1
list=$2
@@ -269,7 +269,7 @@
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS
dnl
-AC_DEFUN(AM_PATH_GPG_ERROR,
+AC_DEFUN([AM_PATH_GPG_ERROR],
[ AC_ARG_WITH(gpg-error-prefix,
AC_HELP_STRING([--with-gpg-error-prefix=PFX],
[prefix where GPG Error is installed (optional)]),
@@ -363,7 +363,7 @@
dnl ##
dnl
dnl # auxilliary macros
-AC_DEFUN(_AC_PTH_ERROR, [dnl
+AC_DEFUN([_AC_PTH_ERROR], [dnl
AC_MSG_RESULT([*FAILED*])
dnl define(_ac_pth_line,dnl
dnl "+------------------------------------------------------------------------+")
@@ -375,13 +375,13 @@
dnl undefine(_ac_pth_line)
exit 1
])
-AC_DEFUN(_AC_PTH_VERBOSE, [dnl
+AC_DEFUN([_AC_PTH_VERBOSE], [dnl
if test ".$verbose" = .yes; then
AC_MSG_RESULT([ $1])
fi
])
dnl # the user macro
-AC_DEFUN(AC_CHECK_PTH, [dnl
+AC_DEFUN([AC_CHECK_PTH], [dnl
dnl
dnl # prerequisites
AC_REQUIRE([AC_PROG_CC])dnl
Modified: trunk/libgcrypt/libgcrypt/aclocal.m4
===================================================================
--- trunk/libgcrypt/libgcrypt/aclocal.m4 2008-02-18 03:44:24 UTC (rev 482)
+++ trunk/libgcrypt/libgcrypt/aclocal.m4 2008-02-18 04:00:34 UTC (rev 483)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.7.9 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,6965 +11,54 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-dnl macros to configure Libgcrypt
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002,
-dnl 2003 Free Software Foundation, Inc.
-dnl
-dnl This file is part of Libgcrypt.
-dnl
-dnl Libgcrypt is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU Lesser General Public License as
-dnl published by the Free Software Foundation; either version 2.1 of
-dnl the License, or (at your option) any later version.
-dnl
-dnl Libgcrypt is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU Lesser General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public
-dnl License along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-dnl GNUPG_MSG_PRINT(STRING)
-dnl print a message
-dnl
-define(GNUPG_MSG_PRINT,
- [ echo $ac_n "$1"" $ac_c" 1>&AS_MESSAGE_FD([])
- ])
-
-dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
-dnl Check whether a typedef exists and create a #define $2 if it exists
-dnl
-AC_DEFUN(GNUPG_CHECK_TYPEDEF,
- [ AC_MSG_CHECKING(for $1 typedef)
- AC_CACHE_VAL(gnupg_cv_typedef_$1,
- [AC_TRY_COMPILE([#define _GNU_SOURCE 1
- #include <stdlib.h>
- #include <sys/types.h>], [
- #undef $1
- int a = sizeof($1);
- ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
- AC_MSG_RESULT($gnupg_cv_typedef_$1)
- if test "$gnupg_cv_typedef_$1" = yes; then
- AC_DEFINE($2,1,[Defined if a `]$1[' is typedef'd])
- fi
- ])
-
-
-dnl GNUPG_FIX_HDR_VERSION(FILE, NAME)
-dnl Make the version number in gcrypt/gcrypt.h the same as the one here.
-dnl (this is easier than to have a .in file just for one substitution)
-dnl We must use a temp file in the current directory because make distcheck
-dnl install all sourcefiles RO.
-dnl
-AC_DEFUN(GNUPG_FIX_HDR_VERSION,
- [ sed "s/^#define $2 \".*/#define $2 \"$VERSION\"/" $srcdir/$1 > fixhdr.tmp
- if cmp -s $srcdir/$1 fixhdr.tmp 2>/dev/null; then
- rm -f fixhdr.tmp
- else
- rm -f $srcdir/$1
- if mv fixhdr.tmp $srcdir/$1 ; then
- :
- else
- AC_MSG_ERROR([[
-***
-*** Failed to fix the version string macro $2 in $1.
-*** The old file has been saved as fixhdr.tmp
-***]])
- fi
- AC_MSG_WARN([fixed the $2 macro in $1])
- fi
- ])
-
-
-dnl GNUPG_CHECK_GNUMAKE
-dnl
-AC_DEFUN(GNUPG_CHECK_GNUMAKE,
- [
- if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
- :
- else
- AC_MSG_WARN([[
-***
-*** It seems that you are not using GNU make. Some make tools have serious
-*** flaws and you may not be able to build this software at all. Before you
-*** complain, please try GNU make: GNU make is easy to build and available
-*** at all GNU archives. It is always available from ftp.gnu.org:/gnu/make.
-***]])
- fi
- ])
-
-
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
#
-# GNUPG_SYS_SYMBOL_UNDERSCORE
-# Does the compiler prefix global symbols with an underscore?
-#
-# Taken from GnuPG 1.2 and modified to use the libtool macros.
-AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
-[tmp_do_check="no"
-case "${target}" in
- i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
- ac_cv_sys_symbol_underscore=yes
- ;;
- *)
- if test "$cross_compiling" = yes; then
- ac_cv_sys_symbol_underscore=yes
- else
- tmp_do_check="yes"
- fi
- ;;
-esac
-if test "$tmp_do_check" = "yes"; then
- AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
- AC_MSG_CHECKING([for _ prefix in compiled symbols])
- AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
- [ac_cv_sys_symbol_underscore=no
- cat > conftest.$ac_ext <<EOF
- void nm_test_func(){}
- int main(){nm_test_func;return 0;
-EOF
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
- # See whether the symbols have a leading underscore.
- if egrep '^_nm_test_func' "$ac_nlist" >/dev/null; then
- ac_cv_sys_symbol_underscore=yes
- else
- if egrep '^nm_test_func ' "$ac_nlist" >/dev/null; then
- :
- else
- echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- fi
- else
- echo "configure: cannot run $global_symbol_pipe" >&AC_FD_CC
- fi
- else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- rm -rf conftest*
- ])
- else
- AC_MSG_CHECKING([for _ prefix in compiled symbols])
- fi
-AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
-if test x$ac_cv_sys_symbol_underscore = xyes; then
- AC_DEFINE(WITH_SYMBOL_UNDERSCORE,1,
- [Defined if compiled symbols have a leading underscore])
-fi
-])
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-
-# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
-# is not called from uid 0 (not tested whether uid 0 works)
-# For DECs Tru64 we have also to check whether mlock is in librt
-# mlock is there a macro using memlk()
-dnl GNUPG_CHECK_MLOCK
-dnl
-define(GNUPG_CHECK_MLOCK,
- [ AC_CHECK_FUNCS(mlock)
- if test "$ac_cv_func_mlock" = "no"; then
- AC_CHECK_HEADERS(sys/mman.h)
- if test "$ac_cv_header_sys_mman_h" = "yes"; then
- # Add librt to LIBS:
- AC_CHECK_LIB(rt, memlk)
- AC_CACHE_CHECK([whether mlock is in sys/mman.h],
- gnupg_cv_mlock_is_in_sys_mman,
- [AC_TRY_LINK([
- #include <assert.h>
- #ifdef HAVE_SYS_MMAN_H
- #include <sys/mman.h>
- #endif
- ], [
- int i;
-
- /* glibc defines this for functions which it implements
- * to always fail with ENOSYS. Some functions are actually
- * named something starting with __ and the normal name
- * is an alias. */
- #if defined (__stub_mlock) || defined (__stub___mlock)
- choke me
- #else
- mlock(&i, 4);
- #endif
- ; return 0;
- ],
- gnupg_cv_mlock_is_in_sys_mman=yes,
- gnupg_cv_mlock_is_in_sys_mman=no)])
- if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then
- AC_DEFINE(HAVE_MLOCK,1,
- [Defined if the system supports an mlock() call])
- fi
- fi
- fi
- if test "$ac_cv_func_mlock" = "yes"; then
- AC_MSG_CHECKING(whether mlock is broken)
- AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
- AC_TRY_RUN([
...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-18 03:44:18
|
Revision: 482
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=482&view=rev
Author: fredm
Date: 2008-02-17 19:44:24 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Tag vendor/libgcrypt/current as vendor/libgcrypt/libgcrypt-1.2.4.
Added Paths:
-----------
vendor/libgcrypt/libgcrypt-1.2.4/
Copied: vendor/libgcrypt/libgcrypt-1.2.4 (from rev 481, vendor/libgcrypt/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 03:44:03
|
Revision: 481
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=481&view=rev
Author: fredm
Date: 2008-02-17 19:44:06 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Load . into vendor/libgcrypt/current.
Modified Paths:
--------------
vendor/libgcrypt/current/AUTHORS
vendor/libgcrypt/current/ChangeLog
vendor/libgcrypt/current/INSTALL
vendor/libgcrypt/current/Makefile.am
vendor/libgcrypt/current/Makefile.in
vendor/libgcrypt/current/NEWS
vendor/libgcrypt/current/README
vendor/libgcrypt/current/THANKS
vendor/libgcrypt/current/TODO
vendor/libgcrypt/current/VERSION
vendor/libgcrypt/current/acinclude.m4
vendor/libgcrypt/current/aclocal.m4
vendor/libgcrypt/current/autogen.sh
vendor/libgcrypt/current/cipher/ChangeLog
vendor/libgcrypt/current/cipher/Makefile.in
vendor/libgcrypt/current/cipher/ac.c
vendor/libgcrypt/current/cipher/blowfish.c
vendor/libgcrypt/current/cipher/cast5.c
vendor/libgcrypt/current/cipher/cipher.c
vendor/libgcrypt/current/cipher/crc.c
vendor/libgcrypt/current/cipher/des.c
vendor/libgcrypt/current/cipher/dsa.c
vendor/libgcrypt/current/cipher/elgamal.c
vendor/libgcrypt/current/cipher/md.c
vendor/libgcrypt/current/cipher/primegen.c
vendor/libgcrypt/current/cipher/pubkey.c
vendor/libgcrypt/current/cipher/random.c
vendor/libgcrypt/current/cipher/random.h
vendor/libgcrypt/current/cipher/rfc2268.c
vendor/libgcrypt/current/cipher/rijndael.c
vendor/libgcrypt/current/cipher/rmd160.c
vendor/libgcrypt/current/cipher/rndlinux.c
vendor/libgcrypt/current/cipher/rndw32.c
vendor/libgcrypt/current/cipher/rsa.c
vendor/libgcrypt/current/cipher/serpent.c
vendor/libgcrypt/current/cipher/sha256.c
vendor/libgcrypt/current/cipher/sha512.c
vendor/libgcrypt/current/cipher/tiger.c
vendor/libgcrypt/current/cipher/twofish.c
vendor/libgcrypt/current/compile
vendor/libgcrypt/current/config.guess
vendor/libgcrypt/current/config.h.in
vendor/libgcrypt/current/config.sub
vendor/libgcrypt/current/configure
vendor/libgcrypt/current/configure.ac
vendor/libgcrypt/current/depcomp
vendor/libgcrypt/current/doc/ChangeLog
vendor/libgcrypt/current/doc/Makefile.in
vendor/libgcrypt/current/doc/gcrypt.info
vendor/libgcrypt/current/doc/gcrypt.texi
vendor/libgcrypt/current/doc/mdate-sh
vendor/libgcrypt/current/doc/stamp-vti
vendor/libgcrypt/current/doc/texinfo.tex
vendor/libgcrypt/current/doc/version.texi
vendor/libgcrypt/current/install-sh
vendor/libgcrypt/current/ltmain.sh
vendor/libgcrypt/current/missing
vendor/libgcrypt/current/mkinstalldirs
vendor/libgcrypt/current/mpi/ChangeLog
vendor/libgcrypt/current/mpi/Makefile.am
vendor/libgcrypt/current/mpi/Makefile.in
vendor/libgcrypt/current/mpi/config.links
vendor/libgcrypt/current/mpi/hppa1.1/udiv-qrnnd.S
vendor/libgcrypt/current/mpi/mpi-bit.c
vendor/libgcrypt/current/mpi/mpi-pow.c
vendor/libgcrypt/current/mpi/mpicoder.c
vendor/libgcrypt/current/mpi/mpiutil.c
vendor/libgcrypt/current/src/ChangeLog
vendor/libgcrypt/current/src/Makefile.am
vendor/libgcrypt/current/src/Makefile.in
vendor/libgcrypt/current/src/ath.c
vendor/libgcrypt/current/src/ath.h
vendor/libgcrypt/current/src/g10lib.h
vendor/libgcrypt/current/src/gcrypt-module.h
vendor/libgcrypt/current/src/gcrypt.h
vendor/libgcrypt/current/src/global.c
vendor/libgcrypt/current/src/libgcrypt.m4
vendor/libgcrypt/current/src/missing-string.c
vendor/libgcrypt/current/src/secmem.c
vendor/libgcrypt/current/src/secmem.h
vendor/libgcrypt/current/src/sexp.c
vendor/libgcrypt/current/src/types.h
vendor/libgcrypt/current/tests/ChangeLog
vendor/libgcrypt/current/tests/Makefile.am
vendor/libgcrypt/current/tests/Makefile.in
vendor/libgcrypt/current/tests/ac.c
vendor/libgcrypt/current/tests/basic.c
vendor/libgcrypt/current/tests/benchmark.c
vendor/libgcrypt/current/tests/pubkey.c
vendor/libgcrypt/current/tests/tsexp.c
vendor/libgcrypt/current/w32-dll/Makefile.in
Added Paths:
-----------
vendor/libgcrypt/current/README.SVN
vendor/libgcrypt/current/m4/
vendor/libgcrypt/current/m4/ChangeLog
vendor/libgcrypt/current/m4/Makefile.am
vendor/libgcrypt/current/m4/Makefile.in
vendor/libgcrypt/current/m4/libtool.m4
vendor/libgcrypt/current/m4/onceonly.m4
vendor/libgcrypt/current/m4/socklen.m4
vendor/libgcrypt/current/m4/sys_socket_h.m4
vendor/libgcrypt/current/src/gcrypt.h.in
vendor/libgcrypt/current/tests/random.c
vendor/libgcrypt/current/tests/t-mpi-bit.c
Removed Paths:
-------------
vendor/libgcrypt/current/README.CVS
Modified: vendor/libgcrypt/current/AUTHORS
===================================================================
--- vendor/libgcrypt/current/AUTHORS 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/AUTHORS 2008-02-18 03:44:06 UTC (rev 481)
@@ -63,7 +63,6 @@
Orginal code for cipher/rfc2268.c.
-
More credits
============
The ATH implementation (src/ath*) has been taken from GPGME and
Modified: vendor/libgcrypt/current/ChangeLog
===================================================================
--- vendor/libgcrypt/current/ChangeLog 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/ChangeLog 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,3 +1,97 @@
+2007-02-01 Werner Koch <wk...@g1...>
+
+ Released 1.2.4.
+
+ * configure.ac: Set LT to C13/A2/R3.
+
+2006-11-30 Werner Koch <wk...@g1...>
+
+ * autogen.sh: New option --force.
+ * configure.ac: Add SVN revision magic
+
+ * configure.ac (FALLBACK_SOCKLEN_T): Define gcry_socklen_t, to
+ avoid conflicts with socklen_t definitions by autoconf.
+ * configure.ac: Do not call GNUPG_FIX_HDR_VERSION.
+ * configure.ac: Invoke AC_CHECK_SOCKLEN_TYPE.
+ (AC_CONFIG_FILES): Add src/gcrypt.h and m4/Makefile
+ (AC_CONFIG_SRCDIR): Change to src/libgcrypt.vers.
+ * Makefile.am (SUBDIRS): Add m4/
+
+2006-08-28 Werner Koch <wk...@g1...>
+
+ Released 1.2.3.
+
+ * configure.ac: Set LT to C13/A2/R2.
+
+2006-07-26 Werner Koch <wk...@g1...>
+
+ * configure.ac: New option --disable-optimization.
+
+2005-12-08 Werner Koch <wk...@g1...>
+
+ * configure.ac: Changed the random device names for netbsd. From
+ Christian Biere.
+
+2005-10-05 Werner Koch <wk...@g1...>
+
+ Released 1.2.2.
+
+ * configure.ac: Set LT to C13/A2/R1.
+
+2005-09-14 Werner Koch <wk...@g1...>
+
+ * configure.ac: New option --enable-noexecstack.
+
+2005-06-10 Werner Koch <wk...@g1...>
+
+ * configure.ac: Moved basic tests to the top.
+
+2005-02-03 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2005-01-05 Werner Koch <wk...@g1...>
+
+ Released 1.2.1.
+
+ * configure.ac: Set LT to C13/A2/R0.
+
+2005-01-04 Werner Koch <wk...@g1...>
+
+ * Makefile.am (ACLOCAL_AMFLAGS): New for -I m4.
+ (AUTOMAKE_OPTIONS): New to create a bzip archive.
+
+ Updated to automake 1.9.
+
+ * acinclude.m4: Updated for automake 1.9.
+
+2004-12-18 Werner Koch <wk...@g1...>
+
+ * autogen.sh: Added option --build-w32 to run W32 cross compiling
+ configure.
+
+2004-08-09 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+ * libgcrypt.txt: Slightly updated.
+
+2004-07-04 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2004-04-21 Werner Koch <wk...@gn...>
+
+ * configure.ac: Don't print a warning if GNU make was not found.
+
+2004-05-07 Moritz Schulte <mo...@g1...>
+
+ * THANKS: Updated.
+
+2004-04-02 Thomas Schwinge <sch...@ni...>
+
+ * autogen.sh: Added ACLOCAL_FLAGS.
+
2004-04-15 Werner Koch <wk...@gn...>
Released 1.2.0.
Modified: vendor/libgcrypt/current/INSTALL
===================================================================
--- vendor/libgcrypt/current/INSTALL 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/INSTALL 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,13 +1,16 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions
+*************************
- This file is free documentation; the Free Software Foundation gives
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
- These are generic installation instructions.
+These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -67,9 +70,9 @@
Compilers and Options
=====================
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
@@ -82,7 +85,7 @@
Compiling For Multiple Architectures
====================================
- You can compile the package for more than one kind of computer at the
+You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
@@ -99,19 +102,19 @@
Installation Names
==================
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
@@ -122,7 +125,7 @@
Optional Features
=================
- Some packages pay attention to `--enable-FEATURE' options to
+Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -137,11 +140,11 @@
Specifying the System Type
==========================
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -156,7 +159,7 @@
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
+use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
@@ -167,9 +170,9 @@
Sharing Defaults
================
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -178,7 +181,7 @@
Defining Variables
==================
- Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -186,14 +189,18 @@
./configure CC=/usr/local2/bin/gcc
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
`configure' Invocation
======================
- `configure' recognizes the following options to control how it
-operates.
+`configure' recognizes the following options to control how it operates.
`--help'
`-h'
Modified: vendor/libgcrypt/current/Makefile.am
===================================================================
--- vendor/libgcrypt/current/Makefile.am 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/Makefile.am 2008-02-18 03:44:06 UTC (rev 481)
@@ -17,10 +17,12 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ACLOCAL_AMFLAGS = -I m4
+AUTOMAKE_OPTIONS = dist-bzip2
-DIST_SUBDIRS = mpi cipher src doc tests w32-dll
-SUBDIRS = mpi cipher src doc tests
-EXTRA_DIST = BUGS autogen.sh README.apichanges README.CVS
+DIST_SUBDIRS = m4 mpi cipher src doc tests w32-dll
+SUBDIRS = m4 mpi cipher src doc tests
+EXTRA_DIST = BUGS autogen.sh README.apichanges README.SVN
DISTCLEANFILES =
Modified: vendor/libgcrypt/current/Makefile.in
===================================================================
--- vendor/libgcrypt/current/Makefile.in 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/Makefile.in 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -31,7 +31,6 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -39,7 +38,6 @@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -53,7 +51,48 @@
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \
+ INSTALL NEWS THANKS TODO compile config.guess config.sub \
+ depcomp install-sh ltmain.sh missing mkinstalldirs
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/onceonly.m4 $(top_srcdir)/m4/socklen.m4 \
+ $(top_srcdir)/m4/sys_socket_h.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
@@ -86,6 +125,7 @@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
+FALLBACK_SOCKLEN_T = @FALLBACK_SOCKLEN_T@
FFLAGS = @FFLAGS@
GCRYPT_CIPHERS = @GCRYPT_CIPHERS@
GCRYPT_DIGESTS = @GCRYPT_DIGESTS@
@@ -94,6 +134,7 @@
GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@
GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@
GPG_ERROR_LIBS = @GPG_ERROR_LIBS@
+GREP = @GREP@
HAVE_LD_VERSION_SCRIPT_FALSE = @HAVE_LD_VERSION_SCRIPT_FALSE@
HAVE_LD_VERSION_SCRIPT_TRUE = @HAVE_LD_VERSION_SCRIPT_TRUE@
INSTALL_DATA = @INSTALL_DATA@
@@ -123,6 +164,7 @@
MPI_MOD_LIST_LO = @MPI_MOD_LIST_LO@
MPI_MOD_LIST_O = @MPI_MOD_LIST_O@
MPI_SFLAGS = @MPI_SFLAGS@
+NOEXECSTACK_FLAGS = @NOEXECSTACK_FLAGS@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -135,13 +177,11 @@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SYS_SOCKET_H = @SYS_SOCKET_H@
VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -149,6 +189,8 @@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -156,22 +198,30 @@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
+htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
+localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
@@ -180,47 +230,48 @@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
-
-DIST_SUBDIRS = mpi cipher src doc tests w32-dll
-SUBDIRS = mpi cipher src doc tests
-EXTRA_DIST = BUGS autogen.sh README.apichanges README.CVS
+ACLOCAL_AMFLAGS = -I m4
+AUTOMAKE_OPTIONS = dist-bzip2
+DIST_SUBDIRS = m4 mpi cipher src doc tests w32-dll
+SUBDIRS = m4 mpi cipher src doc tests
+EXTRA_DIST = BUGS autogen.sh README.apichanges README.SVN
DISTCLEANFILES =
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
- COPYING COPYING.LIB ChangeLog INSTALL Makefile.am NEWS THANKS \
- TODO acinclude.m4 aclocal.m4 compile config.guess config.h.in \
- config.sub configure configure.ac depcomp install-sh ltmain.sh \
- missing mkinstalldirs
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
-
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac acinclude.m4
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@@ -232,10 +283,10 @@
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
- touch $(srcdir)/config.h.in
+ rm -f stamp-h1
+ touch $@
distclean-hdr:
-rm -f config.h stamp-h1
@@ -257,7 +308,13 @@
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -269,7 +326,7 @@
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -277,7 +334,13 @@
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -298,7 +361,7 @@
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -309,14 +372,6 @@
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -325,19 +380,22 @@
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -347,10 +405,11 @@
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -373,24 +432,11 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
- $(mkinstalldirs) $(distdir)/src
+ $(mkdir_p) $(distdir)/m4 $(distdir)/src
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@@ -402,7 +448,7 @@
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -419,13 +465,15 @@
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -439,19 +487,46 @@
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
@@ -471,19 +546,20 @@
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
- (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -507,7 +583,6 @@
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
-
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@@ -527,7 +602,7 @@
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -540,13 +615,15 @@
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
- distclean-tags
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -583,23 +660,20 @@
uninstall-info: uninstall-info-recursive
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
- clean-generic clean-libtool clean-recursive ctags \
- ctags-recursive dist dist-all dist-gzip distcheck distclean \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-am clean clean-generic clean-libtool clean-recursive \
+ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-generic distclean-hdr distclean-libtool \
distclean-recursive distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am dvi-recursive info info-am \
- info-recursive install install-am install-data install-data-am \
- install-data-recursive install-exec install-exec-am \
- install-exec-recursive install-info install-info-am \
- install-info-recursive install-man install-recursive \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
- installdirs-am installdirs-recursive maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive mostlyclean \
- mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
- pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
- tags-recursive uninstall uninstall-am uninstall-info-am \
- uninstall-info-recursive uninstall-recursive
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am
# Add all the files listed in "distfiles" files to the distribution,
Modified: vendor/libgcrypt/current/NEWS
===================================================================
--- vendor/libgcrypt/current/NEWS 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/NEWS 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,3 +1,61 @@
+Noteworthy changes in version 1.2.4 (2007-02-01)
+------------------------------------------------
+
+ * Fixed a bug in the memory allocator which could have been the
+ reason for some of non-duplicable bugs.
+
+ * Other minor bug fixes.
+
+
+Noteworthy changes in version 1.2.3 (2006-08-28)
+------------------------------------------------
+
+ * Rewrote gcry_mpi_rshift to allow arbitrary shift counts.
+
+ * Minor bug fixes.
+
+
+Noteworthy changes in version 1.2.2 (2005-10-05)
+------------------------------------------------
+
+ * Made the RNG immune against fork without exec.
+
+ * Minor changes to some function declarations. Buffer arguments are
+ now typed as void pointer. This should not affect any compilation.
+
+ * A bug in the definition of gcry_cipher_register has been fixed.
+
+ * Interface changes relative to the 1.2.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_cipher_encrypt CHANGED: Arguments IN and OUT are now void*.
+ gcry_cipher_decrypt CHANGED: Arguments IN and OUT are now void*.
+ gcry_create_nonce CHANGED: Argument BUFFER is now void*.
+ gcry_md_ctl CHANGED: Argument BUFFER is now void*.
+ gcry_sexp_sprint CHANGED: Argument BUFFER is now void*.
+ gcry_mpi_scan CHANGED: Argument BUFFER is now void*.
+ gcry_cipher_register CHANGED: Argument ALGORITHM_ID is now int*.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.2.1 (2005-01-05)
+------------------------------------------------
+
+ * Portability fixes, memory allocation fixes and other minor things.
+
+ * Support to build as a W32 static library.
+
+ * Changed the way the RNG gets initialized. This allows to keep it
+ uninitialized as long as no random numbers are used. To override
+ this, the new macro gcry_fast_random_poll may be used. It is in
+ general a good idea to spread this macro into the application code
+ to make sure that these polls happen often enough.
+
+ * Interface changes relative to the 1.2.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_fast_random_poll NEW
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Noteworthy changes in version 1.2.0 (2004-04-15)
------------------------------------------------
Modified: vendor/libgcrypt/current/README
===================================================================
--- vendor/libgcrypt/current/README 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/README 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,8 +1,9 @@
libgcrypt - The GNU crypto library
------------------------------------
- Version 1.2.0
+ Version 1.2.4
- Copyright 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2000, 2002, 2003, 2004, 2005, 2006,
+ 2007 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
Deleted: vendor/libgcrypt/current/README.CVS
===================================================================
--- vendor/libgcrypt/current/README.CVS 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/README.CVS 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,51 +0,0 @@
-If you are building from CVS, run the script
-
-./autogen.sh
-
-first, to make sure that you have all the necessary maintainer tools
-are installed and to build the actual configuration files. Then run
-
-./configure --enable-maintainer-mode
-
-followed by the usual make.
-
-If autogen.sh complains about insufficient versions of the required
-tools, or the tools are not installed, you may use environment
-variables to override the default tool names:
-
- AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake
- package. For example
- AUTOMAKE_SUFFIX="-1.7" ./autogen.sh
- uses "automake-1.7" and "aclocal-1.7.
- AUTOMAKE_PREFIX is used as a prefix for all tools from the automake
- page and may be combined with AUTOMAKE_SUFFIX. e.g.:
- AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh
- uses "automake" and "aclocal" in the /usr/foo/bin
- directory.
- AUTOCONF_SUFFIX is used as a suffix for all tools from the automake
- package
- AUTOCONF_PREFIX is used as a prefix for all tools from the automake
- package
- GETTEXT_SUFFIX is used as a suffix for all tools from the gettext
- package
- GETTEXT_PREFIX is used as a prefix for all tools from the gettext
- package
-
-It is also possible to use the variable name AUTOMAKE, AUTOCONF,
-ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name
-of the programs to run. It is however better to use the suffix and
-prefix forms as described above because that does not require
-knowledge about the actual tools used by autgen.sh.
-
-
-Please don't use autopoint, libtoolize or autoreconf unless you are
-the current maintainer and want to update the standard configuration
-files. All those files should be in the CVS and only updated manually
-if the maintainer decides that newer versions are required. The
-maintainer should also make sure that the required version of automake
-et al. are properly indicated at the top of configure.ac and take care
-to copy the files and not merely use symlinks.
-
-
-
-
Added: vendor/libgcrypt/current/README.SVN
===================================================================
--- vendor/libgcrypt/current/README.SVN (rev 0)
+++ vendor/libgcrypt/current/README.SVN 2008-02-18 03:44:06 UTC (rev 481)
@@ -0,0 +1,51 @@
+If you are building from CVS, run the script
+
+./autogen.sh
+
+first, to make sure that you have all the necessary maintainer tools
+are installed and to build the actual configuration files. Then run
+
+./configure --enable-maintainer-mode
+
+followed by the usual make.
+
+If autogen.sh complains about insufficient versions of the required
+tools, or the tools are not installed, you may use environment
+variables to override the default tool names:
+
+ AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake
+ package. For example
+ AUTOMAKE_SUFFIX="-1.7" ./autogen.sh
+ uses "automake-1.7" and "aclocal-1.7.
+ AUTOMAKE_PREFIX is used as a prefix for all tools from the automake
+ page and may be combined with AUTOMAKE_SUFFIX. e.g.:
+ AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh
+ uses "automake" and "aclocal" in the /usr/foo/bin
+ directory.
+ AUTOCONF_SUFFIX is used as a suffix for all tools from the automake
+ package
+ AUTOCONF_PREFIX is used as a prefix for all tools from the automake
+ package
+ GETTEXT_SUFFIX is used as a suffix for all tools from the gettext
+ package
+ GETTEXT_PREFIX is used as a prefix for all tools from the gettext
+ package
+
+It is also possible to use the variable name AUTOMAKE, AUTOCONF,
+ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name
+of the programs to run. It is however better to use the suffix and
+prefix forms as described above because that does not require
+knowledge about the actual tools used by autgen.sh.
+
+
+Please don't use autopoint, libtoolize or autoreconf unless you are
+the current maintainer and want to update the standard configuration
+files. All those files should be in the CVS and only updated manually
+if the maintainer decides that newer versions are required. The
+maintainer should also make sure that the required version of automake
+et al. are properly indicated at the top of configure.ac and take care
+to copy the files and not merely use symlinks.
+
+
+
+
Modified: vendor/libgcrypt/current/THANKS
===================================================================
--- vendor/libgcrypt/current/THANKS 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/THANKS 2008-02-18 03:44:06 UTC (rev 481)
@@ -14,6 +14,7 @@
Caskey L. Dickson ca...@te...
Cees van de Griend cee...@gr...
Charles Levert ch...@co...
+Christian Biere chr...@gm...
Christian Grothoff gro...@cs...
Christian von Roques ro...@po...
Christopher Oliver ol...@fr...
@@ -30,7 +31,7 @@
Felix von Leitner le...@am...
Frank Heckenbach he...@mi...
Frank Stajano fra...@cl...
-Ga\xEBl Qu\xE9ri gq...@ma...
+Gaël Quéri gq...@ma...
Gerlinde Klaes gk...@u6...
Greg Louis gl...@dy...
Greg Troxel gd...@ir...
@@ -51,8 +52,8 @@
Joachim Backes ba...@rh...
Jordi Mallach jo...@si...
John A. Martin ja...@ja...
-Johnny Teve\xDFen j.t...@gm...
-J\xF6rg Schilling sch...@fo...
+Johnny Teveßen j.t...@gm...
+Jörg Schilling sch...@fo...
Jun Kuriyama kur...@sk...
Karl Fogel kf...@gu...
Karsten Thygesen ka...@ko...
@@ -63,6 +64,7 @@
Mark Adler ma...@al...
Mark Elbrecht sno...@bi...
Markus Friedl Mar...@in...
+Matthias Urlichs sm...@sm...
Martin Kahlert mar...@pr...
Martin Hamilton
Martin Schulte sc...@th...
@@ -71,20 +73,24 @@
Michael Fischer v. Mollard mf...@gm...
Michael Roth mr...@ne...
Michael Sobolev ms...@de...
+Michele Baldessari mi...@pu...
+Modestas Vainius ger...@ma...
Neil Spring ns...@cs...
Newton Hammet ne...@ha...
Nicolas Graner Nic...@cr...
NIIBE Yutaka gn...@ch...
Niklas Hernaeus
+Nikolay Sturm st...@se...
Nikos Mavroyanopoulos nm...@he...
Nimrod Zimerman zim...@fo...
N J Doye ni...@ni...
Oliver Haakert ha...@hs...
-Oskari J\xE4\xE4skel\xE4inen f3...@cc...
+Oskari Jääskeläinen f3...@cc...
Paul D. Smith ps...@ba...
Philippe Laliberte ar...@oe...
Peter Gutmann pg...@cs...
QingLong qin...@bo...
+Rafael Ávila de Espíndola raf...@gm...
Ralf Hildebrandt Ral...@in...
Ralf Schneider ra...@ta...
Ralph Gillen gi...@th...
@@ -93,7 +99,7 @@
Randy mcc...@oi...
Rat ra...@pe...
Reinhard Wobst R....@if...
-R\xE9mi Guyomarch rg...@ma...
+Rémi Guyomarch rg...@ma...
Reuben Sumner ras...@wi...
Richard Outerbridge ou...@in...
Roddy Strachan ro...@sa...
@@ -118,7 +124,9 @@
Tomas Fasth tom...@tw...
Tommi Komulainen Tom...@ik...
Thomas Mikkelsen tb...@im...
-Ulf M\xF6ller 3um...@in...
+Ulf Möller 3um...@in...
+Umberto Salsi sa...@ic...
+Uoti Urpala
Urko Lusa ul...@eu...
Walter Koch ko...@u3...
Werner Koch wk...@gn...
Modified: vendor/libgcrypt/current/TODO
===================================================================
--- vendor/libgcrypt/current/TODO 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/TODO 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,5 +1,7 @@
What's left to do -*- outline -*-
+* Updated the FSF directory.
+
* Add more tests. Even basic is very minimal.
* udiv-qrnbd.o should get build as *.lo [HPUX]
@@ -32,4 +34,5 @@
* cipher/pubkey.c and pubkey implementaions.
Don't rely on the secure memory based wiping function but add an
extra wiping.
-
+
+
Modified: vendor/libgcrypt/current/VERSION
===================================================================
--- vendor/libgcrypt/current/VERSION 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/VERSION 2008-02-18 03:44:06 UTC (rev 481)
@@ -1 +1 @@
-1.2.0
+1.2.4
Modified: vendor/libgcrypt/current/acinclude.m4
===================================================================
--- vendor/libgcrypt/current/acinclude.m4 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/acinclude.m4 2008-02-18 03:44:06 UTC (rev 481)
@@ -21,14 +21,14 @@
dnl GNUPG_MSG_PRINT(STRING)
dnl print a message
dnl
-define(GNUPG_MSG_PRINT,
+define([GNUPG_MSG_PRINT],
[ echo $ac_n "$1"" $ac_c" 1>&AS_MESSAGE_FD([])
])
dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
dnl Check whether a typedef exists and create a #define $2 if it exists
dnl
-AC_DEFUN(GNUPG_CHECK_TYPEDEF,
+AC_DEFUN([GNUPG_CHECK_TYPEDEF],
[ AC_MSG_CHECKING(for $1 typedef)
AC_CACHE_VAL(gnupg_cv_typedef_$1,
[AC_TRY_COMPILE([#define _GNU_SOURCE 1
@@ -50,7 +50,7 @@
dnl We must use a temp file in the current directory because make distcheck
dnl install all sourcefiles RO.
dnl
-AC_DEFUN(GNUPG_FIX_HDR_VERSION,
+AC_DEFUN([GNUPG_FIX_HDR_VERSION],
[ sed "s/^#define $2 \".*/#define $2 \"$VERSION\"/" $srcdir/$1 > fixhdr.tmp
if cmp -s $srcdir/$1 fixhdr.tmp 2>/dev/null; then
rm -f fixhdr.tmp
@@ -72,7 +72,7 @@
dnl GNUPG_CHECK_GNUMAKE
dnl
-AC_DEFUN(GNUPG_CHECK_GNUMAKE,
+AC_DEFUN([GNUPG_CHECK_GNUMAKE],
[
if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
:
@@ -93,7 +93,7 @@
# Does the compiler prefix global symbols with an underscore?
#
# Taken from GnuPG 1.2 and modified to use the libtool macros.
-AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
+AC_DEFUN([GNUPG_SYS_SYMBOL_UNDERSCORE],
[tmp_do_check="no"
case "${target}" in
i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
@@ -158,7 +158,7 @@
######################################################################
dnl GNUPG_CHECK_MLOCK
dnl
-define(GNUPG_CHECK_MLOCK,
+define([GNUPG_CHECK_MLOCK],
[ AC_CHECK_FUNCS(mlock)
if test "$ac_cv_func_mlock" = "no"; then
AC_CHECK_HEADERS(sys/mman.h)
@@ -244,7 +244,7 @@
])
# GNUPG_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
-AC_DEFUN(GNUPG_SYS_LIBTOOL_CYGWIN32,
+AC_DEFUN([GNUPG_SYS_LIBTOOL_CYGWIN32],
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
])
@@ -252,7 +252,7 @@
dnl LIST_MEMBER()
dnl Check wether an element ist contained in a list. Set `found' to
dnl `1' if the element is found in the list, to `0' otherwise.
-AC_DEFUN(LIST_MEMBER,
+AC_DEFUN([LIST_MEMBER],
[
name=$1
list=$2
@@ -269,7 +269,7 @@
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS
dnl
-AC_DEFUN(AM_PATH_GPG_ERROR,
+AC_DEFUN([AM_PATH_GPG_ERROR],
[ AC_ARG_WITH(gpg-error-prefix,
AC_HELP_STRING([--with-gpg-error-prefix=PFX],
[prefix where GPG Error is installed (optional)]),
@@ -363,7 +363,7 @@
dnl ##
dnl
dnl # auxilliary macros
-AC_DEFUN(_AC_PTH_ERROR, [dnl
+AC_DEFUN([_AC_PTH_ERROR], [dnl
AC_MSG_RESULT([*FAILED*])
dnl define(_ac_pth_line,dnl
dnl "+------------------------------------------------------------------------+")
@@ -375,13 +375,13 @@
dnl undefine(_ac_pth_line)
exit 1
])
-AC_DEFUN(_AC_PTH_VERBOSE, [dnl
+AC_DEFUN([_AC_PTH_VERBOSE], [dnl
if test ".$verbose" = .yes; then
AC_MSG_RESULT([ $1])
fi
])
dnl # the user macro
-AC_DEFUN(AC_CHECK_PTH, [dnl
+AC_DEFUN([AC_CHECK_PTH], [dnl
dnl
dnl # prerequisites
AC_REQUIRE([AC_PROG_CC])dnl
Modified: vendor/libgcrypt/current/aclocal.m4
===================================================================
--- vendor/libgcrypt/current/aclocal.m4 2008-02-17 22:06:57 UTC (rev 480)
+++ vendor/libgcrypt/current/aclocal.m4 2008-02-18 03:44:06 UTC (rev 481)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.7.9 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,6965 +11,54 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-dnl macros to configure Libgcrypt
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002,
-dnl 2003 Free Software Foundation, Inc.
-dnl
-dnl This file is part of Libgcrypt.
-dnl
-dnl Libgcrypt is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU Lesser General Public License as
-dnl published by the Free Software Foundation; either version 2.1 of
-dnl the License, or (at your option) any later version.
-dnl
-dnl Libgcrypt is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU Lesser General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public
-dnl License along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-dnl GNUPG_MSG_PRINT(STRING)
-dnl print a message
-dnl
-define(GNUPG_MSG_PRINT,
- [ echo $ac_n "$1"" $ac_c" 1>&AS_MESSAGE_FD([])
- ])
-
-dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
-dnl Check whether a typedef exists and create a #define $2 if it exists
-dnl
-AC_DEFUN(GNUPG_CHECK_TYPEDEF,
- [ AC_MSG_CHECKING(for $1 typedef)
- AC_CACHE_VAL(gnupg_cv_typedef_$1,
- [AC_TRY_COMPILE([#define _GNU_SOURCE 1
- #include <stdlib.h>
- #include <sys/types.h>], [
- #undef $1
- int a = sizeof($1);
- ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
- AC_MSG_RESULT($gnupg_cv_typedef_$1)
- if test "$gnupg_cv_typedef_$1" = yes; then
- AC_DEFINE($2,1,[Defined if a `]$1[' is typedef'd])
- fi
- ])
-
-
-dnl GNUPG_FIX_HDR_VERSION(FILE, NAME)
-dnl Make the version number in gcrypt/gcrypt.h the same as the one here.
-dnl (this is easier than to have a .in file just for one substitution)
-dnl We must use a temp file in the current directory because make distcheck
-dnl install all sourcefiles RO.
-dnl
-AC_DEFUN(GNUPG_FIX_HDR_VERSION,
- [ sed "s/^#define $2 \".*/#define $2 \"$VERSION\"/" $srcdir/$1 > fixhdr.tmp
- if cmp -s $srcdir/$1 fixhdr.tmp 2>/dev/null; then
- rm -f fixhdr.tmp
- else
- rm -f $srcdir/$1
- if mv fixhdr.tmp $srcdir/$1 ; then
- :
- else
- AC_MSG_ERROR([[
-***
-*** Failed to fix the version string macro $2 in $1.
-*** The old file has been saved as fixhdr.tmp
-***]])
- fi
- AC_MSG_WARN([fixed the $2 macro in $1])
- fi
- ])
-
-
-dnl GNUPG_CHECK_GNUMAKE
-dnl
-AC_DEFUN(GNUPG_CHECK_GNUMAKE,
- [
- if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
- :
- else
- AC_MSG_WARN([[
-***
-*** It seems that you are not using GNU make. Some make tools have serious
-*** flaws and you may not be able to build this software at all. Before you
-*** complain, please try GNU make: GNU make is easy to build and available
-*** at all GNU archives. It is always available from ftp.gnu.org:/gnu/make.
-***]])
- fi
- ])
-
-
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
#
-# GNUPG_SYS_SYMBOL_UNDERSCORE
-# Does the compiler prefix global symbols with an underscore?
-#
-# Taken from GnuPG 1.2 and modified to use the libtool macros.
-AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
-[tmp_do_check="no"
-case "${target}" in
- i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
- ac_cv_sys_symbol_underscore=yes
- ;;
- *)
- if test "$cross_compiling" = yes; then
- ac_cv_sys_symbol_underscore=yes
- else
- tmp_do_check="yes"
- fi
- ;;
-esac
-if test "$tmp_do_check" = "yes"; then
- AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
- AC_MSG_CHECKING([for _ prefix in compiled symbols])
- AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
- [ac_cv_sys_symbol_underscore=no
- cat > conftest.$ac_ext <<EOF
- void nm_test_func(){}
- int main(){nm_test_func;return 0;
-EOF
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- ac_nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
- # See whether the symbols have a leading underscore.
- if egrep '^_nm_test_func' "$ac_nlist" >/dev/null; then
- ac_cv_sys_symbol_underscore=yes
- else
- if egrep '^nm_test_func ' "$ac_nlist" >/dev/null; then
- :
- else
- echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
- fi
- fi
- else
- echo "configure: cannot run $global_symbol_pipe" >&AC_FD_CC
- fi
- else
- echo "configure: failed program was:" >&AC_FD_CC
- cat conftest.c >&AC_FD_CC
- fi
- rm -rf conftest*
- ])
- else
- AC_MSG_CHECKING([for _ prefix in compiled symbols])
- fi
-AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
-if test x$ac_cv_sys_symbol_underscore = xyes; then
- AC_DEFINE(WITH_SYMBOL_UNDERSCORE,1,
- [Defined if compiled symbols have a leading underscore])
-fi
-])
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-
-# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
-# is not called from uid 0 (not tested whether uid 0 works)
-# For DECs Tru64 we have also to check whether mlock is in librt
-# mlock is there a macro using memlk()
-dnl GNUPG_CHECK_MLOCK
-dnl
-define(GNUPG_CHECK_MLOCK,
- [ AC_CHECK_FUNCS(mlock)
- if test "$ac_cv_func_mlock" = "no"; then
- AC_CHECK_HEADERS(sys/mman.h)
- if test "$ac_cv_header_sys_mman_h" = "yes"; then
- # Add librt to LIBS:
- AC_CHECK_LIB(rt, memlk)
- AC_CACHE_CHECK([whether mlock is in sys/mman.h],
- gnupg_cv_mlock_is_in_sys_mman,
- [AC_TRY_LINK([
- #include <assert.h>
- #ifdef HAVE_SYS_MMAN_H
- #include <sys/mman.h>
- #endif
- ], [
- int i;
-
- /* glibc defines this for functions which it implements
- * to always fail with ENOSYS. Some functions are actually
- * named something starting with __ and the normal name
- * is an alias. */
- #if defined (__stub_mlock) || defined (__stub___mlock)
- choke me
- #else
- mlock(&i, 4);
- #endif
- ; return 0;
- ],
- gnupg_cv_mlock_is_in_sys_mman=yes,
- gnupg_cv_mlock_is_in_sys_mman=no)])
- if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then
- AC_DEFINE(HAVE_MLOCK,1,
- [Defined if the system supports an mlock() call])
- fi
- fi
- fi
- if test "$ac_cv_func_mlock" = "yes"; then
- AC_MSG_CHECKING(whether mlock is broken)
- AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
- AC_TRY_RUN([
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <sys/mman.h>
- #include <sys/types.h>
- #include <fcntl.h>
-
- int main()
- {
- char *pool;
- int err;
- long int pgsize = getpagesize();
-
- pool = malloc( 4096 + pgsize );
- if( !pool )
- return 2;
- pool += (pgsize - ((long int)pool % pgsize));
-
- err = mlock( pool, 4096 );
- if( !err || errno == EPERM )
- return 0; /* okay */
-
- return 1; /* hmmm */
- }
-
- ],
- gnupg_cv_have_broken_mlock="no",
- gnupg_cv_have_broken_mlock="yes",
- gnupg_cv_have_broken_mlock="assume-no"
- )
- )
- if test "$gnupg_cv_have_broken_mlock" = "yes"; then
- AC_DEFINE(HAVE_BROKEN_MLOCK,1,
- [Defined if the mlock() call does not work])
- AC_MSG_RESULT(yes)
- else
- if test "$gnupg_cv_have_broken_mlock" = "no"; then
- AC_MSG_RESULT(no)
- else
- AC_MSG_RESULT(assuming no)
- fi
- ...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-17 22:06:59
|
Revision: 480
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=480&view=rev
Author: fredm
Date: 2008-02-17 14:06:57 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
Add entries for newly-supported tape and snap formats.
Modified Paths:
--------------
trunk/FuseImporter/Info.plist
trunk/fuse/fusepb/Info-Fuse.plist
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
Modified: trunk/FuseImporter/Info.plist
===================================================================
--- trunk/FuseImporter/Info.plist 2008-02-17 02:02:27 UTC (rev 479)
+++ trunk/FuseImporter/Info.plist 2008-02-17 22:06:57 UTC (rev 480)
@@ -17,19 +17,23 @@
<string>net.sourceforge.projects.fuse-emulator.Tape</string>
<string>net.sourceforge.projects.fuse-emulator.MassStorage</string>
<string>net.sourceforge.projects.fuse-emulator.Cartridge</string>
+ <string>net.sourceforge.projects.fuse-emulator.csw</string>
<string>net.sourceforge.projects.fuse-emulator.dck</string>
- <string>net.sourceforge.projects.fuse-emulator.csw</string>
+ <string>net.sourceforge.projects.fuse-emulator.dsk</string>
<string>net.sourceforge.projects.fuse-emulator.hdf</string>
- <string>net.sourceforge.projects.fuse-emulator.dsk</string>
+ <string>net.sourceforge.projects.fuse-emulator.ltp</string>
<string>net.sourceforge.projects.fuse-emulator.mgt</string>
+ <string>net.sourceforge.projects.fuse-emulator.mgtsnp</string>
<string>net.sourceforge.projects.fuse-emulator.rzx</string>
<string>net.sourceforge.projects.fuse-emulator.scl</string>
<string>net.sourceforge.projects.fuse-emulator.scr</string>
<string>net.sourceforge.projects.fuse-emulator.slt</string>
<string>net.sourceforge.projects.fuse-emulator.sna</string>
+ <string>net.sourceforge.projects.fuse-emulator.snp</string>
<string>net.sourceforge.projects.fuse-emulator.sp</string>
+ <string>net.sourceforge.projects.fuse-emulator.spc</string>
+ <string>net.sourceforge.projects.fuse-emulator.sta</string>
<string>net.sourceforge.projects.fuse-emulator.szx</string>
- <string>net.sourceforge.projects.fuse-emulator.snp</string>
<string>net.sourceforge.projects.fuse-emulator.tap</string>
<string>net.sourceforge.projects.fuse-emulator.trd</string>
<string>net.sourceforge.projects.fuse-emulator.tzx</string>
@@ -445,6 +449,74 @@
</array>
</dict>
</dict>
+ <dict>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.Tape</string>
+ </array>
+ <key>UTTypeDescription</key>
+ <string>ZX Spectrum SPC Tape Image</string>
+ <key>UTTypeIdentifier</key>
+ <string>net.sourceforge.projects.fuse-emulator.spc</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>spc</string>
+ </array>
+ </dict>
+ </dict>
+ <dict>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.Tape</string>
+ </array>
+ <key>UTTypeDescription</key>
+ <string>ZX Spectrum STA Tape Image</string>
+ <key>UTTypeIdentifier</key>
+ <string>net.sourceforge.projects.fuse-emulator.sta</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>sta</string>
+ </array>
+ </dict>
+ </dict>
+ <dict>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.Tape</string>
+ </array>
+ <key>UTTypeDescription</key>
+ <string>ZX Spectrum LTP Tape Image</string>
+ <key>UTTypeIdentifier</key>
+ <string>net.sourceforge.projects.fuse-emulator.ltp</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>ltp</string>
+ </array>
+ </dict>
+ </dict>
+ <dict>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.Snapshot</string>
+ </array>
+ <key>UTTypeDescription</key>
+ <string>ZX Spectrum +D Snapshot</string>
+ <key>UTTypeIdentifier</key>
+ <string>net.sourceforge.projects.fuse-emulator.mgtsnp</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>mgtsnp</string>
+ </array>
+ </dict>
+ </dict>
</array>
</dict>
</plist>
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2008-02-17 02:02:27 UTC (rev 479)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2008-02-17 22:06:57 UTC (rev 480)
@@ -221,6 +221,23 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
+ <string>wav</string>
+ <string>WAV</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>blank</string>
+ <key>CFBundleTypeName</key>
+ <string>ZX Spectrum Tape Image</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.wav</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
<string>raw</string>
<string>RAW</string>
</array>
@@ -289,6 +306,57 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
+ <string>spc</string>
+ <string>SPC</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>blank</string>
+ <key>CFBundleTypeName</key>
+ <string>ZX Spectrum Tape Image</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.spc</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>sta</string>
+ <string>STA</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>blank</string>
+ <key>CFBundleTypeName</key>
+ <string>ZX Spectrum Tape Image</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.sta</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>ltp</string>
+ <string>LTP</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>blank</string>
+ <key>CFBundleTypeName</key>
+ <string>ZX Spectrum Tape Image</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.ltp</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
<string>z80</string>
<string>Z80</string>
</array>
@@ -344,6 +412,23 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
+ <string>mgtsnp</string>
+ <string>MGTSNP</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>blank</string>
+ <key>CFBundleTypeName</key>
+ <string>ZX Spectrum Snapshot</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.mgtsnp</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
<string>img</string>
<string>IMG</string>
</array>
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-02-17 02:02:27 UTC (rev 479)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-17 22:06:57 UTC (rev 480)
@@ -162,9 +162,10 @@
NSArray *compressedFileTypes = [NSArray arrayWithObjects:@"gz", @"GZ",
@"bz2", @"BZ2", nil];
- snapFileTypes = [NSMutableArray arrayWithObjects:@"slt", @"SLT", @"sna",
- @"SNA", @"sp", @"SP", @"szx", @"SZX", @"snp", @"SNP",
- @"z80", @"Z80", @"zxs", @"ZXS", nil];
+ snapFileTypes = [NSMutableArray arrayWithObjects:@"mgtsnp", @"MGTSNP",
+ @"slt", @"SLT", @"sna", @"SNA", @"sp", @"SP", @"szx",
+ @"SZX", @"snp", @"SNP", @"z80", @"Z80", @"zxs", @"ZXS",
+ nil];
[snapFileTypes retain];
dckFileTypes = [NSMutableArray arrayWithObjects:@"dck", @"DCK", nil];
@@ -185,9 +186,9 @@
scrFileType = [NSMutableArray arrayWithObjects:@"scr", @"SCR", nil];
[scrFileType retain];
- tapeFileTypes = [NSMutableArray arrayWithObjects:@"tap", @"tzx", @"csw",
- @"raw", @"wav",@"TAP", @"TZX", @"CSW", @"RAW", @"WAV",
- nil];
+ tapeFileTypes = [NSMutableArray arrayWithObjects:@"csw", @"ltp", @"raw",
+ @"spc", @"sta", @"tap", @"tzx", @"wav", @"CSW", @"LTP",
+ @"RAW", @"SPC", @"STA", @"TAP", @"TZX", @"WAV", nil];
[tapeFileTypes retain];
plus3FileTypes = [NSMutableArray arrayWithObjects:@"dsk", @"DSK", nil];
Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
===================================================================
--- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-02-17 02:02:27 UTC (rev 479)
+++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-02-17 22:06:57 UTC (rev 480)
@@ -14,7 +14,7 @@
name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font>
<div class="refsect1" xml:lang="en" lang="en">
<h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
-For Mac OS X 20070728</font></h2>
+For Mac OS X 20080217</font></h2>
<ul>
<li><font face="Lucida Grande,Helvetica,Arial">New
features:</font></li>
@@ -39,7 +39,7 @@
<li><font face="Lucida Grande,Helvetica,Arial">Add Hi-Fi beeper
option for improved reproduction of multi-channel beeper tunes (e.g.
Fairlight
-2, Wham - the Music Box) (Fredrick Meunier).</font></li>
+2 and Wham - the Music Box) (Fredrick Meunier).</font></li>
<li><font face="Lucida Grande,Helvetica,Arial">Add support for
saving tape images without using tape traps (Fredrick
Meunier).<br>
@@ -51,10 +51,15 @@
saving CSW tape
images and TZX
direct recording blocks (Fredrick Meunier).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Add support for
+loading from SPC, STA and LTP tape formats (Stuart Brady).<br>
+ </font></li>
<li><font face="Lucida Grande,Helvetica,Arial">Allow distinction
between "soft" resets (activing the reset line on the Z80) and "hard"
-resets (pulling the power) (Philip Kendall).<br>
- </font></li>
+resets (pulling the power) (Philip Kendall).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Add support for
+saving Interface I state information to z80 and szx snapshots (Fredrick
+Meunier).</font></li>
</ul>
</li>
<li><font face="Lucida Grande,Helvetica,Arial">Emulation core
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-17 02:02:30
|
Revision: 479
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=479&view=rev
Author: fredm
Date: 2008-02-16 18:02:27 -0800 (Sat, 16 Feb 2008)
Log Message:
-----------
Merge up to vendor Fuse 0.9.0.
Modified Paths:
--------------
trunk/fuse/ChangeLog
trunk/fuse/Makefile.am
trunk/fuse/README
trunk/fuse/ay.c
trunk/fuse/compat/Makefile.am
trunk/fuse/compat/win32/osname.c
trunk/fuse/configure.in
trunk/fuse/disk/beta.c
trunk/fuse/disk/beta.h
trunk/fuse/disk/disk.c
trunk/fuse/disk/disk.h
trunk/fuse/disk/fdd.c
trunk/fuse/disk/fdd.h
trunk/fuse/disk/plusd.c
trunk/fuse/disk/plusd.h
trunk/fuse/disk/wd_fdc.c
trunk/fuse/disk/wd_fdc.h
trunk/fuse/display.c
trunk/fuse/divide.c
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/Info-Fuse.plist
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/keyedobjects.nib
trunk/fuse/fusepb/resources/Fuse Help/Fuse Help idx
trunk/fuse/fusepb/resources/Fuse Help/Fuse Help.helpindex
trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
trunk/fuse/fusepb/resources/Fuse Help/html/menus.html
trunk/fuse/fusepb/resources/Fuse Help/html/preferences.html
trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html
trunk/fuse/fusepb/resources/Fuse Help/html/trdos.html
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
trunk/fuse/hacking/ChangeLog
trunk/fuse/hacking/cvs-tags
trunk/fuse/hacking/tc2048_tech_notes.txt
trunk/fuse/if1.c
trunk/fuse/if1.h
trunk/fuse/if2.c
trunk/fuse/input.c
trunk/fuse/joystick.c
trunk/fuse/kempmouse.c
trunk/fuse/keyboard.c
trunk/fuse/machine.c
trunk/fuse/machines/Makefile.am
trunk/fuse/machines/machines.h
trunk/fuse/machines/pentagon.c
trunk/fuse/machines/pentagon1024.c
trunk/fuse/machines/pentagon512.c
trunk/fuse/machines/scorpion.c
trunk/fuse/machines/spec128.c
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/ts2068.c
trunk/fuse/man/fuse.1
trunk/fuse/memory.c
trunk/fuse/menu.c
trunk/fuse/menu.h
trunk/fuse/menu_data.dat
trunk/fuse/menu_data.pl
trunk/fuse/module.c
trunk/fuse/module.h
trunk/fuse/periph.c
trunk/fuse/periph.h
trunk/fuse/printer.c
trunk/fuse/profile.c
trunk/fuse/scld.c
trunk/fuse/settings.dat
trunk/fuse/settings.pl
trunk/fuse/simpleide.c
trunk/fuse/slt.c
trunk/fuse/snapshot.c
trunk/fuse/sound/alsasound.c
trunk/fuse/sound/sdlsound.c
trunk/fuse/spectrum.c
trunk/fuse/spectrum.h
trunk/fuse/tape.c
trunk/fuse/tape.h
trunk/fuse/ui/cocoa/cocoaui.m
trunk/fuse/ui/fb/fbdisplay.c
trunk/fuse/ui/fb/fbmouse.c
trunk/fuse/ui/gtk/binary.c
trunk/fuse/ui/gtk/confirm.c
trunk/fuse/ui/gtk/fileselector.c
trunk/fuse/ui/gtk/gtkjoystick.c
trunk/fuse/ui/gtk/gtkui.c
trunk/fuse/ui/gtk/pokefinder.c
trunk/fuse/ui/gtk/rollback.c
trunk/fuse/ui/gtk/roms.c
trunk/fuse/ui/options.dat
trunk/fuse/ui/sdl/sdlui.c
trunk/fuse/ui/ui.h
trunk/fuse/ui/win32/Makefile.am
trunk/fuse/ui/win32/error.c
trunk/fuse/ui/win32/win32internals.h
trunk/fuse/ui/win32/win32ui.c
trunk/fuse/ui.c
trunk/fuse/ula.c
trunk/fuse/utils.c
trunk/fuse/widget/browse.c
trunk/fuse/widget/filesel.c
trunk/fuse/widget/menu.c
trunk/fuse/widget/options.pl
trunk/fuse/widget/roms.c
trunk/fuse/widget/widget.c
trunk/fuse/widget/widget.h
trunk/fuse/widget/widget_internals.h
trunk/fuse/z80/coretest.c
trunk/fuse/z80/tests/Makefile.am
trunk/fuse/z80/z80.c
trunk/fuse/z80/z80.pl
trunk/fuse/z80/z80_macros.h
trunk/fuse/z80/z80_ops.c
trunk/fuse/zxatasp.c
trunk/fuse/zxcf.c
Added Paths:
-----------
trunk/fuse/fusepb/resources/Fuse Help/html/formats.html
trunk/fuse/machines/pentagon.h
Modified: trunk/fuse/ChangeLog
===================================================================
--- trunk/fuse/ChangeLog 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/ChangeLog 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,6 +1,6 @@
-2007-xx-xx Philip Kendall <phi...@sh...>
+2008-01-05 Philip Kendall <phi...@sh...>
- * Fuse 0.x.x released
+ * Fuse 0.9.0 released
* New features:
* Add +D disk interface support (Stuart Brady).
@@ -26,14 +26,43 @@
* Fix undocumented flags after BIT n,(IX+d) instructions (Philip
Kendall).
* Fix undocumented behaviour of DAA (Stuart Brady).
- * Separate out contention when MREQ isn't active, as the +2A/+3 ULA
- applies contention only when MREQ is active (Philip Kendall).
+ * High ports (0xc000 to 0xffff) are contended on the 128K when a
+ contended RAM page is paged in (Philip Kendall; thanks, Patrik
+ Rak).
+ * Correct contention for the +2A/+3 ULA (Philip Kendall).
+ * Machine specific improvements:
+ * Fix joystick port mask on TC2048 (Fredrick Meunier)
+ * Improved keyboard handling for 128K / +3 machines (Philip Kendall).
+ * Improved contention for TC2048 and TC2068 machines (Fredrick
+ Meunier; thanks, Mark Woodmass).
+
* Miscellaneous:
- * Removed the GTK 1.x UI (please note that GTK 2.x will remain
+ * Emulation speed no longer artificially limited to 999% (Stuart
+ Brady).
+ * Much improved debugger for the widget UIs (Darren Salt).
+ * Timed breakpoints now work in the debugger (Philip Kendall).
+ * Keys now repeat in the widget fileselector (Fredrick Meunier;
+ thanks, Cygnus).
+ * Removed the GTK+ 1.x UI (please note that GTK+ 2.x will remain
supported for the foreseeable future) (Philip Kendall).
+ * GTK+ UI now uses the GTK+ 2.x style file selectors (Philip
+ Kendall).
+ * More informative error messages when ejecting disks (Stuart
+ Brady).
+ * Ejecting Microdrive cartridges now checks for changes and doesn't
+ automatically overwrite the original file (Stuart Brady).
+ * Snapshots can no longer cause the profiler to assert (Philip
+ Kendall; thanks, Stuart Brady).
+ * DivIDE could page itself in incorrectly after a reset (Stuart
+ Brady).
+ * Stop invalid input causing segfault in GTK+ 'Load Binary Chunk'
+ dialog, and allow a length of 65536 to be used (Stuart Brady).
* Enable Fuse to build in directories other than the source
directory itself (Philip Kendall).
+ * 'make clean' now cleans generated files (Philip Kendall).
+ * Update +3e ROMs to v1.31 (Fredrick Meunier; thanks, Garry
+ Lancaster).
* Updated X11 UI (Gergely Szasz).
* Updated Win32 UI (Stuart Brady).
* Man page fixes (Stuart Brady).
@@ -69,7 +98,7 @@
when the start/end of a loader is detected (Philip Kendall).
* RZX 'rollback' support (Philip Kendall).
* DivIDE support (Matthew Westcott)
- * Interface I and microdrive emulation (Gergely Szasz).
+ * Interface I and Microdrive emulation (Gergely Szasz).
* TS2068 support (Fredrick Meunier).
* Kempston mouse emulation (Darren Salt).
* TZX generalized data block (0x19) support (Philip Kendall).
@@ -218,7 +247,7 @@
+ Stop output to the serial printer when printer emulation is
disabled; prevents the random appearance of 'printout.txt'
(Philip Kendall).
-
+
2004-02-19 Philip Kendall <pak...@sr...>
* Fuse 0.6.2.1 released.
@@ -261,7 +290,7 @@
printer emulation (Philip Kendall).
* Z80 core improvements:
- + Improved memory handling. Should be both quicker and more
+ + Improved memory handling. Should be both quicker and more
flexible.
+ Support for retriggered interrupts.
+ Don't allow interrupts after an EI instruction.
@@ -312,7 +341,7 @@
+ Make reading from both Timex joysticks simultaneously work
correctly (Fredrick Meunier).
+ Remove a possible segfault caused by the tape initialisation
- code trying to access the tape beeper before the beeper code
+ code trying to access the tape beeper before the beeper code
has been fully initialised (Witold Filipczyk, Fredrick Meunier).
+ Get the pause lengths correct when writing PSG files
(Russell Marks, Philip Kendall).
@@ -715,7 +744,7 @@
* Changed the default install location to `/usr/local' (Philip
Kendall).
- * Generate keysyms.c from keysyms.dat; allows me automatically
+ * Generate keysyms.c from keysyms.dat; allows me automatically
keep the Xlib/GTK+ and svgalib key tables in sync (Philip
Kendall).
@@ -849,4 +878,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog 3253 2007-10-26 02:02:17Z zubzero $
+$Id: ChangeLog 3462 2008-01-04 09:34:40Z pak21 $
Modified: trunk/fuse/Makefile.am
===================================================================
--- trunk/fuse/Makefile.am 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/Makefile.am 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
# Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3218 2007-10-21 23:25:23Z zubzero $
+## $Id: Makefile.am 3318 2007-11-21 19:25:31Z 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
@@ -25,7 +25,7 @@
bin_PROGRAMS = fuse
-SUBDIRS = compat \
+SUBDIRS = @COMPAT_SUBDIR@ \
debugger \
disk \
hacking \
@@ -41,8 +41,7 @@
@WIDGET@ \
z80
-DIST_SUBDIRS = compat \
- debugger \
+DIST_SUBDIRS = debugger \
disk \
hacking \
lib \
@@ -97,6 +96,18 @@
zxatasp.c \
zxcf.c
+if COMPAT_DIRNAME
+fuse_SOURCES += compat/dirname.c
+endif
+
+if COMPAT_GETOPT
+fuse_SOURCES += compat/getopt.c compat/getopt1.c
+endif
+
+if COMPAT_MKSTEMP
+fuse_SOURCES += compat/mkstemp.c
+endif
+
EXTRA_fuse_SOURCES = windres.rc
fuse_LDADD = debugger/libdebugger.a \
@@ -117,7 +128,6 @@
@SAMPLERATE_LIBS@ \
@X_LIBS@ \
@XML_LIBS@ \
-compat/libcompat.a \
compat/@COMPAT_OSNAME@/libcompatos.a \
@WINDRES_OBJ@
@@ -195,3 +205,7 @@
CLEANFILES = settings.c \
settings.h
+
+AM_CPPFLAGS =
+
+include compat/Makefile.am
Modified: trunk/fuse/README
===================================================================
--- trunk/fuse/README 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/README 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,5 +1,5 @@
-The Free Unix Spectrum Emulator (Fuse) 0.8.0.1
-==============================================
+The Free Unix Spectrum Emulator (Fuse) 0.9.0
+============================================
Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home
@@ -10,10 +10,11 @@
What Fuse does have:
-* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048,
- TC2068 and TS2068, Pentagon 128 and Scorpion ZS 256 emulation,
- running at true Speccy speed on any computer you're likely to try it
- on.
+* Accurate Spectrum 16K/48K/128K/+2/+2A/+3 emulation.
+* Working Spectrum +3e and SE, Timex TC2048, TC2068 and TS2068,
+ Pentagon 128, "512" (Pentagon 128 with extra memory) and 1024 and
+ Scorpion ZS 256 emulation.
+* Runs at true Speccy speed on any computer you're likely to try it on.
* Support for loading from .tzx files.
* Sound (on systems supporting the Open Sound System, SDL, or OpenBSD/
Solaris's /dev/audio).
@@ -23,7 +24,7 @@
* Support for the RZX input recording file format, including
rollback and 'competition mode'.
* Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e,
- ZXATASP and ZXCF interfaces.
+ ZXATASP, ZXCF, Beta 128 and +D interfaces.
What you'll need to run Fuse
----------------------------
@@ -62,6 +63,11 @@
* Either the native port by Fredrick Meunier, or the original version
will compile on OS X 10.3 (Panther) or later.
+Windows
+
+* The Win32 and SDL UIs can be used under Windows, but the Win32 UI is
+ incomplete.
+
Building Fuse
-------------
@@ -141,6 +147,6 @@
( http://www.worldofspectrum.org/faq/index.html ) first!
Philip Kendall <phi...@sh...>
-11 May 2007
+5 January 2008
-$Id: README,v 1.40 2007/02/02 16:21:50 pak21 Exp $
+$Id: README 3462 2008-01-04 09:34:40Z pak21 $
Modified: trunk/fuse/ay.c
===================================================================
--- trunk/fuse/ay.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/ay.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* ay.c: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.c 3213 2007-10-21 16:37:52Z pak21 $
+ $Id: ay.c 3390 2007-12-03 12:59:54Z 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
@@ -25,6 +25,8 @@
#include <config.h>
+#include <string.h>
+
#include "compat.h"
#include "machine.h"
#include "module.h"
@@ -49,6 +51,7 @@
ay_reset,
NULL,
+ NULL,
ay_from_snapshot,
ay_to_snapshot,
Modified: trunk/fuse/compat/Makefile.am
===================================================================
--- trunk/fuse/compat/Makefile.am 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/compat/Makefile.am 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
+## $Id: Makefile.am 3283 2007-11-09 12:21:06Z 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
@@ -21,29 +21,16 @@
##
## E-mail: phi...@sh...
-AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS += -I$(srcdir)/compat
-AM_CPPFLAGS = -I$(srcdir)/..
+DIST_SUBDIRS += compat/amiga \
+ compat/morphos \
+ compat/unix \
+ compat/win32
-SUBDIRS = @COMPAT_OSNAME@
+EXTRA_fuse_SOURCES += compat/dirname.c \
+ compat/getopt.c \
+ compat/getopt1.c \
+ compat/mkstemp.c
-DIST_SUBDIRS = amiga \
- morphos \
- unix \
- win32
-
-noinst_LIBRARIES = libcompat.a
-
-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
+noinst_HEADERS += compat/getopt.h
Modified: trunk/fuse/compat/win32/osname.c
===================================================================
--- trunk/fuse/compat/win32/osname.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/compat/win32/osname.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -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 3163 2007-09-06 21:41:45Z zubzero $
+ $Id: osname.c 3315 2007-11-20 03:01:59Z 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
@@ -49,9 +49,10 @@
default: windows_name = "unknown"; break;
}
- snprintf( osname, length, "Windows %s %ld.%ld build %ld %s",
- windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
- buf.dwBuildNumber, buf.szCSDVersion );
+ /* The casts to int work around a suspected Wine (or MinGW) bug */
+ snprintf( osname, length, "Windows %s %i.%i build %i %s",
+ windows_name, (int)buf.dwMajorVersion, (int)buf.dwMinorVersion,
+ (int)buf.dwBuildNumber, buf.szCSDVersion );
return 0;
}
Modified: trunk/fuse/configure.in
===================================================================
--- trunk/fuse/configure.in 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/configure.in 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3253 2007-10-26 02:02:17Z zubzero $
+dnl $Id: configure.in 3429 2007-12-18 20:02:35Z 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
@@ -24,7 +24,7 @@
AC_CANONICAL_SYSTEM
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(fuse, 0.8.0.1)
+AM_INIT_AUTOMAKE(fuse, 0.9.0)
dnl Checks for programs.
AC_PROG_CC
@@ -581,32 +581,31 @@
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
+AM_CONDITIONAL(COMPAT_DIRNAME, test "$ac_cv_func_dirname" = no)
if test "$ac_cv_func_getopt_long" = no; then
case "$target_os" in
amigaos|morphos)
dnl Our getopt_long replacement doesn't work, so don't use it
;;
*)
- COMPAT_LIBADD="$COMPAT_LIBADD"'getopt.$(OBJEXT) getopt1.$(OBJEXT) '
+ compat_getopt=yes
missing_routines="$missing_routines"'getopt_long '
;;
esac
fi
+AM_CONDITIONAL(COMPAT_GETOPT, test "$compat_getopt" = yes)
if test "$ac_cv_func_mkstemp" = no; then
- COMPAT_LIBADD="$COMPAT_LIBADD"'mkstemp.$(OBJEXT) '
missing_routines="$missing_routines"'mkstemp '
fi
+AM_CONDITIONAL(COMPAT_MKSTEMP, test "$ac_cv_func_mkstemp" = no)
if test "x$missing_routines" = x; then
missing_routines='(none)'
fi
AC_MSG_RESULT($missing_routines)
-AC_SUBST(COMPAT_LIBADD)
dnl Work out which compatibility routines to use
AC_MSG_CHECKING(which compatibility routines to use)
@@ -625,6 +624,8 @@
;;
esac
AC_MSG_RESULT($COMPAT_OSNAME)
+COMPAT_SUBDIR="compat/$COMPAT_OSNAME"
+AC_SUBST(COMPAT_SUBDIR)
AC_SUBST(COMPAT_OSNAME)
dnl Do we want the low memory compile?
@@ -664,7 +665,6 @@
fi
AC_OUTPUT(Makefile \
-compat/Makefile \
compat/amiga/Makefile \
compat/morphos/Makefile \
compat/unix/Makefile \
@@ -688,6 +688,7 @@
ui/sdl/Makefile \
ui/scaler/Makefile \
ui/win32/Makefile \
+ui/win32/icons/Makefile \
ui/xlib/Makefile \
widget/Makefile \
z80/Makefile \
Modified: trunk/fuse/disk/beta.c
===================================================================
--- trunk/fuse/disk/beta.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/beta.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* 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 $
+ $Id: beta.c 3400 2007-12-04 18:24:31Z 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
@@ -56,32 +56,41 @@
int beta_available = 0;
int beta_active = 0;
+int beta_builtin = 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 );
+const periph_t beta_peripherals[] = {
+ { 0x00ff, 0x001f, beta_sr_read, beta_cr_write },
+ { 0x00ff, 0x003f, beta_tr_read, beta_tr_write },
+ { 0x00ff, 0x005f, beta_sec_read, beta_sec_write },
+ { 0x00ff, 0x007f, beta_dr_read, beta_dr_write },
+ { 0x00ff, 0x00ff, beta_sp_read, beta_sp_write },
+};
+
+const size_t beta_peripherals_count =
+ sizeof( beta_peripherals ) / sizeof( periph_t );
+
+static void beta_reset( int hard_reset );
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_reset,
beta_memory_map,
+ NULL, /* XXX: beta_enabled_snapshot */
beta_from_snapshot,
beta_to_snapshot,
};
-
void
beta_page( void )
{
@@ -107,24 +116,6 @@
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 )
{
@@ -140,26 +131,32 @@
}
beta_fdc->dden = 1;
- beta_fdc->set_intrq = beta_set_intrq;
+ beta_fdc->set_intrq = NULL;
beta_fdc->reset_intrq = NULL;
- beta_fdc->set_datarq = beta_set_datarq;
- beta_fdc->reset_datarq = beta_reset_datarq;
+ beta_fdc->set_datarq = NULL;
+ beta_fdc->reset_datarq = NULL;
module_register( &beta_module_info );
return 0;
}
-void
-beta_reset( void )
+static void
+beta_reset( int hard_reset )
{
int i;
wd_fdc_drive *d;
- beta_active = 0;
-
event_remove_type( EVENT_TYPE_BETA_INDEX );
+ if( !periph_beta128_active ) {
+ beta_active = 0;
+ beta_available = 0;
+ return;
+ }
+
+ beta_available = 1;
+
wd_fdc_master_reset( beta_fdc );
for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
@@ -169,15 +166,37 @@
d->index_interrupt = 0;
}
+ if( !beta_builtin ) {
+ machine_load_rom_bank( memory_map_romcs, 0, 0,
+ settings_current.rom_beta128,
+ settings_default.rom_beta128, 0x4000 );
+
+ memory_map_romcs[ 0 ].writable = 0;
+ memory_map_romcs[ 1 ].writable = 0;
+
+ memory_map_romcs[0].source = MEMORY_SOURCE_PERIPHERAL;
+ memory_map_romcs[1].source = MEMORY_SOURCE_PERIPHERAL;
+
+ beta_active = 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_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
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_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
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_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT,
beta_drives[ BETA_DRIVE_D ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
beta_fdc->current_drive = &beta_drives[ 0 ];
machine_current->memory_map();
@@ -195,7 +214,7 @@
libspectrum_byte
beta_sr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_sr_read( beta_fdc );
@@ -212,7 +231,7 @@
libspectrum_byte
beta_tr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_tr_read( beta_fdc );
@@ -229,7 +248,7 @@
libspectrum_byte
beta_sec_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_sec_read( beta_fdc );
@@ -246,7 +265,7 @@
libspectrum_byte
beta_dr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_dr_read( beta_fdc );
@@ -278,21 +297,19 @@
{
libspectrum_byte b;
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
b = 0;
- if( beta_intrq )
+ if( beta_fdc->intrq )
b |= 0x80;
- if( beta_datarq )
+ if( beta_fdc->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;
}
@@ -317,30 +334,50 @@
/* 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;
+
+ if( filename ) {
+ error = disk_open( &d->disk, filename, 0 );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( d->disk.status ) );
+ return 1;
+ }
+ } else {
+ error = disk_new( &d->disk, 2, 80, DISK_DENS_AUTO, DISK_UDI );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to create 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 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
break;
case BETA_DRIVE_B:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
break;
case BETA_DRIVE_C:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
break;
case BETA_DRIVE_D:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
break;
}
- if( autoload ) {
+ if( filename && autoload ) {
PC = 0;
machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */
beta_page();
@@ -350,16 +387,47 @@
}
int
-beta_disk_insert_default_autoload( beta_drive_number which,
- const char *filename )
+beta_disk_writeprotect( beta_drive_number which, int wrprot )
{
- return beta_disk_insert( which, filename, settings_current.auto_load );
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES )
+ return 1;
+
+ d = &beta_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 1;
+
+ fdd_wrprot( &d->fdd, wrprot );
+
+ /* Set the 'writeprotect' item */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
+ break;
+ }
+ return 0;
}
int
beta_disk_eject( beta_drive_number which, int write )
{
wd_fdc_drive *d;
+ char drive;
if( which >= BETA_NUM_DRIVES )
return 1;
@@ -377,8 +445,18 @@
if( d->disk.dirty ) {
+ switch( which ) {
+ case BETA_DRIVE_A: drive = 'A'; break;
+ case BETA_DRIVE_B: drive = 'B'; break;
+ case BETA_DRIVE_C: drive = 'C'; break;
+ case BETA_DRIVE_D: drive = 'D'; break;
+ default: drive = '?'; break;
+ }
+
ui_confirm_save_t confirm = ui_confirm_save(
- "Disk has been modified.\nDo you want to save it?"
+ "Disk in Beta drive %c: has been modified.\n"
+ "Do you want to save it?",
+ drive
);
switch( confirm ) {
@@ -434,13 +512,6 @@
}
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;
@@ -496,6 +567,7 @@
int attached;
wd_fdc *f = beta_fdc;
+ libspectrum_snap_set_beta_active( snap, 1 );
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 ) );
Modified: trunk/fuse/disk/beta.h
===================================================================
--- trunk/fuse/disk/beta.h 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/beta.h 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* 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 $
+ $Id: beta.h 3400 2007-12-04 18:24:31Z 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
@@ -30,9 +30,15 @@
#include <libspectrum.h>
+#include "periph.h"
+
extern int beta_available; /* Is the Beta disk interface available for use? */
extern int beta_active; /* Is the Beta disk interface enabled? */
+extern int beta_builtin; /* Is the Beta disk interface built-in? */
+extern const periph_t beta_peripherals[];
+extern const size_t beta_peripherals_count;
+
int beta_init( void );
void beta_end( void );
@@ -63,15 +69,11 @@
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_writeprotect( beta_drive_number which, int wrprot );
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 */
Modified: trunk/fuse/disk/disk.c
===================================================================
--- trunk/fuse/disk/disk.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/disk.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* disk.c: Routines for handling disk images
Copyright (c) 2007 Gergely Szasz
- $Id: disk.c 3226 2007-10-23 14:01:20Z zubzero $
+ $Id: disk.c 3471 2008-01-05 18:14:15Z 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,6 +25,7 @@
#include <config.h>
+#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -458,7 +459,7 @@
}
static int
-calc_sectorlen( disk_t *d, int sector_length, int gap )
+calc_sectorlen( int mfm, int sector_length, int gap )
{
int len = 0;
disk_gap_t *g = &gaps[ gap ];
@@ -467,7 +468,7 @@
len += 7;
/*------------------------------ GAP II ------------------------------*/
len += g->len[2] + g->sync_len;
- if( d->density != DISK_SD )
+ if( mfm )
len += 3;
/*--------------------------------- data ---------------------------------*/
len += 1; /* DAM */
@@ -475,7 +476,7 @@
len += 2; /* CRC */
/*------------------------------ GAP III ------------------------------*/
len += g->len[3] + g->sync_len;
- if( d->density != DISK_SD )
+ if( mfm )
len += 3;
return len;
}
@@ -486,12 +487,13 @@
#define PREINDEX 1
static int
-trackgen( disk_t *d, FILE *file, int head, int track, int sector_base,
- int sectors, int sector_length, int preindex, int gap, int interleave,
- int autofill )
+trackgen( disk_t *d, FILE *file, int head, int track,
+ int sector_base, int sectors, int sector_length, int preindex,
+ int gap, int interleave, int autofill )
{
int i, s, pos;
- int slen = calc_sectorlen( d, sector_length, gap );
+ int slen = calc_sectorlen( ( d->density != DISK_SD && d->density != DISK_8_SD ),
+ sector_length, gap );
int idx;
d->i = 0;
@@ -524,10 +526,6 @@
void
disk_close( disk_t *d )
{
- if( d->filename != NULL ) {
- free( d->filename );
- d->filename = NULL;
- }
if( d->data != NULL ) {
free( d->data );
d->data = NULL;
@@ -548,17 +546,27 @@
if( d->density != DISK_DENS_AUTO ) {
d->bpt = disk_bpt[ d->density ];
- } else if( d->bpt > 12000 ) {
+ } else if( d->bpt > 13000 ) {
return d->status = DISK_UNSUP;
- } else if( d->bpt > 6000 ) {
+ } else if( d->bpt > 10600 ) {
+ d->density = DISK_HD;
d->bpt = disk_bpt[ DISK_HD ];
- } else if( d->bpt > 3000 ) {
+ } else if( d->bpt > 6500 ) {
+ d->density = DISK_8_DD;
+ d->bpt = disk_bpt[ DISK_8_DD ];
+ } else if( d->bpt > 5300 ) {
+ d->density = DISK_DD;
d->bpt = disk_bpt[ DISK_DD ];
+ } else if( d->bpt > 3250 ) {
+ d->density = DISK_8_SD;
+ d->bpt = disk_bpt[ DISK_8_SD ];
} else if( d->bpt > 0 ) {
+ d->density = DISK_SD;
d->bpt = disk_bpt[ DISK_SD ];
}
- d->tlen = d->bpt + d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 );
+ if( d->bpt > 0 )
+ d->tlen = d->bpt + d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 );
dlen = d->sides * d->cylinders * d->tlen; /* track len with clock marks */
if( ( d->data = calloc( 1, dlen ) ) == NULL )
@@ -586,8 +594,8 @@
if( disk_alloc( d ) != DISK_OK )
return d->status;
- d->filename = NULL;
-
+ d->wrprot = 0;
+ d->dirty = 0;
return d->status = DISK_OK;
}
@@ -611,7 +619,7 @@
static int
open_udi( FILE *file, disk_t *d )
{
- int i, bpt;
+ int i, j, bpt;
d->sides = head[10] + 1;
d->cylinders = head[9] + 1;
@@ -632,8 +640,15 @@
return d->status = DISK_OPEN;
}
+ if( d->bpt == 0 )
+ return d->status = DISK_GEOM;
+
+ bpt = d->bpt; /* save the maximal value */
+ d->tlen = bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 );
+ d->bpt = 0; /* we know exactly the track len... */
if( disk_alloc( d ) != DISK_OK )
return d->status;
+ d->bpt = bpt; /* restore the maximal byte per track */
fseek( file, 16, SEEK_SET );
d->track = d->data;
@@ -644,8 +659,22 @@
if( head[0] != 0x00 )
return d->status = DISK_UNSUP;
/* read track + clocks */
- if( fread( d->track, bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
- return d->status = DISK_OPEN;
+ if( d->bpt == bpt ) { /* if udi track length equal with the maximal track length */
+ if( fread( d->track, bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
+ return d->status = DISK_OPEN;
+ } else {
+ if( fread( d->track, bpt , 1, file ) != 1 ) /* first the data */
+ return d->status = DISK_OPEN;
+ d->track += bpt;
+ for( j = d->bpt - bpt; j > 0; j--, d->track++ )
+ *d->track = 0x4e; /* fill track data with 0x4e */
+ if( fread( d->track, bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
+ return d->status = DISK_OPEN; /* next the clock marks */
+ d->track += bpt / 8 + ( bpt % 8 ? 1 : 0 );
+ for( j = ( d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 ) ) -
+ ( bpt / 8 + ( bpt % 8 ? 1 : 0 ) ); j > 0; j--, d->track++ )
+ *d->track = 0x00; /* fill the clocks with 0x00 */
+ }
d->track += d->tlen;
}
@@ -760,7 +789,8 @@
static int
open_fdi( FILE *file, disk_t *d, int preindex )
{
- int i, j, h, bpt, gap;
+ int i, j, h, gap;
+ int bpt, bpt_fm, max_bpt = 0, max_bpt_fm = 0;
int data_offset, track_offset, head_offset, sector_offset;
d->wrprot = head[0x03] == 1 ? 1 : 0;
@@ -776,29 +806,41 @@
fseek( file, head_offset, SEEK_SET );
if( fread( head, 7, 1, file ) != 1 ) /* 7 := track head */
return d->status = DISK_OPEN;
- bpt = 0;
+ bpt = bpt_fm = 0;
for( j = 0; j < head[0x06]; j++ ) { /* calculate track len */
if( j % 35 == 0 ) { /* 35-sector header */
if( fread( head + 7, 245, 1, file ) != 1 ) /* 7*35 := max 35 sector head */
return d->status = DISK_OPEN;
}
- if( ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) != 0 )
- bpt += 0x80 << head[ 0x0a + 7 * ( j % 35 ) ];
+ if( ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) != 0 ) {
+ bpt += calc_sectorlen( 1, 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], GAP_MINIMAL_MFM );
+ bpt_fm += calc_sectorlen( 0, 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], GAP_MINIMAL_FM );
+ }
}
+ if( bpt > max_bpt )
+ max_bpt = bpt;
+ if( bpt_fm > max_bpt_fm )
+ max_bpt_fm = bpt_fm;
- if( bpt > d->bpt )
- d->bpt = bpt;
-
head_offset += 7 + 7 * head[ 0x06 ];
}
+
+ if( max_bpt == 0 || max_bpt_fm == 0 )
+ return d->status = DISK_GEOM;
d->density = DISK_DENS_AUTO; /* disk_alloc use d->bpt */
+ if( max_bpt_fm < 3000 ) { /* we choose an SD disk with FM */
+ d->bpt = max_bpt_fm;
+ gap = GAP_MINIMAL_FM;
+ } else {
+ d->bpt = max_bpt;
+ gap = GAP_MINIMAL_MFM;
+ }
if( disk_alloc( d ) != DISK_OK )
return d->status;
/* start reading the tracks */
- gap = d->bpt <= 3000 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
-
+
head_offset = h; /* restore head start */
for( i = 0; i < d->cylinders * d->sides; i++ ) { /* ALT */
fseek( file, head_offset, SEEK_SET );
@@ -841,21 +883,33 @@
open_cpc( FILE *file, disk_t *d, disk_type_t type, int preindex )
{
int i, j, seclen, gap;
+ int bpt, max_bpt = 0, max_bpt_fm = 0;
d->sides = head[0x31];
d->cylinders = head[0x30];
if( type == DISK_CPC ) {
- d->bpt = head[0x32] + 256 * head[0x33] - 0x100;
+ max_bpt = calc_sectorlen( 1, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_MFM );
+ max_bpt_fm = calc_sectorlen( 0, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_FM );
} else {
d->bpt = 0;
- for( i = 0; i < d->sides * d->cylinders; i++ )
- if( head[ 0x34 + i ] > d->bpt )
- d->bpt = head[ 0x34 + i ];
- d->bpt <<= 8;
- d->bpt -= 0x100;
+ for( i = 0; i < d->sides * d->cylinders; i++ ) {
+ bpt = calc_sectorlen( 1, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_MFM );
+ if( bpt > max_bpt )
+ max_bpt = bpt;
+ bpt = calc_sectorlen( 0, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_FM );
+ if( bpt > max_bpt_fm )
+ max_bpt_fm = bpt;
+ }
}
+ if( max_bpt == 0 || max_bpt_fm == 0 )
+ return d->status = DISK_GEOM;
d->density = DISK_DENS_AUTO; /* disk_alloc use d->bpt */
+ if( max_bpt_fm < 3000 ) { /* we choose an SD disk with FM */
+ d->bpt = max_bpt_fm;
+ } else {
+ d->bpt = max_bpt;
+ }
if( disk_alloc( d ) != DISK_OK )
return d->status;
@@ -924,7 +978,7 @@
TR-DOS directory */
j = 0; /* index for head[] */
memset( head, 0, 256 );
- seclen = calc_sectorlen( d, 256, GAP_TRDOS ); /* one sector raw length */
+ seclen = calc_sectorlen( 1, 256, GAP_TRDOS ); /* one sector raw length */
for( i = 0; i < scl_files; i++ ) { /* read all entry and build TR-DOS dir */
if( fread( head + j, 14, 1, file ) != 1 )
return d->status = DISK_OPEN;
@@ -990,7 +1044,7 @@
static int
open_td0( FILE *file, disk_t *d, int preindex )
{
- int i, j, s, sectors, seclen, bpt, gap, mfm;
+ int i, j, s, sectors, seclen, bpt, gap, mfm, mfm_old;
int data_offset, track_offset, sector_offset;
unsigned char *buff;
@@ -998,7 +1052,7 @@
return d->status = DISK_IMPL; /* not implemented */
buff = NULL; /* we may use this buffer */
- mfm = head[5] & 0x80 ? 0 : 1; /* td0notes say: may older teledisk
+ mfm_old = head[5] & 0x80 ? 0 : 1; /* td0notes say: may older teledisk
indicate the SD on high bit of
data rate */
d->sides = head[9]; /* 1 or 2 */
@@ -1011,6 +1065,7 @@
/* determine the greatest track length */
d->bpt = 0;
d->cylinders = 0;
+ seclen = 0;
while( 1 ) {
fseek( file, track_offset, SEEK_SET );
if( fread( head, 1, 1, file ) != 1 )
@@ -1023,6 +1078,7 @@
d->cylinders = head[1] + 1;
bpt = 0;
sector_offset = track_offset + 4;
+ mfm = head[2] & 0x80 ? 0 : 1; /* 0x80 == 1 => SD track */
for( s = 0; s < sectors; s++ ) {
fseek( file, sector_offset, SEEK_SET );
if( fread( head, 6, 1, file ) != 1 )
@@ -1031,7 +1087,8 @@
if( fread( head + 6, 3, 1, file ) != 1 ) /* read data header */
return d->status = DISK_OPEN;
- bpt += 0x80 << head[3];
+ bpt += calc_sectorlen( mfm_old || mfm, 0x80 << head[3],
+ mfm_old || mfm ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM );
if( head[3] > seclen )
seclen = head[3]; /* biggest sector */
sector_offset += head[6] + 256 * head[7] - 1;
@@ -1043,6 +1100,9 @@
track_offset = sector_offset;
}
+ if( d->bpt == 0 )
+ return d->status = DISK_GEOM;
+
d->density = DISK_DENS_AUTO;
if( disk_alloc( d ) != DISK_OK )
return d->status;
@@ -1066,7 +1126,7 @@
d->clocks = d->track + d->bpt;
d->i = 0;
/* later teledisk -> if head[2] & 0x80 -> FM track */
- gap = mfm == 0 || head[2] & 0x80 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
+ gap = mfm_old || head[2] & 0x80 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
postindex_add( d, gap );
for( s = 0; s < sectors; s++ ) {
@@ -1249,6 +1309,8 @@
if( access( filename, W_OK ) == -1 ) /* file read only */
d->wrprot = 1;
+ else
+ d->wrprot = 0;
switch ( type ) {
case DISK_UDI:
@@ -1287,14 +1349,9 @@
fclose( file );
return d->status;
}
- if( ( d->filename = malloc( strlen( filename ) + 1 ) ) == NULL ) {
- free( d->data );
- fclose( file );
- return d->status = DISK_MEM;
- }
fclose( file );
- strcpy( d->filename, filename );
d->type = type;
+ d->dirty = 0;
return d->status = DISK_OK;
}
Modified: trunk/fuse/disk/disk.h
===================================================================
--- trunk/fuse/disk/disk.h 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/disk.h 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* fdd.h: Header for handling raw disk images
Copyright (c) 2007 Gergely Szasz
- $Id: disk.h 3207 2007-10-19 20:04:47Z zubzero $
+ $Id: disk.h 3459 2008-01-02 16:40:46Z 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
@@ -74,16 +74,14 @@
typedef enum disk_dens_t {
DISK_DENS_AUTO = 0,
- DISK_8_SD, /* 8" SD floppy 5208 */
+ DISK_8_SD, /* 8" SD floppy 5208 MF */
DISK_8_DD, /* 8" DD floppy 10416 */
- DISK_SD, /* 3125 bpt */
+ DISK_SD, /* 3125 bpt MF */
DISK_DD, /* 6250 bpt */
DISK_HD, /* 12500 bpt*/
} disk_dens_t;
typedef struct disk_t {
- char *filename;
-
int sides; /* 1 or 2 */
int cylinders; /* tracks per side */
int bpt; /* bytes per track */
Modified: trunk/fuse/disk/fdd.c
===================================================================
--- trunk/fuse/disk/fdd.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/fdd.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* fdd.c: Routines for emulating floppy disk drives
Copyright (c) 2007 Gergely Szasz
- $Id: fdd.c 3218 2007-10-21 23:25:23Z zubzero $
+ $Id: fdd.c 3312 2007-11-19 22:02:14Z 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
@@ -203,6 +203,15 @@
}
void
+fdd_wrprot( fdd_t *d, int wrprot )
+{
+ if( !d->loaded )
+ return;
+
+ d->wrprot = d->disk->wrprot = wrprot;
+}
+
+void
fdd_wait_index_hole( fdd_t *d )
{
if( !d->loaded )
Modified: trunk/fuse/disk/fdd.h
===================================================================
--- trunk/fuse/disk/fdd.h 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/fdd.h 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* fdd.h: Header for handling raw disk images
Copyright (c) 2007 Gergely Szasz
- $Id: fdd.h 3204 2007-10-19 15:52:05Z zubzero $
+ $Id: fdd.h 3312 2007-11-19 22:02:14Z 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
@@ -103,6 +103,8 @@
read 0x0100 if disk unreadable or not motor on and/or head not loaded.
*/
int fdd_read_write_data( fdd_t *d, fdd_write_t write );
+/* set write protect status on loaded disk */
+void fdd_wrprot( fdd_t *d, int wrprot );
/* to reach index hole */
void fdd_wait_index_hole( fdd_t *d );
Modified: trunk/fuse/disk/plusd.c
===================================================================
--- trunk/fuse/disk/plusd.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/plusd.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Dmitry Sanarin, Darren Salt
- $Id: plusd.c 3222 2007-10-22 22:08:50Z zubzero $
+ $Id: plusd.c 3398 2007-12-04 12:53: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
@@ -30,6 +30,8 @@
#include <libspectrum.h>
+#include <string.h>
+
#include "compat.h"
#include "machine.h"
#include "module.h"
@@ -53,6 +55,7 @@
static void plusd_reset( int hard_reset );
static void plusd_memory_map( void );
+static void plusd_enabled_snapshot( libspectrum_snap *snap );
static void plusd_from_snapshot( libspectrum_snap *snap );
static void plusd_to_snapshot( libspectrum_snap *snap );
@@ -60,11 +63,14 @@
plusd_reset,
plusd_memory_map,
+ plusd_enabled_snapshot,
plusd_from_snapshot,
plusd_to_snapshot,
};
+static libspectrum_byte plusd_control_register;
+
void
plusd_page( void )
{
@@ -166,6 +172,7 @@
memory_map_romcs[ 1 ].writable = 1;
plusd_available = 1;
+ plusd_active = 1;
plusd_index_pulse = 0;
if( hard_reset )
@@ -183,8 +190,12 @@
/* We can eject disks only if they are currently present */
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_EJECT,
plusd_drives[ PLUSD_DRIVE_1 ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_EJECT,
plusd_drives[ PLUSD_DRIVE_2 ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
plusd_fdc->current_drive = &plusd_drives[ 0 ];
machine_current->memory_map();
@@ -275,6 +286,8 @@
if( !plusd_available ) return;
+ plusd_control_register = b;
+
drive = ( b & 0x03 ) == 2 ? 1 : 0;
side = ( b & 0x80 ) ? 1 : 0;
@@ -331,13 +344,6 @@
}
int
-plusd_disk_insert_default_autoload( plusd_drive_number which,
- const char *filename )
-{
- return plusd_disk_insert( which, filename, settings_current.auto_load );
-}
-
-int
plusd_disk_insert( plusd_drive_number which, const char *filename,
int autoload )
{
@@ -357,24 +363,40 @@
/* Abort the insert if we want to keep the current disk */
if( plusd_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( error ) );
- return 1;
+
+ if( filename ) {
+ error = disk_open( &d->disk, filename, 0 );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( error ) );
+ return 1;
+ }
+ } else {
+ error = disk_new( &d->disk, 2, 80, DISK_DENS_AUTO, DISK_UDI );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to create disk image: %s",
+ disk_strerror( error ) );
+ return 1;
+ }
}
+
fdd_load( &d->fdd, &d->disk, 0 );
/* Set the 'eject' item active */
switch( which ) {
case PLUSD_DRIVE_1:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
break;
case PLUSD_DRIVE_2:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
break;
}
- if( autoload ) {
+ if( filename && autoload ) {
/* XXX */
}
@@ -403,7 +425,9 @@
if( d->disk.dirty ) {
ui_confirm_save_t confirm = ui_confirm_save(
- "Disk has been modified.\nDo you want to save it?"
+ "Disk in +D drive %c has been modified.\n"
+ "Do you want to save it?",
+ which == PLUSD_DRIVE_1 ? '1' : '2'
);
switch( confirm ) {
@@ -435,6 +459,35 @@
}
int
+plusd_disk_writeprotect( plusd_drive_number which, int wrprot )
+{
+ wd_fdc_drive *d;
+
+ if( which >= PLUSD_NUM_DRIVES )
+ return 1;
+
+ d = &plusd_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 1;
+
+ fdd_wrprot( &d->fdd, wrprot );
+
+ /* Update the 'write protect' menu item */
+ switch( which ) {
+ case PLUSD_DRIVE_1:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
+ break;
+ case PLUSD_DRIVE_2:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
+ break;
+ }
+ return 0;
+}
+
+int
plusd_disk_write( plusd_drive_number which, const char *filename )
{
wd_fdc_drive *d = &plusd_drives[ which ];
@@ -477,14 +530,93 @@
return 0;
}
+static libspectrum_byte *
+alloc_and_copy_page( libspectrum_byte* source_page )
+{
+ libspectrum_byte *buffer;
+ buffer = malloc( MEMORY_PAGE_SIZE );
+ if( !buffer ) {
+ ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__,
+ __LINE__ );
+ return 0;
+ }
+
+ memcpy( buffer, source_page, MEMORY_PAGE_SIZE );
+ return buffer;
+}
+
static void
-plusd_from_snapshot( libspectrum_snap *snap GCC_UNUSED )
+plusd_enabled_snapshot( libspectrum_snap *snap )
{
- /* XXX */
+ if( libspectrum_snap_plusd_active( snap ) )
+ settings_current.plusd = 1;
}
static void
+plusd_from_snapshot( libspectrum_snap *snap )
+{
+ if( !libspectrum_snap_plusd_active( snap ) ) return;
+
+ if( libspectrum_snap_plusd_custom_rom( snap ) &&
+ libspectrum_snap_plusd_rom( snap, 0 ) ) {
+ memory_map_romcs[0].offset = 0;
+ memory_map_romcs[0].page_num = 0;
+ memory_map_romcs[0].page =
+ memory_pool_allocate( MEMORY_PAGE_SIZE * sizeof( libspectrum_byte ) );
+ if( !memory_map_romcs[0].page ) {
+ ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, __LINE__ );
+ return;
+ }
+ memory_map_romcs[0].source = MEMORY_SOURCE_CUSTOMROM;
+
+ memcpy( memory_map_romcs[0].page, libspectrum_snap_plusd_rom( snap, 0 ),
+ MEMORY_PAGE_SIZE );
+ }
+
+ if( libspectrum_snap_plusd_ram( snap, 0 ) ) {
+ memcpy( plusd_ram,
+ libspectrum_snap_plusd_ram( snap, 0 ), 0x2000 );
+ }
+
+ plusd_fdc->direction = libspectrum_snap_beta_direction( snap );
+
+ plusd_cr_write ( 0x00e3, libspectrum_snap_plusd_status ( snap ) );
+ plusd_tr_write ( 0x00eb, libspectrum_snap_plusd_track ( snap ) );
+ plusd_sec_write( 0x00f3, libspectrum_snap_plusd_sector ( snap ) );
+ plusd_dr_write ( 0x00fb, libspectrum_snap_plusd_data ( snap ) );
+ plusd_cn_write ( 0x00ef, libspectrum_snap_plusd_control( snap ) );
+
+ if( libspectrum_snap_plusd_paged( snap ) ) {
+ plusd_page();
+ } else {
+ plusd_unpage();
+ }
+}
+
+static void
plusd_to_snapshot( libspectrum_snap *snap GCC_UNUSED )
{
- /* XXX */
+ libspectrum_byte *buffer;
+
+ if( !periph_plusd_active ) return;
+
+ libspectrum_snap_set_plusd_active( snap, 1 );
+
+ buffer = alloc_and_copy_page( memory_map_romcs[0].page );
+ if( !buffer ) return;
+ libspectrum_snap_set_plusd_rom( snap, 0, buffer );
+ if( memory_map_romcs[0].source == MEMORY_SOURCE_CUSTOMROM )
+ libspectrum_snap_set_plusd_custom_rom( snap, 1 );
+
+ buffer = alloc_and_copy_page( plusd_ram );
+ if( !buffer ) return;
+ libspectrum_snap_set_plusd_ram( snap, 0, buffer );
+
+ libspectrum_snap_set_plusd_paged ( snap, plusd_active );
+ libspectrum_snap_set_plusd_direction( snap, plusd_fdc->direction );
+ libspectrum_snap_set_plusd_status( snap, plusd_fdc->status_register );
+ libspectrum_snap_set_plusd_track ( snap, plusd_fdc->track_register );
+ libspectrum_snap_set_plusd_sector( snap, plusd_fdc->sector_register );
+ libspectrum_snap_set_plusd_data ( snap, plusd_fdc->data_register );
+ libspectrum_snap_set_plusd_control( snap, plusd_control_register );
}
Modified: trunk/fuse/disk/plusd.h
===================================================================
--- trunk/fuse/disk/plusd.h 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/plusd.h 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* plusd.h: Routines for handling the +D interface
Copyright (c) 2005-2007 Stuart Brady
- $Id: plusd.h 3205 2007-10-19 16:37:27Z zubzero $
+ $Id: plusd.h 3313 2007-11-19 23:35:38Z 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
@@ -74,10 +74,9 @@
int plusd_disk_insert( plusd_drive_number which, const char *filename,
int autoload );
-int plusd_disk_insert_default_autoload( plusd_drive_number which,
- const char *filename );
int plusd_disk_eject( plusd_drive_number which, int write );
int plusd_disk_write( plusd_drive_number which, const char *filename );
+int plusd_disk_writeprotect( plusd_drive_number which, int wrprot );
int plusd_event_index( libspectrum_dword last_tstates );
#endif /* #ifndef FUSE_PLUSD_H */
Modified: trunk/fuse/disk/wd_fdc.c
===================================================================
--- trunk/fuse/disk/wd_fdc.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/wd_fdc.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Dmitry Sanarin, Gergely Szasz
- $Id: wd_fdc.c 3228 2007-10-23 14:40:05Z zubzero $
+ $Id: wd_fdc.c 3389 2007-12-03 12:54:17Z 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
@@ -56,6 +56,7 @@
f->direction = 0;
f->head_load = 0;
f->intrq = 0;
+ f->datarq = 0;
f->state = WD_FDC_STATE_NONE;
f->status_type = WD_FDC_STATUS_TYPE1;
@@ -144,8 +145,9 @@
void
wd_fdc_set_datarq( wd_fdc *f )
{
- if( !( f->status_register & WD_FDC_SR_IDX_DRQ ) ) {
+ if( f->datarq != 1 ) {
f->status_register |= WD_FDC_SR_IDX_DRQ;
+ f->datarq = 1;
if( f->set_datarq ) f->set_datarq( f );
}
}
@@ -153,8 +155,9 @@
void
wd_fdc_reset_datarq( wd_fdc *f )
{
- if( f->status_register & WD_FDC_SR_IDX_DRQ ) {
+ if( f->datarq == 1 ) {
f->status_register &= ~WD_FDC_SR_IDX_DRQ;
+ f->datarq = 0;
if( f->reset_datarq ) f->reset_datarq( f );
}
}
@@ -572,7 +575,9 @@
f->rev = 5;
read_id( f );
if( f->id_mark == WD_FDC_AM_NONE ) {
+ f->state = WD_FDC_STATE_NONE;
f->status_register |= WD_FDC_SR_RNF;
+ f->status_register &= ~WD_FDC_SR_BUSY;
wd_fdc_set_intrq( f );
return;
}
Modified: trunk/fuse/disk/wd_fdc.h
===================================================================
--- trunk/fuse/disk/wd_fdc.h 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/disk/wd_fdc.h 2008-02-17 02:02:27 UTC (rev 479)
@@ -2,7 +2,7 @@
Copyright (c) 2003-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Gergely Szasz
- $Id: wd_fdc.h 3222 2007-10-22 22:08:50Z zubzero $
+ $Id: wd_fdc.h 3306 2007-11-19 17:53:10Z 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
@@ -72,6 +72,7 @@
fdd_dir_t direction; /* 0 = spindlewards, 1 = rimwards */
int dden; /* SD/DD -> FM/MFM */
int intrq; /* INTRQ line status */
+ int datarq; /* DRQ line status */
int head_load; /* WD1773/FD1793 */
enum wd_fdc_state {
Modified: trunk/fuse/display.c
===================================================================
--- trunk/fuse/display.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/display.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2006 Philip Kendall, Thomas Harte, Witold Filipczyk
and Fredrick Meunier
- $Id: display.c 3043 2007-07-04 14:28:49Z zubzero $
+ $Id: display.c 3455 2007-12-21 16:48:51Z 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
@@ -972,7 +972,7 @@
} else if( screenshot_movie_record == 2 ) {
snprintf( screenshot_movie_name, SCREENSHOT_MOVIE_FILE_MAX,
- "%s-frame-%09ld.scr", screenshot_movie_file,
+ "%s-frame-%09ld.png", screenshot_movie_file,
screenshot_movie_frame++ );
screenshot_write_fast( screenshot_movie_name, screenshot_movie_scaler );
Modified: trunk/fuse/divide.c
===================================================================
--- trunk/fuse/divide.c 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/divide.c 2008-02-17 02:02:27 UTC (rev 479)
@@ -1,7 +1,7 @@
/* divide.c: DivIDE interface routines
Copyright (c) 2005 Matthew Westcott
- $Id: divide.c 3142 2007-09-04 00:52:44Z zubzero $
+ $Id: divide.c 3389 2007-12-03 12:54:17Z 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
@@ -84,6 +84,7 @@
divide_memory_map,
NULL,
NULL,
+ NULL,
};
Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-14 13:00:36 UTC (rev 478)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-17 02:02:27 UTC (rev 479)
@@ -95,7 +95,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 */; };
- 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 */; };
B61F465209121DF100C8096C /* TapeBrowserController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59B5590039FD8F901A804BA /* TapeBrowserController.m */; };
@@ -216,6 +215,8 @@
B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F3C0B2830A300EB65B3 /* cocoajoystick.c */; };
B6CE7F520B283A0700EB65B3 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F510B283A0700EB65B3 /* main.mm */; };
B6CE7FCE0B28FBD600EB65B3 /* DisplayOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */; };
+ B6DDE5290D64D96E00D6F905 /* pentagon.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DDE5280D64D96E00D6F905 /* pentagon.h */; };
+ B6DDE53C0D67963600D6F905 /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DDE53B0D67963600D6F905 /* ui.c */; };
B6E0252C0B38AFE500E23A0F /* keysyms.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E0252B0B38AFE500E23A0F /* keysyms.m */; };
B6F047F60952A6D6006D8005 /* tape_se.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F20952A6BA006D8005 /* tape_se.szx */; };
B6F047F70952A6D6006D8005 /* tape_ts2068.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F30952A6BA006D8005 /* tape_ts2068.szx */; };
@@ -501,6 +5...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-14 13:00:31
|
Revision: 478
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=478&view=rev
Author: fredm
Date: 2008-02-14 05:00:36 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Merge up to vendor version 0.4.0.
Modified Paths:
--------------
trunk/FuseGenerator/libspectrum.h
trunk/FuseImporter/GetMetadataForFile.m
trunk/FuseImporter/LibspectrumMetadataImporter.m
trunk/FuseImporter/libspectrum.h
trunk/libspectrum/Info.plist
trunk/libspectrum/libspectrum/COPYING
trunk/libspectrum/libspectrum/ChangeLog
trunk/libspectrum/libspectrum/Makefile.am
trunk/libspectrum/libspectrum/README
trunk/libspectrum/libspectrum/accessor.pl
trunk/libspectrum/libspectrum/configure.in
trunk/libspectrum/libspectrum/csw.c
trunk/libspectrum/libspectrum/dll.c
trunk/libspectrum/libspectrum/doc/cvs-tags
trunk/libspectrum/libspectrum/doc/libspectrum.3
trunk/libspectrum/libspectrum/doc/libspectrum.txt
trunk/libspectrum/libspectrum/hacking/ChangeLog
trunk/libspectrum/libspectrum/internals.h
trunk/libspectrum/libspectrum/libspectrum.c
trunk/libspectrum/libspectrum/libspectrum.h.in
trunk/libspectrum/libspectrum/plusd.c
trunk/libspectrum/libspectrum/sna.c
trunk/libspectrum/libspectrum/snap_accessors.txt
trunk/libspectrum/libspectrum/snapshot.c
trunk/libspectrum/libspectrum/szx.c
trunk/libspectrum/libspectrum/tap.c
trunk/libspectrum/libspectrum/tape.c
trunk/libspectrum/libspectrum/tape_block.c
trunk/libspectrum/libspectrum/test/Makefile.am
trunk/libspectrum/libspectrum/test/test.c
trunk/libspectrum/libspectrum/timings.c
trunk/libspectrum/libspectrum/z80.c
trunk/libspectrum/libspectrum.h
trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/libspectrum/libspectrum/test/empty.csw
trunk/libspectrum/libspectrum/test/sp-2000.sna.gz
trunk/libspectrum/libspectrum/test/sp-ffff.sna.gz
Modified: trunk/FuseGenerator/libspectrum.h
===================================================================
--- trunk/FuseGenerator/libspectrum.h 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/FuseGenerator/libspectrum.h 2008-02-14 13:00:36 UTC (rev 478)
@@ -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 3237 2007-10-24 18:24:07Z zubzero $
+ $Id: libspectrum.h.in 3426 2007-12-18 19:29:30Z 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
@@ -250,7 +250,7 @@
LIBSPECTRUM_ID_TAPE_WARAJEVO, /* Warajevo-style .tap tape image */
- LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* +D snapshot */
+ LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* DISCiPLE/+D snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SP, /* .sp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SNP, /* .snp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_ZXS, /* .zxs snapshot (zx32) */
@@ -272,11 +272,14 @@
LIBSPECTRUM_ID_TAPE_CSW, /* .csw tape image */
LIBSPECTRUM_ID_TAPE_Z80EM, /* Z80Em tape image */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
LIBSPECTRUM_ID_TAPE_WAV, /* .wav tape image */
+ LIBSPECTRUM_ID_TAPE_SPC, /* SP-style .spc tape image */
+ LIBSPECTRUM_ID_TAPE_STA, /* Speculator-style .sta tape image */
+ LIBSPECTRUM_ID_TAPE_LTP, /* Nuclear ZX-style .ltp tape image */
LIBSPECTRUM_ID_COMPRESSED_XFD, /* xfdmaster (Amiga) compressed file */
- LIBSPECTRUM_ID_DISK_IMG, /* .img +D disk image */
- LIBSPECTRUM_ID_DISK_MGT, /* .mgt +D disk image */
+ LIBSPECTRUM_ID_DISK_IMG, /* .img DISCiPLE/+D disk image */
+ LIBSPECTRUM_ID_DISK_MGT, /* .mgt DISCiPLE/+D disk image */
LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */
@@ -307,9 +310,9 @@
LIBSPECTRUM_CLASS_MICRODRIVE, /* Microdrive cartridges */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
- LIBSPECTRUM_CLASS_DISK_PLUSD, /* +D disk image */
+ LIBSPECTRUM_CLASS_DISK_PLUSD, /* DISCiPLE/+D disk image */
LIBSPECTRUM_CLASS_SCREENSHOT, /* Screenshot */
@@ -397,6 +400,11 @@
LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY; /* SE-style memory paging */
extern const int WIN32_DLL
LIBSPECTRUM_MACHINE_CAPABILITY_NTSC; /* NTSC display */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY; /* Pentagon 512 memory paging */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY;
+ /* Pentagon 1024 memory paging */
/* Get the capabilities of a machine */
int WIN32_DLL libspectrum_machine_capabilities( libspectrum_machine type );
@@ -589,6 +597,20 @@
void WIN32_DLL libspectrum_snap_set_out_scld_hsr( libspectrum_snap *snap, libspectrum_byte out_scld_hsr );
libspectrum_byte WIN32_DLL libspectrum_snap_out_scld_dec( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_out_scld_dec( libspectrum_snap *snap, libspectrum_byte out_scld_dec );
+int WIN32_DLL libspectrum_snap_interface1_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_active( libspectrum_snap *snap, int interface1_active );
+int WIN32_DLL libspectrum_snap_interface1_paged( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_paged( libspectrum_snap *snap, int interface1_paged );
+int WIN32_DLL libspectrum_snap_interface1_drive_count( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_drive_count( libspectrum_snap *snap, int interface1_drive_count );
+int WIN32_DLL libspectrum_snap_interface1_custom_rom( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_custom_rom( libspectrum_snap *snap, int interface1_custom_rom );
+libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap * snap, int idx );
+void WIN32_DLL libspectrum_snap_set_interface1_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface1_rom );
+size_t WIN32_DLL libspectrum_snap_interface1_rom_length( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_interface1_rom_length( libspectrum_snap *snap, int idx, size_t interface1_rom_length );
+int WIN32_DLL libspectrum_snap_beta_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_beta_active( libspectrum_snap *snap, int beta_active );
int WIN32_DLL libspectrum_snap_beta_paged( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_beta_paged( libspectrum_snap *snap, int beta_paged );
int WIN32_DLL libspectrum_snap_beta_direction( libspectrum_snap *snap );
@@ -603,6 +625,28 @@
void WIN32_DLL libspectrum_snap_set_beta_data( libspectrum_snap *snap, libspectrum_byte beta_data );
libspectrum_byte WIN32_DLL libspectrum_snap_beta_status( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_beta_status( libspectrum_snap *snap, libspectrum_byte beta_status );
+int WIN32_DLL libspectrum_snap_plusd_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_active( libspectrum_snap *snap, int plusd_active );
+int WIN32_DLL libspectrum_snap_plusd_paged( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_paged( libspectrum_snap *snap, int plusd_paged );
+int WIN32_DLL libspectrum_snap_plusd_custom_rom( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_custom_rom( libspectrum_snap *snap, int plusd_custom_rom );
+int WIN32_DLL libspectrum_snap_plusd_direction( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_direction( libspectrum_snap *snap, int plusd_direction );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_control( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_control( libspectrum_snap *snap, libspectrum_byte plusd_control );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_track( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_track( libspectrum_snap *snap, libspectrum_byte plusd_track );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_sector( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_sector( libspectrum_snap *snap, libspectrum_byte plusd_sector );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_data( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_data( libspectrum_snap *snap, libspectrum_byte plusd_data );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_status( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_status( libspectrum_snap *snap, libspectrum_byte plusd_status );
+libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_rom( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_plusd_rom( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_rom );
+libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_ram( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_plusd_ram( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_ram );
libspectrum_byte WIN32_DLL * libspectrum_snap_pages( libspectrum_snap *snap, int idx );
void WIN32_DLL libspectrum_snap_set_pages( libspectrum_snap *snap, int idx, libspectrum_byte* pages );
libspectrum_byte WIN32_DLL * libspectrum_snap_slt( libspectrum_snap *snap, int idx );
Modified: trunk/FuseImporter/GetMetadataForFile.m
===================================================================
--- trunk/FuseImporter/GetMetadataForFile.m 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/FuseImporter/GetMetadataForFile.m 2008-02-14 13:00:36 UTC (rev 478)
@@ -41,24 +41,22 @@
CFStringRef contentTypeUTI,
CFStringRef pathToFile)
{
- Boolean error = FALSE;
+ Boolean error = FALSE;
NSAutoreleasePool *pool;
- LibspectrumMetadataImporter *mdi;
+ LibspectrumMetadataImporter *mdi;
- /* Don't assume that there is an autorelease pool around the calling of this function. */
+ /* Don't assume that there is an autorelease pool around the calling of this function. */
pool = [[NSAutoreleasePool alloc] init];
- mdi = [[LibspectrumMetadataImporter alloc] initWithFilename:(NSString*)pathToFile
- andAttributes:(NSMutableDictionary*)attributes];
+ mdi = [[[LibspectrumMetadataImporter alloc] initWithFilename:(NSString*)pathToFile
+ andAttributes:(NSMutableDictionary*)attributes] autorelease];
/* Pull any available metadata from the file at the specified path */
/* Return the attribute keys and attribute values in the dict */
/* Return TRUE if successful, FALSE if there was no data provided */
- error = [mdi processFile];
-
- [mdi release];
+ error = [mdi processFile];
- [pool release];
+ [pool release];
- return error;
+ return error;
}
\ No newline at end of file
Modified: trunk/FuseImporter/LibspectrumMetadataImporter.m
===================================================================
--- trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/FuseImporter/LibspectrumMetadataImporter.m 2008-02-14 13:00:36 UTC (rev 478)
@@ -154,6 +154,19 @@
}
}
+libspectrum_error
+libspectrum_importer_error_function( libspectrum_error error,
+ const char *format, va_list ap )
+{
+ char err_msg[256];
+
+ vsnprintf( err_msg, 256, format, ap );
+
+ NSLog(@"LibspectrumMetadataImporter: error `%s': %s\n", err_msg );
+
+ return LIBSPECTRUM_ERROR_NONE;
+}
+
@implementation LibspectrumMetadataImporter
- (BOOL)
@@ -389,7 +402,7 @@
process_snap2:(libspectrum_snap *)snap
{
int error = 0;
- NSMutableArray *peripherals = [NSMutableArray arrayWithCapacity:4];
+ NSMutableArray *peripherals = [NSMutableArray arrayWithCapacity:7];
if( !libspectrum_snap_issue2(snap) &&
(libspectrum_snap_machine(snap) == LIBSPECTRUM_MACHINE_48 ||
@@ -423,6 +436,10 @@
if( libspectrum_snap_zxcf_active( snap ) ) {
[peripherals addObject:[NSString stringWithString:@"ZXCF"]];
}
+ if( libspectrum_snap_interface1_active( snap ) ) {
+ [peripherals addObject:
+ [NSString stringWithString:@"Interface I"]];
+ }
if( libspectrum_snap_interface2_active( snap ) ) {
[peripherals addObject:
[NSString stringWithString:@"Interface II Cartridge"]];
@@ -431,6 +448,12 @@
libspectrum_snap_machine(snap) != LIBSPECTRUM_MACHINE_SE ) {
[peripherals addObject:[NSString stringWithString:@"Timex Dock Cartidge"]];
}
+ if( libspectrum_snap_beta_active( snap ) ) {
+ [peripherals addObject:[NSString stringWithString:@"Beta Disk"]];
+ }
+ if( libspectrum_snap_plusd_active( snap ) ) {
+ [peripherals addObject:[NSString stringWithString:@"+D Disk"]];
+ }
if( [peripherals count] ) {
[attributes setObject:peripherals
@@ -615,7 +638,10 @@
filename = aFile;
attributes = aDict;
-
+
+ libspectrum_init();
+ libspectrum_error_function = libspectrum_importer_error_function;
+
return self;
}
@@ -628,6 +654,8 @@
if( mmap_file( fsrep, &buffer, &length ) ) return NO;
+ //NSLog( @"LibspectrumMetadataImporter: processing `%s'\n", fsrep );
+
if( libspectrum_identify_file( &type, fsrep, buffer, length ) ) {
munmap( buffer, length );
return NO;
@@ -696,7 +724,7 @@
return NO;
}
- NSLog(@"returning: %d\n",retval);
+ //NSLog(@"returning: %d\n",retval);
return retval;
}
Modified: trunk/FuseImporter/libspectrum.h
===================================================================
--- trunk/FuseImporter/libspectrum.h 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/FuseImporter/libspectrum.h 2008-02-14 13:00:36 UTC (rev 478)
@@ -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 3237 2007-10-24 18:24:07Z zubzero $
+ $Id: libspectrum.h.in 3426 2007-12-18 19:29:30Z 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
@@ -250,7 +250,7 @@
LIBSPECTRUM_ID_TAPE_WARAJEVO, /* Warajevo-style .tap tape image */
- LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* +D snapshot */
+ LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* DISCiPLE/+D snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SP, /* .sp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SNP, /* .snp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_ZXS, /* .zxs snapshot (zx32) */
@@ -272,11 +272,14 @@
LIBSPECTRUM_ID_TAPE_CSW, /* .csw tape image */
LIBSPECTRUM_ID_TAPE_Z80EM, /* Z80Em tape image */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
LIBSPECTRUM_ID_TAPE_WAV, /* .wav tape image */
+ LIBSPECTRUM_ID_TAPE_SPC, /* SP-style .spc tape image */
+ LIBSPECTRUM_ID_TAPE_STA, /* Speculator-style .sta tape image */
+ LIBSPECTRUM_ID_TAPE_LTP, /* Nuclear ZX-style .ltp tape image */
LIBSPECTRUM_ID_COMPRESSED_XFD, /* xfdmaster (Amiga) compressed file */
- LIBSPECTRUM_ID_DISK_IMG, /* .img +D disk image */
- LIBSPECTRUM_ID_DISK_MGT, /* .mgt +D disk image */
+ LIBSPECTRUM_ID_DISK_IMG, /* .img DISCiPLE/+D disk image */
+ LIBSPECTRUM_ID_DISK_MGT, /* .mgt DISCiPLE/+D disk image */
LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */
@@ -307,9 +310,9 @@
LIBSPECTRUM_CLASS_MICRODRIVE, /* Microdrive cartridges */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
- LIBSPECTRUM_CLASS_DISK_PLUSD, /* +D disk image */
+ LIBSPECTRUM_CLASS_DISK_PLUSD, /* DISCiPLE/+D disk image */
LIBSPECTRUM_CLASS_SCREENSHOT, /* Screenshot */
@@ -397,6 +400,11 @@
LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY; /* SE-style memory paging */
extern const int WIN32_DLL
LIBSPECTRUM_MACHINE_CAPABILITY_NTSC; /* NTSC display */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY; /* Pentagon 512 memory paging */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY;
+ /* Pentagon 1024 memory paging */
/* Get the capabilities of a machine */
int WIN32_DLL libspectrum_machine_capabilities( libspectrum_machine type );
@@ -589,6 +597,20 @@
void WIN32_DLL libspectrum_snap_set_out_scld_hsr( libspectrum_snap *snap, libspectrum_byte out_scld_hsr );
libspectrum_byte WIN32_DLL libspectrum_snap_out_scld_dec( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_out_scld_dec( libspectrum_snap *snap, libspectrum_byte out_scld_dec );
+int WIN32_DLL libspectrum_snap_interface1_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_active( libspectrum_snap *snap, int interface1_active );
+int WIN32_DLL libspectrum_snap_interface1_paged( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_paged( libspectrum_snap *snap, int interface1_paged );
+int WIN32_DLL libspectrum_snap_interface1_drive_count( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_drive_count( libspectrum_snap *snap, int interface1_drive_count );
+int WIN32_DLL libspectrum_snap_interface1_custom_rom( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_interface1_custom_rom( libspectrum_snap *snap, int interface1_custom_rom );
+libspectrum_byte WIN32_DLL * libspectrum_snap_interface1_rom( libspectrum_snap * snap, int idx );
+void WIN32_DLL libspectrum_snap_set_interface1_rom( libspectrum_snap *snap, int idx, libspectrum_byte* interface1_rom );
+size_t WIN32_DLL libspectrum_snap_interface1_rom_length( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_interface1_rom_length( libspectrum_snap *snap, int idx, size_t interface1_rom_length );
+int WIN32_DLL libspectrum_snap_beta_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_beta_active( libspectrum_snap *snap, int beta_active );
int WIN32_DLL libspectrum_snap_beta_paged( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_beta_paged( libspectrum_snap *snap, int beta_paged );
int WIN32_DLL libspectrum_snap_beta_direction( libspectrum_snap *snap );
@@ -603,6 +625,28 @@
void WIN32_DLL libspectrum_snap_set_beta_data( libspectrum_snap *snap, libspectrum_byte beta_data );
libspectrum_byte WIN32_DLL libspectrum_snap_beta_status( libspectrum_snap *snap );
void WIN32_DLL libspectrum_snap_set_beta_status( libspectrum_snap *snap, libspectrum_byte beta_status );
+int WIN32_DLL libspectrum_snap_plusd_active( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_active( libspectrum_snap *snap, int plusd_active );
+int WIN32_DLL libspectrum_snap_plusd_paged( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_paged( libspectrum_snap *snap, int plusd_paged );
+int WIN32_DLL libspectrum_snap_plusd_custom_rom( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_custom_rom( libspectrum_snap *snap, int plusd_custom_rom );
+int WIN32_DLL libspectrum_snap_plusd_direction( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_direction( libspectrum_snap *snap, int plusd_direction );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_control( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_control( libspectrum_snap *snap, libspectrum_byte plusd_control );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_track( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_track( libspectrum_snap *snap, libspectrum_byte plusd_track );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_sector( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_sector( libspectrum_snap *snap, libspectrum_byte plusd_sector );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_data( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_data( libspectrum_snap *snap, libspectrum_byte plusd_data );
+libspectrum_byte WIN32_DLL libspectrum_snap_plusd_status( libspectrum_snap *snap );
+void WIN32_DLL libspectrum_snap_set_plusd_status( libspectrum_snap *snap, libspectrum_byte plusd_status );
+libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_rom( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_plusd_rom( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_rom );
+libspectrum_byte WIN32_DLL * libspectrum_snap_plusd_ram( libspectrum_snap *snap, int idx );
+void WIN32_DLL libspectrum_snap_set_plusd_ram( libspectrum_snap *snap, int idx, libspectrum_byte* plusd_ram );
libspectrum_byte WIN32_DLL * libspectrum_snap_pages( libspectrum_snap *snap, int idx );
void WIN32_DLL libspectrum_snap_set_pages( libspectrum_snap *snap, int idx, libspectrum_byte* pages );
libspectrum_byte WIN32_DLL * libspectrum_snap_slt( libspectrum_snap *snap, int idx );
Modified: trunk/libspectrum/Info.plist
===================================================================
--- trunk/libspectrum/Info.plist 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/Info.plist 2008-02-14 13:00:36 UTC (rev 478)
@@ -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>
@@ -23,6 +23,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>0.3.0.1</string>
+ <string>0.4.0</string>
</dict>
</plist>
Modified: trunk/libspectrum/libspectrum/COPYING
===================================================================
--- trunk/libspectrum/libspectrum/COPYING 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/COPYING 2008-02-14 13:00:36 UTC (rev 478)
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Modified: trunk/libspectrum/libspectrum/ChangeLog
===================================================================
--- trunk/libspectrum/libspectrum/ChangeLog 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/ChangeLog 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,3 +1,25 @@
+2008-01-05 Philip Kendall <phi...@sh...>
+
+ * libspectrum 0.4.0 released.
+
+ * Add support for loading from WAV files (Fredrick Meunier).
+
+ * Add support for CSW tape files (Fredrick Meunier).
+
+ * Tweak timings for TC2048 and TC2068 (Fredrick Meunier; thanks Philip
+ Kendall and Mark Woodmass).
+
+ * Add support for the +D in z80 and szx snapshots (Fredrick Meunier).
+
+ * Add Pentagon 512/1024 support (Q-Master).
+
+ * Allow Amiga version to decompress files with xfdmaster.library
+ (Chris Young).
+
+ * Allow MorphOS version to use xfdmaster.library (Q-Master).
+
+ * Various other bugfixes.
+
2007-05-11 Philip Kendall <phi...@sh...>
* libspectrum 0.3.0.1 released (bug fix release).
@@ -144,7 +166,7 @@
* Timing fixes for the TC2048 and TC2068 (Fredrick Meunier).
- * Fix reading of 128K .sna snapshots (Philip Kendall).
+ * Fix reading of 128K .sna snapshots (Philip Kendall).
* New capabilities for the Timex dock, and built-in Sinclair and
Kempston joysticks (Fredrick Meunier).
@@ -203,5 +225,5 @@
* libspectrum separated from Fuse just before the 0.5.0 release of
Fuse; see Fuse's ChangeLog for changes up to this point
-$Id: ChangeLog 3254 2007-10-26 02:07:45Z zubzero $
+$Id: ChangeLog 3467 2008-01-04 23:27:31Z zubzero $
Modified: trunk/libspectrum/libspectrum/Makefile.am
===================================================================
--- trunk/libspectrum/libspectrum/Makefile.am 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/Makefile.am 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2001-2004 Philip Kendall
-## $Id: Makefile.am 3171 2007-09-25 15:38:23Z pak21 $
+## $Id: Makefile.am 3426 2007-12-18 19:29:30Z 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
@@ -57,7 +57,7 @@
zlib.c \
zxs.c
-libspectrum_la_LDFLAGS = -version-info 5:1:0 -no-undefined
+libspectrum_la_LDFLAGS = -version-info 6:0:1 -no-undefined
libspectrum_la_LIBADD = myglib/libmyglib.la @AUDIOFILE_LIBS@ -lm
Modified: trunk/libspectrum/libspectrum/README
===================================================================
--- trunk/libspectrum/libspectrum/README 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/README 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,5 +1,5 @@
-libspectrum 0.3.0.1
-===================
+libspectrum 0.4.0
+=================
libspectrum is a library which is designed to make the input and
output of ZX Spectrum emulator files slightly easier than it would be
@@ -10,8 +10,8 @@
* Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and
+D snapshots (read only).
-* Tape images: .tzx, .tap (read/write) and Warajevo .tap, Z80Em and
- CSW version 1 (read only).
+* Tape images: .tzx, .tap, .spc, .sta and .ltp (read/write) and
+ Warajevo .tap, Z80Em and CSW version 1 (read only).
* Input recordings: .rzx (read/write).
* Timex cartridges: .dck (read only).
* IDE hard disk images: .hdf (read/write).
@@ -50,4 +50,6 @@
'configure' for the first time.
Philip Kendall <phi...@sh...>
-11 May 2007
+5 January 2008
+
+$Id: README 3467 2008-01-04 23:27:31Z zubzero $
Modified: trunk/libspectrum/libspectrum/accessor.pl
===================================================================
--- trunk/libspectrum/libspectrum/accessor.pl 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/accessor.pl 2008-02-14 13:00:36 UTC (rev 478)
@@ -3,7 +3,7 @@
# accessor.pl: generate accessor functions
# Copyright (c) 2003-2004 Philip Kendall
-# $Id: accessor.pl 2890 2007-05-26 19:31:43Z zubzero $
+# $Id: accessor.pl 3408 2007-12-05 01:45:24Z 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
@@ -102,7 +102,16 @@
/* Timex-specific bits */
libspectrum_byte out_scld_hsr, out_scld_dec;
+ /* Interface 1 status */
+ int interface1_active;
+ int interface1_paged;
+ int interface1_drive_count;
+ int interface1_custom_rom;
+ libspectrum_byte* interface1_rom[1];
+ size_t interface1_rom_length[1]; /* Length of the ROM */
+
/* Betadisk status */
+ int beta_active;
int beta_paged;
int beta_direction; /* FDC seek direction:
zero => towards lower cylinders (hubwards)
@@ -110,6 +119,18 @@
libspectrum_byte beta_system, beta_track, beta_sector, beta_data,
beta_status;
+ /* Plus D status */
+ int plusd_active;
+ int plusd_paged;
+ int plusd_custom_rom;
+ int plusd_direction; /* FDC seek direction:
+ zero => towards lower cylinders (hubwards)
+ non-zero => towards higher cylinders (rimwards) */
+ libspectrum_byte plusd_control, plusd_track, plusd_sector, plusd_data,
+ plusd_status;
+ libspectrum_byte *plusd_rom[1];
+ libspectrum_byte *plusd_ram[1];
+
/* ZXATASP status */
int zxatasp_active;
int zxatasp_upload;
Modified: trunk/libspectrum/libspectrum/configure.in
===================================================================
--- trunk/libspectrum/libspectrum/configure.in 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/configure.in 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
dnl Copyright (c) 1999-2004 Philip Kendall
-dnl $Id: configure.in 3157 2007-09-05 18:37:08Z zubzero $
+dnl $Id: configure.in 3426 2007-12-18 19:29:30Z 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
@@ -25,7 +25,7 @@
AM_CONFIG_HEADER(config.h)
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(libspectrum, 0.3.0.1)
+AM_INIT_AUTOMAKE(libspectrum, 0.4.0)
dnl Checks for programs.
AC_PROG_CC
Modified: trunk/libspectrum/libspectrum/csw.c
===================================================================
--- trunk/libspectrum/libspectrum/csw.c 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/csw.c 2008-02-14 13:00:36 UTC (rev 478)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2007 Darren Salt, Fredrick Meunier
Based on tap.c, copyright (c) 2001 Philip Kendall
- $Id: csw.c 3190 2007-10-06 02:58:38Z zubzero $
+ $Id: csw.c 3272 2007-11-01 11:03:02Z 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
@@ -108,22 +108,22 @@
return LIBSPECTRUM_ERROR_UNKNOWN;
}
+ if( !length ) goto csw_empty;
+
if( compressed ) {
/* Compressed data... */
#ifdef HAVE_ZLIB_H
csw_block->data = NULL;
csw_block->length = 0;
error = libspectrum_zlib_inflate( buffer, length, &csw_block->data,
- &csw_block->length );
+ &csw_block->length );
if( error != LIBSPECTRUM_ERROR_NONE ) return error;
#else
libspectrum_print_error( LIBSPECTRUM_ERROR_UNKNOWN,
- "zlib not available to decompress gzipped file" );
+ "zlib not available to decompress gzipped file" );
return LIBSPECTRUM_ERROR_UNKNOWN;
#endif
- }
- else
- {
+ } else {
/* Claim memory for the data (it's one big lump) */
csw_block->length = length;
csw_block->data = malloc( length );
@@ -163,6 +163,11 @@
libspectrum_print_error( LIBSPECTRUM_ERROR_CORRUPT,
"libspectrum_csw_read: not enough data in buffer" );
return LIBSPECTRUM_ERROR_CORRUPT;
+
+ csw_empty:
+ free( block );
+ /* Successful completion */
+ return LIBSPECTRUM_ERROR_NONE;
}
static libspectrum_dword
@@ -252,47 +257,47 @@
libspectrum_tape_block_state it;
libspectrum_byte *length_ptr;
- libspectrum_tape_block_internal_init( &it, tape );
-
error = libspectrum_make_room( &data, 8192, &data_ptr, &data_size );
if( error != LIBSPECTRUM_ERROR_NONE ) return error;
- while( !(flags & LIBSPECTRUM_TAPE_FLAGS_STOP) ) {
- libspectrum_dword pulse_length = 0;
+ if( libspectrum_tape_block_internal_init( &it, tape ) ) {
+ while( !(flags & LIBSPECTRUM_TAPE_FLAGS_STOP) ) {
+ libspectrum_dword pulse_length = 0;
- /* Use internal version of this that doesn't bugger up the
- external tape status */
- error = libspectrum_tape_get_next_edge_internal( &pulse_tstates, &flags,
- tape, &it );
- if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+ /* Use internal version of this that doesn't bugger up the
+ external tape status */
+ error = libspectrum_tape_get_next_edge_internal( &pulse_tstates, &flags,
+ tape, &it );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
- balance_tstates += pulse_tstates;
+ balance_tstates += pulse_tstates;
- if( flags & LIBSPECTRUM_TAPE_FLAGS_NO_EDGE ) continue;
+ if( flags & LIBSPECTRUM_TAPE_FLAGS_NO_EDGE ) continue;
- /* next RLE value is: balance_tstates / scale; */
- pulse_length = balance_tstates / scale;
- balance_tstates = balance_tstates % scale;
+ /* next RLE value is: balance_tstates / scale; */
+ pulse_length = balance_tstates / scale;
+ balance_tstates = balance_tstates % scale;
- if( pulse_length ) {
- if( data_size < (data_length + 1 + sizeof(libspectrum_dword) ) ) {
- error = libspectrum_make_room( &data, data_size*2,
- &data_ptr, &data_size );
- if( error != LIBSPECTRUM_ERROR_NONE ) {
- free( data );
- return error;
+ if( pulse_length ) {
+ if( data_size < (data_length + 1 + sizeof(libspectrum_dword) ) ) {
+ error = libspectrum_make_room( &data, data_size*2,
+ &data_ptr, &data_size );
+ if( error != LIBSPECTRUM_ERROR_NONE ) {
+ free( data );
+ return error;
+ }
}
+
+ if( pulse_length <= 0xff ) {
+ *data_ptr++ = pulse_length;
+ data_length++;
+ } else {
+ *data_ptr++ = 0;
+ data_length++;
+ libspectrum_write_dword( &data_ptr, pulse_length );
+ data_length+=sizeof(libspectrum_dword);
+ }
}
-
- if( pulse_length <= 0xff ) {
- *data_ptr++ = pulse_length;
- data_length++;
- } else {
- *data_ptr++ = 0;
- data_length++;
- libspectrum_write_dword( &data_ptr, pulse_length );
- data_length+=sizeof(libspectrum_dword);
- }
}
}
Modified: trunk/libspectrum/libspectrum/dll.c
===================================================================
--- trunk/libspectrum/libspectrum/dll.c 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/dll.c 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
/* dll.c: Visual C++ DLL entry point
Copyright (c) 2004 Philip Kendall
- $Id: dll.c 2890 2007-05-26 19:31:43Z zubzero $
+ $Id: dll.c 3367 2007-11-30 03:41: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
@@ -28,7 +28,7 @@
#include "internals.h"
BOOL APIENTRY
-DllMain( HANDLE module, DWORD reason, LPVOID opaque (
+DllMain( HANDLE module, DWORD reason, LPVOID opaque )
{
switch( ul_reason_for_call ) {
case DLL_PROCESS_ATTACH:
Modified: trunk/libspectrum/libspectrum/doc/cvs-tags
===================================================================
--- trunk/libspectrum/libspectrum/doc/cvs-tags 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/doc/cvs-tags 2008-02-14 13:00:36 UTC (rev 478)
@@ -61,4 +61,10 @@
|
| libspectrum_0_3_0-merge-1
|
++-\
+| | libspectrum_0_4_0pre1
+| | libspectrum_0_4_0
+| |
+| | libspectrum_0_4_0-branch
+|
HEAD
Modified: trunk/libspectrum/libspectrum/doc/libspectrum.3
===================================================================
--- trunk/libspectrum/libspectrum/doc/libspectrum.3 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/doc/libspectrum.3 2008-02-14 13:00:36 UTC (rev 478)
@@ -22,7 +22,7 @@
.\" E-mail: phi...@sh...
.\"
.\"
-.TH libspectrum 3 "11th May, 2007" "Version 0.3.0.1" "Emulators"
+.TH libspectrum 3 "5th January, 2008" "Version 0.4.0" "Emulators"
.\"
.\"------------------------------------------------------------------
.\"
@@ -45,8 +45,8 @@
Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and +D
snapshots (read only).
.IP \(bu 2
-Tape images: .tzx, .tap (read/write) and Warajevo .tap, Z80Em and CSW
-version 1 (read only).
+Tape images: .tzx, .tap, .spc, .sta, .ltp (read/write) and Warajevo .tap,
+Z80Em and CSW version 1 (read only).
.IP \(bu 2
Input recordings: .rzx (read/write).
.IP \(bu 2
Modified: trunk/libspectrum/libspectrum/doc/libspectrum.txt
===================================================================
--- trunk/libspectrum/libspectrum/doc/libspectrum.txt 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/doc/libspectrum.txt 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,5 +1,5 @@
-libspectrum 0.x.x
-===================
+libspectrum 0.4.0
+=================
libspectrum is a fairly simple library designed to make the handling
of various ZX Spectrum emulator-related file formats easy. So far it
@@ -7,7 +7,8 @@
* Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and
+D snapshots (read only).
-* Tape images: .tzx, .tap (read/write) and Warajevo .tap (read only).
+* Tape images: .tzx, .tap, .spc, .sta and .ltp (read/write) and
+ Warajevo .tap, Z80Em and CSW version 1 (read only).
* Input recordings: .rzx (read/write).
* Timex cartridges: .dck (read only).
* IDE hard disk images: .hdf (read/write).
@@ -262,6 +263,9 @@
LIBSPECTRUM_ID_TAPE_TZX A .tzx tape image
LIBSPECTRUM_ID_TAPE_WARAJEVO A Warajevo-style .tap tape image
LIBSPECTRUM_ID_TAPE_Z80EM A Z80Em tape image
+LIBSPECTRUM_ID_TAPE_SPC An SP-style .spc tape image
+LIBSPECTRUM_ID_TAPE_STA A Speculator-style .sta tape image
+LIBSPECTRUM_ID_TAPE_LTP A Nuclear ZX-style .ltp tape image
`libspectrum_identify_file_raw' looks for defined signatures in the
file as well as the extension of the filename and a couple of
@@ -1660,4 +1664,4 @@
Write `data' to register `reg' of the IDE channel `chn'.
-$Id: libspectrum.txt 3250 2007-10-26 01:28:18Z zubzero $
+$Id: libspectrum.txt 3426 2007-12-18 19:29:30Z zubzero $
Modified: trunk/libspectrum/libspectrum/hacking/ChangeLog
===================================================================
--- trunk/libspectrum/libspectrum/hacking/ChangeLog 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/hacking/ChangeLog 2008-02-14 13:00:36 UTC (rev 478)
@@ -545,3 +545,57 @@
(Q-Master).
20071026 doc/libspectrum.txt: add Pentagon 512/1024, fix typos (Stuart).
20071026 ChangeLog: fix typos (Stuart).
+20071030 csw.c,tape.c: fix writing and reading empty csw files (fixes bug
+ #1821425; thanks Stuart Brady) (Fred).
+20071101 csw.c,tape.c,tape_block.c,test/test.c: add test for reading empty
+ csw files and add more fixes to cope (more for bug #1821425) (Fred).
+20071109 tap.c,test/test.c: ensure .tap writing code handles all known block
+ types (fixes bug #1828945; thanks, Stuart Brady).
+20071112 timings.c: timing tweak for TC2048 and TC2068 based on test programs
+ from Phil and Woodster (Fred).
+20071124 accessor.pl,snap_accessors.txt,snapshot.c,szx.c,z80.c: add support
+ for the +D in z80 and szx snapshots (patch #1782512) (Fred).
+20071124 szx.c: fix warnings.
+20071125 test/test.c: fix warnings (Stuart).
+20071125 tap.c: fix error messages (Stuart).
+20071128 ChangeLog: update (Stuart).
+20071129 sna.c: fix misleading comment.
+20071129 sna.c: sanity check SP before attempting to read from it.
+20071129 tests/{sp-2000.sna.gz,sp-ffff.sna.gz,test.c}: add tests for bugs
+ #1841085 (SP not sanity checked when loading 48K .sna file) and
+ #1841111 (compressed snapshots cause segfault).
+20071129 libspectrum.c: check new_filename before checking *new_filename.
+20071130 dll.c: fix typo and remove executable property (Stuart).
+20071130 libspectrum.c: free *new_filename instead of new_filename (Stuart).
+20071130 plusd.c: enable DISCiPLE/+D snapshot support and add support for 128K
+ DISCiPLE/+D snapshots (feature request #1764996) (Stuart).
+20071130 internals.h,libspectrum.c,libspectrum.h.in,tap.c,tape.c: add support
+ for .spc, .sta and .ltp tape images (feature request #1764995)
+ (Stuart).
+20071130 libspectrum.h.in: refer also to the DISCiPLE in comments (Stuart).
+20071130 libspectrum.c,libspectrum.h.in,szx.c: add support for Pentagon 512
+ and 1024 snapshots.
+20071130 szx.c: save the Pentagon 1024 secondary memory control port as well.
+20071130 doc/libspectrum.{3,txt}: document .spc, .sta and .ltp support (Stuart).
+20071201 szx.c: change to Pentagon 1024 secondary memory control port after
+ discussion with Jon Needle.
+20071203 szx.c: also check if a +D custom ROM is supplied but not specified and
+ make sure all variables passed to the +D custom ROM zlib decompression
+ are initialised (Fred).
+20071205 accessor.pl,snap_accessors.txt,snapshot.c,szx.c,z80.c: add support for
+ Interface 1 in z80 and szx snapshots (Fred).
+20071205 z80.c: fix writing joystick info to z80 snapshots (Fred).
+20071205 szx.c: fix writing if1 info to szx snapshots (Fred).
+20071218 ChangeLog,Makefile.am,README,configure.in,doc/libspectrum.{3,txt},
+ libspectrum.h.in,test/test.c: update for 0.4.0 release (Stuart).
+20071219 szx.c: fix warning (Stuart).
+20071219 libspectrum.c: avoid warnings when building without gcrypt (Stuart).
+20071219 plusd.c: #include <string.h> (Stuart).
+20071221 BRANCH: libspectrum_0_4_0-branch
+20071221 TAG: libspectrum_0_4_0pre1
+20080104 ChangeLog,README,doc/libspectrum.3: update dates
+ (libspectrum_0_4_0-branch) (Stuart).
+20080105 test/Makefile.am: distribute complete-tzx.pl and clean up after
+ ourselves (thanks, make distcheck) (Release_0_4_0-branch).
+20080105 test/Makefile.am: distribute test data files (Release_0_4_0-branch).
+20080105 TAG: libspectrum_0_4_0
Modified: trunk/libspectrum/libspectrum/internals.h
===================================================================
--- trunk/libspectrum/libspectrum/internals.h 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/internals.h 2008-02-14 13:00:36 UTC (rev 478)
@@ -2,7 +2,7 @@
routines, but not by user code
Copyright (c) 2001-2007 Philip Kendall, Darren Salt
- $Id: internals.h,v 1.27 2007/02/02 16:35:42 pak21 Exp $
+ $Id: internals.h 3370 2007-11-30 07:48:32Z 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
@@ -166,11 +166,11 @@
libspectrum_error
internal_tap_read( libspectrum_tape *tape, const libspectrum_byte *buffer,
- const size_t length );
+ const size_t length, libspectrum_id_t type );
libspectrum_error
internal_tap_write( libspectrum_byte **buffer, size_t *length,
- libspectrum_tape *tape );
+ libspectrum_tape *tape, libspectrum_id_t type );
libspectrum_error
internal_tzx_read( libspectrum_tape *tape, const libspectrum_byte *buffer,
Modified: trunk/libspectrum/libspectrum/libspectrum.c
===================================================================
--- trunk/libspectrum/libspectrum/libspectrum.c 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/libspectrum.c 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
/* libspectrum.c: Some general routines
Copyright (c) 2001-2004 Philip Kendall, Darren Salt, Fredrick Meunier
- $Id: libspectrum.c 3237 2007-10-24 18:24:07Z zubzero $
+ $Id: libspectrum.c 3439 2007-12-19 03:28:36Z 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
@@ -69,8 +69,10 @@
libspectrum_error_function_t libspectrum_error_function =
libspectrum_default_error_function;
+#ifdef HAVE_GCRYPT_H
static void
gcrypt_log_handler( void *opaque, int level, const char *format, va_list ap );
+#endif /* #ifdef HAVE_GCRYPT_H */
/* Initialise the library */
libspectrum_error
@@ -114,11 +116,13 @@
return LIBSPECTRUM_ERROR_NONE;
}
+#ifdef HAVE_GCRYPT_H
static void
gcrypt_log_handler( void *opaque, int level, const char *format, va_list ap )
{
/* Do nothing */
}
+#endif /* #ifdef HAVE_GCRYPT_H */
int
libspectrum_check_version( const char *version )
@@ -262,6 +266,10 @@
/* SE-style memory paging */
const int LIBSPECTRUM_MACHINE_CAPABILITY_NTSC = 1 << 13;
/* NTSC display */
+const int LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY = 1 << 14;
+ /* Pentagon 512-style memory paging */
+const int LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY = 1 << 15;
+ /* Pentagon 1024-style memory paging */
/* Given a machine type, what features does it have? */
int
@@ -402,6 +410,23 @@
break;
}
+ /* Pentagon 512-style memory paging */
+ switch( type ) {
+ case LIBSPECTRUM_MACHINE_PENT512:
+ case LIBSPECTRUM_MACHINE_PENT1024:
+ capabilities |= LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY; break;
+ default:
+ break;
+ }
+
+ /* Pentagon 1024-style memory paging */
+ switch( type ) {
+ case LIBSPECTRUM_MACHINE_PENT1024:
+ capabilities |= LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY; break;
+ default:
+ break;
+ }
+
return capabilities;
}
@@ -479,6 +504,7 @@
/* .slt files also dealt with by the .z80 loading code */
{ LIBSPECTRUM_ID_SNAPSHOT_Z80, "slt", 3, "\0\0", 6, 2, 1 },
{ LIBSPECTRUM_ID_SNAPSHOT_ZXS, "zxs", 3, "SNAP", 8, 4, 4 },
+ { LIBSPECTRUM_ID_SNAPSHOT_PLUSD,"mgtsnp", 3, NULL, 0, 0, 0 },
{ LIBSPECTRUM_ID_CARTRIDGE_DCK, "dck", 3, NULL, 0, 0, 0 },
{ LIBSPECTRUM_ID_CARTRIDGE_IF2, "rom", 3, NULL, 0, 0, 0 },
@@ -486,6 +512,9 @@
{ LIBSPECTRUM_ID_MICRODRIVE_MDR, "mdr", 3, NULL, 0, 0, 0 },
{ LIBSPECTRUM_ID_TAPE_TAP, "tap", 3, "\x13\0\0", 0, 3, 1 },
+ { LIBSPECTRUM_ID_TAPE_SPC, "spc", 3, "\x11\0\0", 0, 3, 1 },
+ { LIBSPECTRUM_ID_TAPE_STA, "sta", 3, "\x11\0\0", 0, 3, 1 },
+ { LIBSPECTRUM_ID_TAPE_LTP, "ltp", 3, "\x11\0\0", 0, 3, 1 },
{ LIBSPECTRUM_ID_TAPE_TZX, "tzx", 3, "ZXTape!", 0, 7, 4 },
{ LIBSPECTRUM_ID_TAPE_WARAJEVO, "tap", 2, "\xff\xff\xff\xff", 8, 4, 2 },
@@ -651,6 +680,9 @@
*libspectrum_class = LIBSPECTRUM_CLASS_SNAPSHOT; return 0;
case LIBSPECTRUM_ID_TAPE_TAP:
+ case LIBSPECTRUM_ID_TAPE_SPC:
+ case LIBSPECTRUM_ID_TAPE_STA:
+ case LIBSPECTRUM_ID_TAPE_LTP:
case LIBSPECTRUM_ID_TAPE_TZX:
case LIBSPECTRUM_ID_TAPE_WARAJEVO:
case LIBSPECTRUM_ID_TAPE_Z80EM:
@@ -707,7 +739,7 @@
#ifdef HAVE_LIBBZ2
- if( *new_filename ) {
+ if( new_filename && *new_filename ) {
if( strlen( *new_filename ) >= 4 &&
!strcasecmp( &(*new_filename)[ strlen( *new_filename ) - 4 ],
".bz2" ) )
@@ -716,7 +748,10 @@
error = libspectrum_bzip2_inflate( old_buffer, old_length,
new_buffer, new_length );
- if( error ) { free( *new_filename ); return error; }
+ if( error ) {
+ if( new_filename ) free( *new_filename );
+ return error;
+ }
#else /* #ifdef HAVE_LIBBZ2 */
@@ -724,7 +759,7 @@
LIBSPECTRUM_ERROR_UNKNOWN,
"libbz2 not available to decompress bzipped file"
);
- free( new_filename );
+ if( new_filename ) free( *new_filename );
return LIBSPECTRUM_ERROR_UNKNOWN;
#endif /* #ifdef HAVE_LIBBZ2 */
@@ -735,7 +770,7 @@
#ifdef HAVE_ZLIB_H
- if( *new_filename ) {
+ if( new_filename && *new_filename ) {
if( strlen( *new_filename ) >= 3 &&
!strcasecmp( &(*new_filename)[ strlen( *new_filename ) - 3 ],
".gz" ) )
@@ -744,13 +779,16 @@
error = libspectrum_gzip_inflate( old_buffer, old_length,
new_buffer, new_length );
- if( error ) { free( *new_filename ); return error; }
+ if( error ) {
+ if( new_filename ) free( *new_filename );
+ return error;
+ }
#else /* #ifdef HAVE_ZLIB_H */
libspectrum_print_error( LIBSPECTRUM_ERROR_UNKNOWN,
"zlib not available to decompress gzipped file" );
- free( new_filename );
+ if( new_filename ) free( *new_filename );
return LIBSPECTRUM_ERROR_UNKNOWN;
#endif /* #ifdef HAVE_ZLIB_H */
@@ -833,7 +871,7 @@
default:
libspectrum_print_error( LIBSPECTRUM_ERROR_LOGIC,
"unknown compressed type %d", type );
- free( new_filename );
+ if( new_filename ) free( *new_filename );
return LIBSPECTRUM_ERROR_LOGIC;
}
Modified: trunk/libspectrum/libspectrum/libspectrum.h.in
===================================================================
--- trunk/libspectrum/libspectrum/libspectrum.h.in 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/libspectrum.h.in 2008-02-14 13:00:36 UTC (rev 478)
@@ -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 3237 2007-10-24 18:24:07Z zubzero $
+ $Id: libspectrum.h.in 3426 2007-12-18 19:29:30Z 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
@@ -143,7 +143,7 @@
LIBSPECTRUM_ID_TAPE_WARAJEVO, /* Warajevo-style .tap tape image */
- LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* +D snapshot */
+ LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* DISCiPLE/+D snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SP, /* .sp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_SNP, /* .snp snapshot */
LIBSPECTRUM_ID_SNAPSHOT_ZXS, /* .zxs snapshot (zx32) */
@@ -165,11 +165,14 @@
LIBSPECTRUM_ID_TAPE_CSW, /* .csw tape image */
LIBSPECTRUM_ID_TAPE_Z80EM, /* Z80Em tape image */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
LIBSPECTRUM_ID_TAPE_WAV, /* .wav tape image */
+ LIBSPECTRUM_ID_TAPE_SPC, /* SP-style .spc tape image */
+ LIBSPECTRUM_ID_TAPE_STA, /* Speculator-style .sta tape image */
+ LIBSPECTRUM_ID_TAPE_LTP, /* Nuclear ZX-style .ltp tape image */
LIBSPECTRUM_ID_COMPRESSED_XFD, /* xfdmaster (Amiga) compressed file */
- LIBSPECTRUM_ID_DISK_IMG, /* .img +D disk image */
- LIBSPECTRUM_ID_DISK_MGT, /* .mgt +D disk image */
+ LIBSPECTRUM_ID_DISK_IMG, /* .img DISCiPLE/+D disk image */
+ LIBSPECTRUM_ID_DISK_MGT, /* .mgt DISCiPLE/+D disk image */
LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */
@@ -200,9 +203,9 @@
LIBSPECTRUM_CLASS_MICRODRIVE, /* Microdrive cartridges */
- /* Below here, present only in x.x.x and later */
+ /* Below here, present only in 0.4.0 and later */
- LIBSPECTRUM_CLASS_DISK_PLUSD, /* +D disk image */
+ LIBSPECTRUM_CLASS_DISK_PLUSD, /* DISCiPLE/+D disk image */
LIBSPECTRUM_CLASS_SCREENSHOT, /* Screenshot */
@@ -290,6 +293,11 @@
LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY; /* SE-style memory paging */
extern const int WIN32_DLL
LIBSPECTRUM_MACHINE_CAPABILITY_NTSC; /* NTSC display */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY; /* Pentagon 512 memory paging */
+extern const int WIN32_DLL
+LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY;
+ /* Pentagon 1024 memory paging */
/* Get the capabilities of a machine */
int WIN32_DLL libspectrum_machine_capabilities( libspectrum_machine type );
Modified: trunk/libspectrum/libspectrum/plusd.c
===================================================================
--- trunk/libspectrum/libspectrum/plusd.c 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/plusd.c 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,8 @@
-/* plusd.c: Routines for handling +D snapshots
+/* plusd.c: Routines for handling DISCiPLE/+D snapshots
Copyright (c) 1998,2003 Philip Kendall
+ Copyright (c) 2007 Stuart Brady
- $Id: plusd.c 3145 2007-09-04 14:39:35Z zubzero $
+ $Id: plusd.c 3440 2007-12-19 03:29:38Z 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
@@ -25,30 +26,71 @@
#include <config.h>
+#include <string.h>
+
#include "internals.h"
#define PLUSD_HEADER_LENGTH 22
+static libspectrum_error
+identify_machine( size_t buffer_length, libspectrum_snap *snap );
+static libspectrum_error
+libspectrum_plusd_read_header( const libspectrum_byte *buffer,
+ size_t buffer_length, libspectrum_snap *snap );
+static libspectrum_error
+libspectrum_plusd_read_data( const libspectrum_byte *buffer,
+ libspectrum_snap *snap );
+static libspectrum_byte
+readbyte( libspectrum_snap *snap, libspectrum_word address );
+static libspectrum_error
+libspectrum_plusd_read_128_data( libspectrum_snap *snap,
+ const libspectrum_byte *buffer );
+
libspectrum_error
libspectrum_plusd_read( libspectrum_snap *snap, const libspectrum_byte *buffer,
- size_t length )
+ size_t buffer_length )
{
- libspectrum_byte i, iff; const libspectrum_byte *ptr;
- libspectrum_word sp;
- libspectrum_error error;
+ int error;
- /* Length must be at least the header plus 48K of RAM */
- if( length < PLUSD_HEADER_LENGTH + 0xc000 ) {
- libspectrum_print_error(
- LIBSPECTRUM_ERROR_CORRUPT,
- "libspectrum_plusd_read: not enough bytes for header"
- );
+ error = identify_machine( buffer_length, snap );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ error = libspectrum_plusd_read_header( buffer, buffer_length, snap );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ buffer += PLUSD_HEADER_LENGTH;
+
+ error = libspectrum_plusd_read_data( buffer, snap );
+ if( error != LIBSPECTRUM_ERROR_NONE );
+
+ return LIBSPECTRUM_ERROR_NONE;
+}
+
+static libspectrum_error
+identify_machine( size_t buffer_length, libspectrum_snap *snap )
+{
+ switch( buffer_length ) {
+ case PLUSD_HEADER_LENGTH + 0xc000:
+ libspectrum_snap_set_machine( snap, LIBSPECTRUM_MACHINE_48 );
+ break;
+ case PLUSD_HEADER_LENGTH + 1 + 0x20000:
+ libspectrum_snap_set_machine( snap, LIBSPECTRUM_MACHINE_128 );
+ break;
+ default:
+ libspectrum_print_error( LIBSPECTRUM_ERROR_CORRUPT,
+ "plusd identify_machine: unknown length" );
return LIBSPECTRUM_ERROR_CORRUPT;
}
- /* All +D snaps are of the 48K machine */
- libspectrum_snap_set_machine( snap, LIBSPECTRUM_MACHINE_48 );
+ return LIBSPECTRUM_ERROR_NONE;
+}
+static libspectrum_error
+libspectrum_plusd_read_header( const libspectrum_byte *buffer,
+ size_t buffer_length, libspectrum_snap *snap )
+{
+ libspectrum_byte i;
+
libspectrum_snap_set_iy ( snap, buffer[ 0] + buffer[ 1] * 0x100 );
libspectrum_snap_set_ix ( snap, buffer[ 2] + buffer[ 3] * 0x100 );
libspectrum_snap_set_de_( snap, buffer[ 4] + buffer[ 5] * 0x100 );
@@ -61,40 +103,132 @@
libspectrum_snap_set_hl ( snap, buffer[16] + buffer[17] * 0x100 );
/* Header offset 18 is 'rubbish' */
i = buffer[19]; libspectrum_snap_set_i( snap, i );
- sp = buffer[20] + buffer[21] * 0x100;
+ libspectrum_snap_set_sp ( snap, buffer[20] + buffer[21] * 0x100 );
/* Make a guess at the interrupt mode depending on what I was set to */
libspectrum_snap_set_im( snap, ( i == 0 || i == 63 ) ? 1 : 2 );
- buffer += PLUSD_HEADER_LENGTH; length -= PLUSD_HEADER_LENGTH;
+ buffer += PLUSD_HEADER_LENGTH;
+ return LIBSPECTRUM_ERROR_NONE;
+}
+
+static libspectrum_error
+libspectrum_plusd_read_data( const libspectrum_byte *buffer,
+ libspectrum_snap *snap )
+{
+ libspectrum_byte iff;
+ libspectrum_word sp;
+ int error;
+
+ sp = libspectrum_snap_sp( snap );
+
/* We must have 0x4000 <= SP <= 0xfffa so we can rescue the stacked
registers */
if( sp < 0x4000 || sp > 0xfffa ) {
libspectrum_print_error(
LIBSPECTRUM_ERROR_CORRUPT,
- "libspectrum_plusd_read: SP invalid (0x%04x)", sp
+ "libspectrum_plusd_read_data: SP invalid (0x%04x)", sp
);
return LIBSPECTRUM_ERROR_CORRUPT;
}
-
+
+ switch( libspectrum_snap_machine( snap ) ) {
+
+ case LIBSPECTRUM_MACHINE_48:
+
+ /* Split the RAM into separate pages */
+ error = libspectrum_split_to_48k_pages( snap, buffer );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ break;
+
+ case LIBSPECTRUM_MACHINE_128:
+
+ libspectrum_snap_set_out_128_memoryport( snap, buffer[0] );
+ buffer++;
+
+ error = libspectrum_plusd_read_128_data( snap, buffer );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ break;
+
+ default:
+ libspectrum_print_error( LIBSPECTRUM_ERROR_LOGIC,
+ "libspectrum_plusd_read_data: unknown machine" );
+ return LIBSPECTRUM_ERROR_LOGIC;
+
+ }
+
/* R, IFF, AF and PC are stored on the stack */
- ptr = &buffer[ sp - 0x4000 ];
-
- iff = ptr[0] & 0x04;
- libspectrum_snap_set_r ( snap, ptr[1] );
+ iff = readbyte( snap, sp ) & 0x04;
+ libspectrum_snap_set_r ( snap, readbyte( snap, sp + 1 ) );
libspectrum_snap_set_iff1( snap, iff );
libspectrum_snap_set_iff2( snap, iff );
- libspectrum_snap_set_f ( snap, ptr[2] );
- libspectrum_snap_set_a ( snap, ptr[3] );
- libspectrum_snap_set_pc ( snap, ptr[4] + ptr[5] * 0x100 );
+ libspectrum_snap_set_f ( snap, readbyte( snap, sp + 2 ) );
+ libspectrum_snap_set_a ( snap, readbyte( snap, sp + 3 ) );
+ libspectrum_snap_set_pc ( snap, readbyte( snap, sp + 4 ) +
+ readbyte( snap, sp + 5 ) * 0x100 );
/* Store SP + 6 to account for those unstacked values */
libspectrum_snap_set_sp( snap, sp + 6 );
- /* Split the RAM into separate pages */
- error = libspectrum_split_to_48k_pages( snap, buffer );
- if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+ return LIBSPECTRUM_ERROR_NONE;
+}
+static libspectrum_byte
+readbyte( libspectrum_snap *snap, libspectrum_word address )
+{
+ int page;
+
+ switch( address >> 14 ) {
+
+ case 1:
+ page = 5;
+ break;
+
+ case 2:
+ page = 2;
+ break;
+
+ case 3:
+ page = libspectrum_snap_out_128_memoryport( snap ) & 0x07;
+ break;
+
+ default:
+ return 0;
+
+ }
+
+ return libspectrum_snap_pages( snap, page )[ address & 0x3fff ];
+}
+
+static libspectrum_error
+libspectrum_plusd_read_128_data( libspectrum_snap *snap,
+ const libspectrum_byte *buffer )
+{
+ int i, j;
+
+ for( i=0; i<8; i++ ) {
+
+ libspectrum_byte *ram;
+
+ ram = malloc( 0x4000 * sizeof( libspectrum_byte ) );
+ if( ram == NULL ) {
+ for( j = 0; j < i; j++ ) {
+ free( libspectrum_snap_pages( snap, i ) );
+ libspectrum_snap_set_pages( snap, i, NULL );
+ }
+ libspectrum_print_error( LIBSPECTRUM_ERROR_MEMORY,
+ "libspectrum_plusd_read_128_data: out of memory" );
+ return LIBSPECTRUM_ERROR_MEMORY;
+ }
+ libspectrum_snap_set_pages( snap, i, ram );
+
+ memcpy( ram, buffer, 0x4000 );
+ buffer += 0x4000;
+
+ }
+
return LIBSPECTRUM_ERROR_NONE;
}
Modified: trunk/libspectrum/libspectrum/sna.c
===================================================================
--- trunk/libspectrum/libspectrum/sna.c 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/sna.c 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
/* sna.c: Routines for handling .sna snapshots
Copyright (c) 2001-2002 Philip Kendall
- $Id: sna.c 3237 2007-10-24 18:24:07Z zubzero $
+ $Id: sna.c 3351 2007-11-29 15:59:47Z 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
@@ -150,9 +150,8 @@
libspectrum_sna_read_data( const libspectrum_byte *buffer,
size_t buffer_length, libspectrum_snap *snap )
{
- int error;
- int offset; int page;
- int i,j;
+ int error, page, i, j;
+ libspectrum_word sp, offset;
if( buffer_length < 0xc000 ) {
libspectrum_print_error(
@@ -166,8 +165,17 @@
case LIBSPECTRUM_MACHINE_48:
+ sp = libspectrum_snap_sp( snap );
+ if( sp < 0x4000 || sp == 0xffff ) {
+ libspectrum_print_error(
+ LIBSPECTRUM_ERROR_CORRUPT,
+ "libspectrum_sna_read_data: SP invalid (0x%04x)", sp
+ );
+ return LIBSPECTRUM_ERROR_CORRUPT;
+ }
+
/* Rescue PC from the stack */
- offset = libspectrum_snap_sp( snap ) - 0x4000;
+ offset = sp - 0x4000;
libspectrum_snap_set_pc( snap, buffer[offset] + 0x100 * buffer[offset+1] );
/* Increase SP as PC has been unstacked */
@@ -420,7 +428,7 @@
error = write_page( &( (*ptr)[ 0x8000 ] ), snap, 0 );
if( error ) return error;
- /* Overwrite a bit of memory with SP */
+ /* Place PC on the stack */
stack = &( (*ptr)[ libspectrum_snap_sp( snap ) - 0x4000 - 2 ] );
libspectrum_write_word( &stack, libspectrum_snap_pc( snap ) );
Modified: trunk/libspectrum/libspectrum/snap_accessors.txt
===================================================================
--- trunk/libspectrum/libspectrum/snap_accessors.txt 2008-02-14 12:08:29 UTC (rev 477)
+++ trunk/libspectrum/libspectrum/snap_accessors.txt 2008-02-14 13:00:36 UTC (rev 478)
@@ -1,7 +1,7 @@
# snap_accessors.txt: simple accessors for libspectrum_snap
# Copyright (c) 2003 Philip Kendall
-# $Id: snap_accessors.txt 2890 2007-05-26 19:31:43Z zubzero $
+# $Id: snap_accessors.txt 3408 2007-12-05 01:45:24Z 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
@@ -59,6 +59,14 @@
libspectrum_byte out_scld_hsr
libspectrum_byte out_scld_dec
+int interface1_active
+int interface1_pa...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-14 12:08:24
|
Revision: 477
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=477&view=rev
Author: fredm
Date: 2008-02-14 04:08:29 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Remove old vendor branch.
Removed Paths:
-------------
vendor/libspectrum/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-14 12:07:54
|
Revision: 476
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=476&view=rev
Author: fredm
Date: 2008-02-14 04:07:58 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Remove old vendor branch.
Removed Paths:
-------------
vendor/fuse/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-14 12:06:51
|
Revision: 475
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=475&view=rev
Author: fredm
Date: 2008-02-14 04:06:55 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Import vendor libspectrum-0.4.0 and fuse-0.9.0.
Modified Paths:
--------------
vendor/fuse-emulator/current/fuse/ChangeLog
vendor/fuse-emulator/current/fuse/Makefile.am
vendor/fuse-emulator/current/fuse/README
vendor/fuse-emulator/current/fuse/ay.c
vendor/fuse-emulator/current/fuse/compat/Makefile.am
vendor/fuse-emulator/current/fuse/compat/win32/osname.c
vendor/fuse-emulator/current/fuse/configure.in
vendor/fuse-emulator/current/fuse/disk/beta.c
vendor/fuse-emulator/current/fuse/disk/beta.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/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/display.c
vendor/fuse-emulator/current/fuse/divide.c
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/hacking/tc2048_tech_notes.txt
vendor/fuse-emulator/current/fuse/if1.c
vendor/fuse-emulator/current/fuse/if1.h
vendor/fuse-emulator/current/fuse/if2.c
vendor/fuse-emulator/current/fuse/input.c
vendor/fuse-emulator/current/fuse/joystick.c
vendor/fuse-emulator/current/fuse/kempmouse.c
vendor/fuse-emulator/current/fuse/keyboard.c
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/pentagon1024.c
vendor/fuse-emulator/current/fuse/machines/scorpion.c
vendor/fuse-emulator/current/fuse/machines/spec128.c
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/ts2068.c
vendor/fuse-emulator/current/fuse/man/fuse.1
vendor/fuse-emulator/current/fuse/memory.c
vendor/fuse-emulator/current/fuse/menu.c
vendor/fuse-emulator/current/fuse/menu.h
vendor/fuse-emulator/current/fuse/menu_data.dat
vendor/fuse-emulator/current/fuse/menu_data.pl
vendor/fuse-emulator/current/fuse/module.c
vendor/fuse-emulator/current/fuse/module.h
vendor/fuse-emulator/current/fuse/periph.c
vendor/fuse-emulator/current/fuse/periph.h
vendor/fuse-emulator/current/fuse/printer.c
vendor/fuse-emulator/current/fuse/profile.c
vendor/fuse-emulator/current/fuse/scld.c
vendor/fuse-emulator/current/fuse/settings.dat
vendor/fuse-emulator/current/fuse/settings.pl
vendor/fuse-emulator/current/fuse/simpleide.c
vendor/fuse-emulator/current/fuse/slt.c
vendor/fuse-emulator/current/fuse/snapshot.c
vendor/fuse-emulator/current/fuse/sound/alsasound.c
vendor/fuse-emulator/current/fuse/sound/sdlsound.c
vendor/fuse-emulator/current/fuse/spectrum.c
vendor/fuse-emulator/current/fuse/spectrum.h
vendor/fuse-emulator/current/fuse/tape.c
vendor/fuse-emulator/current/fuse/tape.h
vendor/fuse-emulator/current/fuse/ui/fb/fbdisplay.c
vendor/fuse-emulator/current/fuse/ui/fb/fbmouse.c
vendor/fuse-emulator/current/fuse/ui/gtk/binary.c
vendor/fuse-emulator/current/fuse/ui/gtk/confirm.c
vendor/fuse-emulator/current/fuse/ui/gtk/fileselector.c
vendor/fuse-emulator/current/fuse/ui/gtk/gtkjoystick.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/rollback.c
vendor/fuse-emulator/current/fuse/ui/gtk/roms.c
vendor/fuse-emulator/current/fuse/ui/options.dat
vendor/fuse-emulator/current/fuse/ui/sdl/sdlui.c
vendor/fuse-emulator/current/fuse/ui/ui.h
vendor/fuse-emulator/current/fuse/ui/win32/Makefile.am
vendor/fuse-emulator/current/fuse/ui/win32/error.c
vendor/fuse-emulator/current/fuse/ui/win32/win32internals.h
vendor/fuse-emulator/current/fuse/ui/win32/win32ui.c
vendor/fuse-emulator/current/fuse/ui.c
vendor/fuse-emulator/current/fuse/ula.c
vendor/fuse-emulator/current/fuse/utils.c
vendor/fuse-emulator/current/fuse/widget/browse.c
vendor/fuse-emulator/current/fuse/widget/filesel.c
vendor/fuse-emulator/current/fuse/widget/menu.c
vendor/fuse-emulator/current/fuse/widget/options.pl
vendor/fuse-emulator/current/fuse/widget/roms.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/coretest.c
vendor/fuse-emulator/current/fuse/z80/tests/Makefile.am
vendor/fuse-emulator/current/fuse/z80/z80.c
vendor/fuse-emulator/current/fuse/z80/z80.pl
vendor/fuse-emulator/current/fuse/z80/z80_macros.h
vendor/fuse-emulator/current/fuse/z80/z80_ops.c
vendor/fuse-emulator/current/fuse/zxatasp.c
vendor/fuse-emulator/current/fuse/zxcf.c
vendor/fuse-emulator/current/libspectrum/COPYING
vendor/fuse-emulator/current/libspectrum/ChangeLog
vendor/fuse-emulator/current/libspectrum/Makefile.am
vendor/fuse-emulator/current/libspectrum/README
vendor/fuse-emulator/current/libspectrum/accessor.pl
vendor/fuse-emulator/current/libspectrum/configure.in
vendor/fuse-emulator/current/libspectrum/csw.c
vendor/fuse-emulator/current/libspectrum/dll.c
vendor/fuse-emulator/current/libspectrum/doc/cvs-tags
vendor/fuse-emulator/current/libspectrum/doc/libspectrum.3
vendor/fuse-emulator/current/libspectrum/doc/libspectrum.txt
vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog
vendor/fuse-emulator/current/libspectrum/internals.h
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/sna.c
vendor/fuse-emulator/current/libspectrum/snap_accessors.txt
vendor/fuse-emulator/current/libspectrum/snapshot.c
vendor/fuse-emulator/current/libspectrum/szx.c
vendor/fuse-emulator/current/libspectrum/tap.c
vendor/fuse-emulator/current/libspectrum/tape.c
vendor/fuse-emulator/current/libspectrum/tape_block.c
vendor/fuse-emulator/current/libspectrum/test/Makefile.am
vendor/fuse-emulator/current/libspectrum/test/test.c
vendor/fuse-emulator/current/libspectrum/timings.c
vendor/fuse-emulator/current/libspectrum/z80.c
Added Paths:
-----------
vendor/fuse-emulator/current/fuse/machines/pentagon.h
vendor/fuse-emulator/current/fuse/machines/pentagon512.c
vendor/fuse-emulator/current/libspectrum/test/empty.csw
vendor/fuse-emulator/current/libspectrum/test/sp-2000.sna.gz
vendor/fuse-emulator/current/libspectrum/test/sp-ffff.sna.gz
Modified: vendor/fuse-emulator/current/fuse/ChangeLog
===================================================================
--- vendor/fuse-emulator/current/fuse/ChangeLog 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/ChangeLog 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,6 +1,6 @@
-2007-xx-xx Philip Kendall <phi...@sh...>
+2008-01-05 Philip Kendall <phi...@sh...>
- * Fuse 0.x.x released
+ * Fuse 0.9.0 released
* New features:
* Add +D disk interface support (Stuart Brady).
@@ -26,14 +26,43 @@
* Fix undocumented flags after BIT n,(IX+d) instructions (Philip
Kendall).
* Fix undocumented behaviour of DAA (Stuart Brady).
- * Separate out contention when MREQ isn't active, as the +2A/+3 ULA
- applies contention only when MREQ is active (Philip Kendall).
+ * High ports (0xc000 to 0xffff) are contended on the 128K when a
+ contended RAM page is paged in (Philip Kendall; thanks, Patrik
+ Rak).
+ * Correct contention for the +2A/+3 ULA (Philip Kendall).
+ * Machine specific improvements:
+ * Fix joystick port mask on TC2048 (Fredrick Meunier)
+ * Improved keyboard handling for 128K / +3 machines (Philip Kendall).
+ * Improved contention for TC2048 and TC2068 machines (Fredrick
+ Meunier; thanks, Mark Woodmass).
+
* Miscellaneous:
- * Removed the GTK 1.x UI (please note that GTK 2.x will remain
+ * Emulation speed no longer artificially limited to 999% (Stuart
+ Brady).
+ * Much improved debugger for the widget UIs (Darren Salt).
+ * Timed breakpoints now work in the debugger (Philip Kendall).
+ * Keys now repeat in the widget fileselector (Fredrick Meunier;
+ thanks, Cygnus).
+ * Removed the GTK+ 1.x UI (please note that GTK+ 2.x will remain
supported for the foreseeable future) (Philip Kendall).
+ * GTK+ UI now uses the GTK+ 2.x style file selectors (Philip
+ Kendall).
+ * More informative error messages when ejecting disks (Stuart
+ Brady).
+ * Ejecting Microdrive cartridges now checks for changes and doesn't
+ automatically overwrite the original file (Stuart Brady).
+ * Snapshots can no longer cause the profiler to assert (Philip
+ Kendall; thanks, Stuart Brady).
+ * DivIDE could page itself in incorrectly after a reset (Stuart
+ Brady).
+ * Stop invalid input causing segfault in GTK+ 'Load Binary Chunk'
+ dialog, and allow a length of 65536 to be used (Stuart Brady).
* Enable Fuse to build in directories other than the source
directory itself (Philip Kendall).
+ * 'make clean' now cleans generated files (Philip Kendall).
+ * Update +3e ROMs to v1.31 (Fredrick Meunier; thanks, Garry
+ Lancaster).
* Updated X11 UI (Gergely Szasz).
* Updated Win32 UI (Stuart Brady).
* Man page fixes (Stuart Brady).
@@ -69,7 +98,7 @@
when the start/end of a loader is detected (Philip Kendall).
* RZX 'rollback' support (Philip Kendall).
* DivIDE support (Matthew Westcott)
- * Interface I and microdrive emulation (Gergely Szasz).
+ * Interface I and Microdrive emulation (Gergely Szasz).
* TS2068 support (Fredrick Meunier).
* Kempston mouse emulation (Darren Salt).
* TZX generalized data block (0x19) support (Philip Kendall).
@@ -218,7 +247,7 @@
+ Stop output to the serial printer when printer emulation is
disabled; prevents the random appearance of 'printout.txt'
(Philip Kendall).
-
+
2004-02-19 Philip Kendall <pak...@sr...>
* Fuse 0.6.2.1 released.
@@ -261,7 +290,7 @@
printer emulation (Philip Kendall).
* Z80 core improvements:
- + Improved memory handling. Should be both quicker and more
+ + Improved memory handling. Should be both quicker and more
flexible.
+ Support for retriggered interrupts.
+ Don't allow interrupts after an EI instruction.
@@ -312,7 +341,7 @@
+ Make reading from both Timex joysticks simultaneously work
correctly (Fredrick Meunier).
+ Remove a possible segfault caused by the tape initialisation
- code trying to access the tape beeper before the beeper code
+ code trying to access the tape beeper before the beeper code
has been fully initialised (Witold Filipczyk, Fredrick Meunier).
+ Get the pause lengths correct when writing PSG files
(Russell Marks, Philip Kendall).
@@ -715,7 +744,7 @@
* Changed the default install location to `/usr/local' (Philip
Kendall).
- * Generate keysyms.c from keysyms.dat; allows me automatically
+ * Generate keysyms.c from keysyms.dat; allows me automatically
keep the Xlib/GTK+ and svgalib key tables in sync (Philip
Kendall).
@@ -849,4 +878,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog 3253 2007-10-26 02:02:17Z zubzero $
+$Id: ChangeLog 3462 2008-01-04 09:34:40Z pak21 $
Modified: vendor/fuse-emulator/current/fuse/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/Makefile.am 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/Makefile.am 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
# Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am 3218 2007-10-21 23:25:23Z zubzero $
+## $Id: Makefile.am 3318 2007-11-21 19:25:31Z 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
@@ -25,7 +25,7 @@
bin_PROGRAMS = fuse
-SUBDIRS = compat \
+SUBDIRS = @COMPAT_SUBDIR@ \
debugger \
disk \
hacking \
@@ -41,8 +41,7 @@
@WIDGET@ \
z80
-DIST_SUBDIRS = compat \
- debugger \
+DIST_SUBDIRS = debugger \
disk \
hacking \
lib \
@@ -97,6 +96,18 @@
zxatasp.c \
zxcf.c
+if COMPAT_DIRNAME
+fuse_SOURCES += compat/dirname.c
+endif
+
+if COMPAT_GETOPT
+fuse_SOURCES += compat/getopt.c compat/getopt1.c
+endif
+
+if COMPAT_MKSTEMP
+fuse_SOURCES += compat/mkstemp.c
+endif
+
EXTRA_fuse_SOURCES = windres.rc
fuse_LDADD = debugger/libdebugger.a \
@@ -117,7 +128,6 @@
@SAMPLERATE_LIBS@ \
@X_LIBS@ \
@XML_LIBS@ \
-compat/libcompat.a \
compat/@COMPAT_OSNAME@/libcompatos.a \
@WINDRES_OBJ@
@@ -195,3 +205,7 @@
CLEANFILES = settings.c \
settings.h
+
+AM_CPPFLAGS =
+
+include compat/Makefile.am
Modified: vendor/fuse-emulator/current/fuse/README
===================================================================
--- vendor/fuse-emulator/current/fuse/README 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/README 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,5 +1,5 @@
-The Free Unix Spectrum Emulator (Fuse) 0.8.0.1
-==============================================
+The Free Unix Spectrum Emulator (Fuse) 0.9.0
+============================================
Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home
@@ -10,10 +10,11 @@
What Fuse does have:
-* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048,
- TC2068 and TS2068, Pentagon 128 and Scorpion ZS 256 emulation,
- running at true Speccy speed on any computer you're likely to try it
- on.
+* Accurate Spectrum 16K/48K/128K/+2/+2A/+3 emulation.
+* Working Spectrum +3e and SE, Timex TC2048, TC2068 and TS2068,
+ Pentagon 128, "512" (Pentagon 128 with extra memory) and 1024 and
+ Scorpion ZS 256 emulation.
+* Runs at true Speccy speed on any computer you're likely to try it on.
* Support for loading from .tzx files.
* Sound (on systems supporting the Open Sound System, SDL, or OpenBSD/
Solaris's /dev/audio).
@@ -23,7 +24,7 @@
* Support for the RZX input recording file format, including
rollback and 'competition mode'.
* Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e,
- ZXATASP and ZXCF interfaces.
+ ZXATASP, ZXCF, Beta 128 and +D interfaces.
What you'll need to run Fuse
----------------------------
@@ -62,6 +63,11 @@
* Either the native port by Fredrick Meunier, or the original version
will compile on OS X 10.3 (Panther) or later.
+Windows
+
+* The Win32 and SDL UIs can be used under Windows, but the Win32 UI is
+ incomplete.
+
Building Fuse
-------------
@@ -141,6 +147,6 @@
( http://www.worldofspectrum.org/faq/index.html ) first!
Philip Kendall <phi...@sh...>
-11 May 2007
+5 January 2008
-$Id: README 2835 2007-05-13 10:01:36Z fredm $
+$Id: README 3462 2008-01-04 09:34:40Z pak21 $
Modified: vendor/fuse-emulator/current/fuse/ay.c
===================================================================
--- vendor/fuse-emulator/current/fuse/ay.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/ay.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* ay.c: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.c 3213 2007-10-21 16:37:52Z pak21 $
+ $Id: ay.c 3390 2007-12-03 12:59:54Z 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
@@ -25,6 +25,8 @@
#include <config.h>
+#include <string.h>
+
#include "compat.h"
#include "machine.h"
#include "module.h"
@@ -49,6 +51,7 @@
ay_reset,
NULL,
+ NULL,
ay_from_snapshot,
ay_to_snapshot,
Modified: vendor/fuse-emulator/current/fuse/compat/Makefile.am
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/Makefile.am 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/compat/Makefile.am 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003-2007 Philip Kendall
-## $Id: Makefile.am 3115 2007-08-19 02:49:14Z fredm $
+## $Id: Makefile.am 3283 2007-11-09 12:21:06Z 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
@@ -21,29 +21,16 @@
##
## E-mail: phi...@sh...
-AUTOMAKE_OPTIONS = foreign
+AM_CPPFLAGS += -I$(srcdir)/compat
-AM_CPPFLAGS = -I$(srcdir)/..
+DIST_SUBDIRS += compat/amiga \
+ compat/morphos \
+ compat/unix \
+ compat/win32
-SUBDIRS = @COMPAT_OSNAME@
+EXTRA_fuse_SOURCES += compat/dirname.c \
+ compat/getopt.c \
+ compat/getopt1.c \
+ compat/mkstemp.c
-DIST_SUBDIRS = amiga \
- morphos \
- unix \
- win32
-
-noinst_LIBRARIES = libcompat.a
-
-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
+noinst_HEADERS += compat/getopt.h
Modified: vendor/fuse-emulator/current/fuse/compat/win32/osname.c
===================================================================
--- vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/compat/win32/osname.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -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 3163 2007-09-06 21:41:45Z zubzero $
+ $Id: osname.c 3315 2007-11-20 03:01:59Z 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
@@ -49,9 +49,10 @@
default: windows_name = "unknown"; break;
}
- snprintf( osname, length, "Windows %s %ld.%ld build %ld %s",
- windows_name, buf.dwMajorVersion, buf.dwMinorVersion,
- buf.dwBuildNumber, buf.szCSDVersion );
+ /* The casts to int work around a suspected Wine (or MinGW) bug */
+ snprintf( osname, length, "Windows %s %i.%i build %i %s",
+ windows_name, (int)buf.dwMajorVersion, (int)buf.dwMinorVersion,
+ (int)buf.dwBuildNumber, buf.szCSDVersion );
return 0;
}
Modified: vendor/fuse-emulator/current/fuse/configure.in
===================================================================
--- vendor/fuse-emulator/current/fuse/configure.in 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/configure.in 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in 3253 2007-10-26 02:02:17Z zubzero $
+dnl $Id: configure.in 3429 2007-12-18 20:02:35Z 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
@@ -24,7 +24,7 @@
AC_CANONICAL_SYSTEM
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(fuse, 0.8.0.1)
+AM_INIT_AUTOMAKE(fuse, 0.9.0)
dnl Checks for programs.
AC_PROG_CC
@@ -580,32 +580,31 @@
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
+AM_CONDITIONAL(COMPAT_DIRNAME, test "$ac_cv_func_dirname" = no)
if test "$ac_cv_func_getopt_long" = no; then
case "$target_os" in
amigaos|morphos)
dnl Our getopt_long replacement doesn't work, so don't use it
;;
*)
- COMPAT_LIBADD="$COMPAT_LIBADD"'getopt.$(OBJEXT) getopt1.$(OBJEXT) '
+ compat_getopt=yes
missing_routines="$missing_routines"'getopt_long '
;;
esac
fi
+AM_CONDITIONAL(COMPAT_GETOPT, test "$compat_getopt" = yes)
if test "$ac_cv_func_mkstemp" = no; then
- COMPAT_LIBADD="$COMPAT_LIBADD"'mkstemp.$(OBJEXT) '
missing_routines="$missing_routines"'mkstemp '
fi
+AM_CONDITIONAL(COMPAT_MKSTEMP, test "$ac_cv_func_mkstemp" = no)
if test "x$missing_routines" = x; then
missing_routines='(none)'
fi
AC_MSG_RESULT($missing_routines)
-AC_SUBST(COMPAT_LIBADD)
dnl Work out which compatibility routines to use
AC_MSG_CHECKING(which compatibility routines to use)
@@ -624,6 +623,8 @@
;;
esac
AC_MSG_RESULT($COMPAT_OSNAME)
+COMPAT_SUBDIR="compat/$COMPAT_OSNAME"
+AC_SUBST(COMPAT_SUBDIR)
AC_SUBST(COMPAT_OSNAME)
dnl Do we want the low memory compile?
@@ -663,7 +664,6 @@
fi
AC_OUTPUT(Makefile \
-compat/Makefile \
compat/amiga/Makefile \
compat/morphos/Makefile \
compat/unix/Makefile \
@@ -687,6 +687,7 @@
ui/sdl/Makefile \
ui/scaler/Makefile \
ui/win32/Makefile \
+ui/win32/icons/Makefile \
ui/xlib/Makefile \
widget/Makefile \
z80/Makefile \
Modified: vendor/fuse-emulator/current/fuse/disk/beta.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/beta.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/beta.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* 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 $
+ $Id: beta.c 3400 2007-12-04 18:24:31Z 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
@@ -56,32 +56,41 @@
int beta_available = 0;
int beta_active = 0;
+int beta_builtin = 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 );
+const periph_t beta_peripherals[] = {
+ { 0x00ff, 0x001f, beta_sr_read, beta_cr_write },
+ { 0x00ff, 0x003f, beta_tr_read, beta_tr_write },
+ { 0x00ff, 0x005f, beta_sec_read, beta_sec_write },
+ { 0x00ff, 0x007f, beta_dr_read, beta_dr_write },
+ { 0x00ff, 0x00ff, beta_sp_read, beta_sp_write },
+};
+
+const size_t beta_peripherals_count =
+ sizeof( beta_peripherals ) / sizeof( periph_t );
+
+static void beta_reset( int hard_reset );
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_reset,
beta_memory_map,
+ NULL, /* XXX: beta_enabled_snapshot */
beta_from_snapshot,
beta_to_snapshot,
};
-
void
beta_page( void )
{
@@ -107,24 +116,6 @@
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 )
{
@@ -140,26 +131,32 @@
}
beta_fdc->dden = 1;
- beta_fdc->set_intrq = beta_set_intrq;
+ beta_fdc->set_intrq = NULL;
beta_fdc->reset_intrq = NULL;
- beta_fdc->set_datarq = beta_set_datarq;
- beta_fdc->reset_datarq = beta_reset_datarq;
+ beta_fdc->set_datarq = NULL;
+ beta_fdc->reset_datarq = NULL;
module_register( &beta_module_info );
return 0;
}
-void
-beta_reset( void )
+static void
+beta_reset( int hard_reset )
{
int i;
wd_fdc_drive *d;
- beta_active = 0;
-
event_remove_type( EVENT_TYPE_BETA_INDEX );
+ if( !periph_beta128_active ) {
+ beta_active = 0;
+ beta_available = 0;
+ return;
+ }
+
+ beta_available = 1;
+
wd_fdc_master_reset( beta_fdc );
for( i = 0; i < BETA_NUM_DRIVES; i++ ) {
@@ -169,15 +166,37 @@
d->index_interrupt = 0;
}
+ if( !beta_builtin ) {
+ machine_load_rom_bank( memory_map_romcs, 0, 0,
+ settings_current.rom_beta128,
+ settings_default.rom_beta128, 0x4000 );
+
+ memory_map_romcs[ 0 ].writable = 0;
+ memory_map_romcs[ 1 ].writable = 0;
+
+ memory_map_romcs[0].source = MEMORY_SOURCE_PERIPHERAL;
+ memory_map_romcs[1].source = MEMORY_SOURCE_PERIPHERAL;
+
+ beta_active = 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_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
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_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
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_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT,
beta_drives[ BETA_DRIVE_D ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
beta_fdc->current_drive = &beta_drives[ 0 ];
machine_current->memory_map();
@@ -195,7 +214,7 @@
libspectrum_byte
beta_sr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_sr_read( beta_fdc );
@@ -212,7 +231,7 @@
libspectrum_byte
beta_tr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_tr_read( beta_fdc );
@@ -229,7 +248,7 @@
libspectrum_byte
beta_sec_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_sec_read( beta_fdc );
@@ -246,7 +265,7 @@
libspectrum_byte
beta_dr_read( libspectrum_word port GCC_UNUSED, int *attached )
{
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
return wd_fdc_dr_read( beta_fdc );
@@ -278,21 +297,19 @@
{
libspectrum_byte b;
- if( !beta_active ) return 0;
+ if( !beta_active ) return 0xff;
*attached = 1;
b = 0;
- if( beta_intrq )
+ if( beta_fdc->intrq )
b |= 0x80;
- if( beta_datarq )
+ if( beta_fdc->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;
}
@@ -317,30 +334,50 @@
/* 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;
+
+ if( filename ) {
+ error = disk_open( &d->disk, filename, 0 );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( d->disk.status ) );
+ return 1;
+ }
+ } else {
+ error = disk_new( &d->disk, 2, 80, DISK_DENS_AUTO, DISK_UDI );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to create 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 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
break;
case BETA_DRIVE_B:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
break;
case BETA_DRIVE_C:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
break;
case BETA_DRIVE_D:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
break;
}
- if( autoload ) {
+ if( filename && autoload ) {
PC = 0;
machine_current->ram.last_byte |= 0x10; /* Select ROM 1 */
beta_page();
@@ -350,16 +387,47 @@
}
int
-beta_disk_insert_default_autoload( beta_drive_number which,
- const char *filename )
+beta_disk_writeprotect( beta_drive_number which, int wrprot )
{
- return beta_disk_insert( which, filename, settings_current.auto_load );
+ wd_fdc_drive *d;
+
+ if( which >= BETA_NUM_DRIVES )
+ return 1;
+
+ d = &beta_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 1;
+
+ fdd_wrprot( &d->fdd, wrprot );
+
+ /* Set the 'writeprotect' item */
+ switch( which ) {
+ case BETA_DRIVE_A:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_WP_SET,
+ !beta_drives[ BETA_DRIVE_A ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_B:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_WP_SET,
+ !beta_drives[ BETA_DRIVE_B ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_C:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_WP_SET,
+ !beta_drives[ BETA_DRIVE_C ].fdd.wrprot );
+ break;
+ case BETA_DRIVE_D:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_WP_SET,
+ !beta_drives[ BETA_DRIVE_D ].fdd.wrprot );
+ break;
+ }
+ return 0;
}
int
beta_disk_eject( beta_drive_number which, int write )
{
wd_fdc_drive *d;
+ char drive;
if( which >= BETA_NUM_DRIVES )
return 1;
@@ -377,8 +445,18 @@
if( d->disk.dirty ) {
+ switch( which ) {
+ case BETA_DRIVE_A: drive = 'A'; break;
+ case BETA_DRIVE_B: drive = 'B'; break;
+ case BETA_DRIVE_C: drive = 'C'; break;
+ case BETA_DRIVE_D: drive = 'D'; break;
+ default: drive = '?'; break;
+ }
+
ui_confirm_save_t confirm = ui_confirm_save(
- "Disk has been modified.\nDo you want to save it?"
+ "Disk in Beta drive %c: has been modified.\n"
+ "Do you want to save it?",
+ drive
);
switch( confirm ) {
@@ -434,13 +512,6 @@
}
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;
@@ -496,6 +567,7 @@
int attached;
wd_fdc *f = beta_fdc;
+ libspectrum_snap_set_beta_active( snap, 1 );
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 ) );
Modified: vendor/fuse-emulator/current/fuse/disk/beta.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/beta.h 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/beta.h 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* 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 $
+ $Id: beta.h 3400 2007-12-04 18:24:31Z 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
@@ -30,9 +30,15 @@
#include <libspectrum.h>
+#include "periph.h"
+
extern int beta_available; /* Is the Beta disk interface available for use? */
extern int beta_active; /* Is the Beta disk interface enabled? */
+extern int beta_builtin; /* Is the Beta disk interface built-in? */
+extern const periph_t beta_peripherals[];
+extern const size_t beta_peripherals_count;
+
int beta_init( void );
void beta_end( void );
@@ -63,15 +69,11 @@
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_writeprotect( beta_drive_number which, int wrprot );
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 */
Modified: vendor/fuse-emulator/current/fuse/disk/disk.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/disk.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/disk.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* disk.c: Routines for handling disk images
Copyright (c) 2007 Gergely Szasz
- $Id: disk.c 3226 2007-10-23 14:01:20Z zubzero $
+ $Id: disk.c 3471 2008-01-05 18:14:15Z 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,6 +25,7 @@
#include <config.h>
+#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -458,7 +459,7 @@
}
static int
-calc_sectorlen( disk_t *d, int sector_length, int gap )
+calc_sectorlen( int mfm, int sector_length, int gap )
{
int len = 0;
disk_gap_t *g = &gaps[ gap ];
@@ -467,7 +468,7 @@
len += 7;
/*------------------------------ GAP II ------------------------------*/
len += g->len[2] + g->sync_len;
- if( d->density != DISK_SD )
+ if( mfm )
len += 3;
/*--------------------------------- data ---------------------------------*/
len += 1; /* DAM */
@@ -475,7 +476,7 @@
len += 2; /* CRC */
/*------------------------------ GAP III ------------------------------*/
len += g->len[3] + g->sync_len;
- if( d->density != DISK_SD )
+ if( mfm )
len += 3;
return len;
}
@@ -486,12 +487,13 @@
#define PREINDEX 1
static int
-trackgen( disk_t *d, FILE *file, int head, int track, int sector_base,
- int sectors, int sector_length, int preindex, int gap, int interleave,
- int autofill )
+trackgen( disk_t *d, FILE *file, int head, int track,
+ int sector_base, int sectors, int sector_length, int preindex,
+ int gap, int interleave, int autofill )
{
int i, s, pos;
- int slen = calc_sectorlen( d, sector_length, gap );
+ int slen = calc_sectorlen( ( d->density != DISK_SD && d->density != DISK_8_SD ),
+ sector_length, gap );
int idx;
d->i = 0;
@@ -524,10 +526,6 @@
void
disk_close( disk_t *d )
{
- if( d->filename != NULL ) {
- free( d->filename );
- d->filename = NULL;
- }
if( d->data != NULL ) {
free( d->data );
d->data = NULL;
@@ -548,17 +546,27 @@
if( d->density != DISK_DENS_AUTO ) {
d->bpt = disk_bpt[ d->density ];
- } else if( d->bpt > 12000 ) {
+ } else if( d->bpt > 13000 ) {
return d->status = DISK_UNSUP;
- } else if( d->bpt > 6000 ) {
+ } else if( d->bpt > 10600 ) {
+ d->density = DISK_HD;
d->bpt = disk_bpt[ DISK_HD ];
- } else if( d->bpt > 3000 ) {
+ } else if( d->bpt > 6500 ) {
+ d->density = DISK_8_DD;
+ d->bpt = disk_bpt[ DISK_8_DD ];
+ } else if( d->bpt > 5300 ) {
+ d->density = DISK_DD;
d->bpt = disk_bpt[ DISK_DD ];
+ } else if( d->bpt > 3250 ) {
+ d->density = DISK_8_SD;
+ d->bpt = disk_bpt[ DISK_8_SD ];
} else if( d->bpt > 0 ) {
+ d->density = DISK_SD;
d->bpt = disk_bpt[ DISK_SD ];
}
- d->tlen = d->bpt + d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 );
+ if( d->bpt > 0 )
+ d->tlen = d->bpt + d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 );
dlen = d->sides * d->cylinders * d->tlen; /* track len with clock marks */
if( ( d->data = calloc( 1, dlen ) ) == NULL )
@@ -586,8 +594,8 @@
if( disk_alloc( d ) != DISK_OK )
return d->status;
- d->filename = NULL;
-
+ d->wrprot = 0;
+ d->dirty = 0;
return d->status = DISK_OK;
}
@@ -611,7 +619,7 @@
static int
open_udi( FILE *file, disk_t *d )
{
- int i, bpt;
+ int i, j, bpt;
d->sides = head[10] + 1;
d->cylinders = head[9] + 1;
@@ -632,8 +640,15 @@
return d->status = DISK_OPEN;
}
+ if( d->bpt == 0 )
+ return d->status = DISK_GEOM;
+
+ bpt = d->bpt; /* save the maximal value */
+ d->tlen = bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 );
+ d->bpt = 0; /* we know exactly the track len... */
if( disk_alloc( d ) != DISK_OK )
return d->status;
+ d->bpt = bpt; /* restore the maximal byte per track */
fseek( file, 16, SEEK_SET );
d->track = d->data;
@@ -644,8 +659,22 @@
if( head[0] != 0x00 )
return d->status = DISK_UNSUP;
/* read track + clocks */
- if( fread( d->track, bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
- return d->status = DISK_OPEN;
+ if( d->bpt == bpt ) { /* if udi track length equal with the maximal track length */
+ if( fread( d->track, bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
+ return d->status = DISK_OPEN;
+ } else {
+ if( fread( d->track, bpt , 1, file ) != 1 ) /* first the data */
+ return d->status = DISK_OPEN;
+ d->track += bpt;
+ for( j = d->bpt - bpt; j > 0; j--, d->track++ )
+ *d->track = 0x4e; /* fill track data with 0x4e */
+ if( fread( d->track, bpt / 8 + ( bpt % 8 ? 1 : 0 ), 1, file ) != 1 )
+ return d->status = DISK_OPEN; /* next the clock marks */
+ d->track += bpt / 8 + ( bpt % 8 ? 1 : 0 );
+ for( j = ( d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 ) ) -
+ ( bpt / 8 + ( bpt % 8 ? 1 : 0 ) ); j > 0; j--, d->track++ )
+ *d->track = 0x00; /* fill the clocks with 0x00 */
+ }
d->track += d->tlen;
}
@@ -760,7 +789,8 @@
static int
open_fdi( FILE *file, disk_t *d, int preindex )
{
- int i, j, h, bpt, gap;
+ int i, j, h, gap;
+ int bpt, bpt_fm, max_bpt = 0, max_bpt_fm = 0;
int data_offset, track_offset, head_offset, sector_offset;
d->wrprot = head[0x03] == 1 ? 1 : 0;
@@ -776,29 +806,41 @@
fseek( file, head_offset, SEEK_SET );
if( fread( head, 7, 1, file ) != 1 ) /* 7 := track head */
return d->status = DISK_OPEN;
- bpt = 0;
+ bpt = bpt_fm = 0;
for( j = 0; j < head[0x06]; j++ ) { /* calculate track len */
if( j % 35 == 0 ) { /* 35-sector header */
if( fread( head + 7, 245, 1, file ) != 1 ) /* 7*35 := max 35 sector head */
return d->status = DISK_OPEN;
}
- if( ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) != 0 )
- bpt += 0x80 << head[ 0x0a + 7 * ( j % 35 ) ];
+ if( ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) != 0 ) {
+ bpt += calc_sectorlen( 1, 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], GAP_MINIMAL_MFM );
+ bpt_fm += calc_sectorlen( 0, 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], GAP_MINIMAL_FM );
+ }
}
+ if( bpt > max_bpt )
+ max_bpt = bpt;
+ if( bpt_fm > max_bpt_fm )
+ max_bpt_fm = bpt_fm;
- if( bpt > d->bpt )
- d->bpt = bpt;
-
head_offset += 7 + 7 * head[ 0x06 ];
}
+
+ if( max_bpt == 0 || max_bpt_fm == 0 )
+ return d->status = DISK_GEOM;
d->density = DISK_DENS_AUTO; /* disk_alloc use d->bpt */
+ if( max_bpt_fm < 3000 ) { /* we choose an SD disk with FM */
+ d->bpt = max_bpt_fm;
+ gap = GAP_MINIMAL_FM;
+ } else {
+ d->bpt = max_bpt;
+ gap = GAP_MINIMAL_MFM;
+ }
if( disk_alloc( d ) != DISK_OK )
return d->status;
/* start reading the tracks */
- gap = d->bpt <= 3000 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
-
+
head_offset = h; /* restore head start */
for( i = 0; i < d->cylinders * d->sides; i++ ) { /* ALT */
fseek( file, head_offset, SEEK_SET );
@@ -841,21 +883,33 @@
open_cpc( FILE *file, disk_t *d, disk_type_t type, int preindex )
{
int i, j, seclen, gap;
+ int bpt, max_bpt = 0, max_bpt_fm = 0;
d->sides = head[0x31];
d->cylinders = head[0x30];
if( type == DISK_CPC ) {
- d->bpt = head[0x32] + 256 * head[0x33] - 0x100;
+ max_bpt = calc_sectorlen( 1, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_MFM );
+ max_bpt_fm = calc_sectorlen( 0, head[0x32] + 256 * head[0x33] - 0x100, GAP_MINIMAL_FM );
} else {
d->bpt = 0;
- for( i = 0; i < d->sides * d->cylinders; i++ )
- if( head[ 0x34 + i ] > d->bpt )
- d->bpt = head[ 0x34 + i ];
- d->bpt <<= 8;
- d->bpt -= 0x100;
+ for( i = 0; i < d->sides * d->cylinders; i++ ) {
+ bpt = calc_sectorlen( 1, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_MFM );
+ if( bpt > max_bpt )
+ max_bpt = bpt;
+ bpt = calc_sectorlen( 0, ( head[ 0x34 + i ] << 8 ) - 0x100, GAP_MINIMAL_FM );
+ if( bpt > max_bpt_fm )
+ max_bpt_fm = bpt;
+ }
}
+ if( max_bpt == 0 || max_bpt_fm == 0 )
+ return d->status = DISK_GEOM;
d->density = DISK_DENS_AUTO; /* disk_alloc use d->bpt */
+ if( max_bpt_fm < 3000 ) { /* we choose an SD disk with FM */
+ d->bpt = max_bpt_fm;
+ } else {
+ d->bpt = max_bpt;
+ }
if( disk_alloc( d ) != DISK_OK )
return d->status;
@@ -924,7 +978,7 @@
TR-DOS directory */
j = 0; /* index for head[] */
memset( head, 0, 256 );
- seclen = calc_sectorlen( d, 256, GAP_TRDOS ); /* one sector raw length */
+ seclen = calc_sectorlen( 1, 256, GAP_TRDOS ); /* one sector raw length */
for( i = 0; i < scl_files; i++ ) { /* read all entry and build TR-DOS dir */
if( fread( head + j, 14, 1, file ) != 1 )
return d->status = DISK_OPEN;
@@ -990,7 +1044,7 @@
static int
open_td0( FILE *file, disk_t *d, int preindex )
{
- int i, j, s, sectors, seclen, bpt, gap, mfm;
+ int i, j, s, sectors, seclen, bpt, gap, mfm, mfm_old;
int data_offset, track_offset, sector_offset;
unsigned char *buff;
@@ -998,7 +1052,7 @@
return d->status = DISK_IMPL; /* not implemented */
buff = NULL; /* we may use this buffer */
- mfm = head[5] & 0x80 ? 0 : 1; /* td0notes say: may older teledisk
+ mfm_old = head[5] & 0x80 ? 0 : 1; /* td0notes say: may older teledisk
indicate the SD on high bit of
data rate */
d->sides = head[9]; /* 1 or 2 */
@@ -1011,6 +1065,7 @@
/* determine the greatest track length */
d->bpt = 0;
d->cylinders = 0;
+ seclen = 0;
while( 1 ) {
fseek( file, track_offset, SEEK_SET );
if( fread( head, 1, 1, file ) != 1 )
@@ -1023,6 +1078,7 @@
d->cylinders = head[1] + 1;
bpt = 0;
sector_offset = track_offset + 4;
+ mfm = head[2] & 0x80 ? 0 : 1; /* 0x80 == 1 => SD track */
for( s = 0; s < sectors; s++ ) {
fseek( file, sector_offset, SEEK_SET );
if( fread( head, 6, 1, file ) != 1 )
@@ -1031,7 +1087,8 @@
if( fread( head + 6, 3, 1, file ) != 1 ) /* read data header */
return d->status = DISK_OPEN;
- bpt += 0x80 << head[3];
+ bpt += calc_sectorlen( mfm_old || mfm, 0x80 << head[3],
+ mfm_old || mfm ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM );
if( head[3] > seclen )
seclen = head[3]; /* biggest sector */
sector_offset += head[6] + 256 * head[7] - 1;
@@ -1043,6 +1100,9 @@
track_offset = sector_offset;
}
+ if( d->bpt == 0 )
+ return d->status = DISK_GEOM;
+
d->density = DISK_DENS_AUTO;
if( disk_alloc( d ) != DISK_OK )
return d->status;
@@ -1066,7 +1126,7 @@
d->clocks = d->track + d->bpt;
d->i = 0;
/* later teledisk -> if head[2] & 0x80 -> FM track */
- gap = mfm == 0 || head[2] & 0x80 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
+ gap = mfm_old || head[2] & 0x80 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM;
postindex_add( d, gap );
for( s = 0; s < sectors; s++ ) {
@@ -1249,6 +1309,8 @@
if( access( filename, W_OK ) == -1 ) /* file read only */
d->wrprot = 1;
+ else
+ d->wrprot = 0;
switch ( type ) {
case DISK_UDI:
@@ -1287,14 +1349,9 @@
fclose( file );
return d->status;
}
- if( ( d->filename = malloc( strlen( filename ) + 1 ) ) == NULL ) {
- free( d->data );
- fclose( file );
- return d->status = DISK_MEM;
- }
fclose( file );
- strcpy( d->filename, filename );
d->type = type;
+ d->dirty = 0;
return d->status = DISK_OK;
}
Modified: vendor/fuse-emulator/current/fuse/disk/disk.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/disk.h 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/disk.h 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* fdd.h: Header for handling raw disk images
Copyright (c) 2007 Gergely Szasz
- $Id: disk.h 3207 2007-10-19 20:04:47Z zubzero $
+ $Id: disk.h 3459 2008-01-02 16:40:46Z 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
@@ -74,16 +74,14 @@
typedef enum disk_dens_t {
DISK_DENS_AUTO = 0,
- DISK_8_SD, /* 8" SD floppy 5208 */
+ DISK_8_SD, /* 8" SD floppy 5208 MF */
DISK_8_DD, /* 8" DD floppy 10416 */
- DISK_SD, /* 3125 bpt */
+ DISK_SD, /* 3125 bpt MF */
DISK_DD, /* 6250 bpt */
DISK_HD, /* 12500 bpt*/
} disk_dens_t;
typedef struct disk_t {
- char *filename;
-
int sides; /* 1 or 2 */
int cylinders; /* tracks per side */
int bpt; /* bytes per track */
Modified: vendor/fuse-emulator/current/fuse/disk/fdd.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/fdd.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/fdd.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* fdd.c: Routines for emulating floppy disk drives
Copyright (c) 2007 Gergely Szasz
- $Id: fdd.c 3218 2007-10-21 23:25:23Z zubzero $
+ $Id: fdd.c 3312 2007-11-19 22:02:14Z 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
@@ -203,6 +203,15 @@
}
void
+fdd_wrprot( fdd_t *d, int wrprot )
+{
+ if( !d->loaded )
+ return;
+
+ d->wrprot = d->disk->wrprot = wrprot;
+}
+
+void
fdd_wait_index_hole( fdd_t *d )
{
if( !d->loaded )
Modified: vendor/fuse-emulator/current/fuse/disk/fdd.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/fdd.h 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/fdd.h 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* fdd.h: Header for handling raw disk images
Copyright (c) 2007 Gergely Szasz
- $Id: fdd.h 3204 2007-10-19 15:52:05Z zubzero $
+ $Id: fdd.h 3312 2007-11-19 22:02:14Z 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
@@ -103,6 +103,8 @@
read 0x0100 if disk unreadable or not motor on and/or head not loaded.
*/
int fdd_read_write_data( fdd_t *d, fdd_write_t write );
+/* set write protect status on loaded disk */
+void fdd_wrprot( fdd_t *d, int wrprot );
/* to reach index hole */
void fdd_wait_index_hole( fdd_t *d );
Modified: vendor/fuse-emulator/current/fuse/disk/plusd.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/plusd.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/plusd.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Dmitry Sanarin, Darren Salt
- $Id: plusd.c 3222 2007-10-22 22:08:50Z zubzero $
+ $Id: plusd.c 3398 2007-12-04 12:53: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
@@ -30,6 +30,8 @@
#include <libspectrum.h>
+#include <string.h>
+
#include "compat.h"
#include "machine.h"
#include "module.h"
@@ -53,6 +55,7 @@
static void plusd_reset( int hard_reset );
static void plusd_memory_map( void );
+static void plusd_enabled_snapshot( libspectrum_snap *snap );
static void plusd_from_snapshot( libspectrum_snap *snap );
static void plusd_to_snapshot( libspectrum_snap *snap );
@@ -60,11 +63,14 @@
plusd_reset,
plusd_memory_map,
+ plusd_enabled_snapshot,
plusd_from_snapshot,
plusd_to_snapshot,
};
+static libspectrum_byte plusd_control_register;
+
void
plusd_page( void )
{
@@ -166,6 +172,7 @@
memory_map_romcs[ 1 ].writable = 1;
plusd_available = 1;
+ plusd_active = 1;
plusd_index_pulse = 0;
if( hard_reset )
@@ -183,8 +190,12 @@
/* We can eject disks only if they are currently present */
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_EJECT,
plusd_drives[ PLUSD_DRIVE_1 ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_EJECT,
plusd_drives[ PLUSD_DRIVE_2 ].fdd.loaded );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
plusd_fdc->current_drive = &plusd_drives[ 0 ];
machine_current->memory_map();
@@ -275,6 +286,8 @@
if( !plusd_available ) return;
+ plusd_control_register = b;
+
drive = ( b & 0x03 ) == 2 ? 1 : 0;
side = ( b & 0x80 ) ? 1 : 0;
@@ -331,13 +344,6 @@
}
int
-plusd_disk_insert_default_autoload( plusd_drive_number which,
- const char *filename )
-{
- return plusd_disk_insert( which, filename, settings_current.auto_load );
-}
-
-int
plusd_disk_insert( plusd_drive_number which, const char *filename,
int autoload )
{
@@ -357,24 +363,40 @@
/* Abort the insert if we want to keep the current disk */
if( plusd_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( error ) );
- return 1;
+
+ if( filename ) {
+ error = disk_open( &d->disk, filename, 0 );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to open disk image: %s",
+ disk_strerror( error ) );
+ return 1;
+ }
+ } else {
+ error = disk_new( &d->disk, 2, 80, DISK_DENS_AUTO, DISK_UDI );
+ if( error != DISK_OK ) {
+ ui_error( UI_ERROR_ERROR, "Failed to create disk image: %s",
+ disk_strerror( error ) );
+ return 1;
+ }
}
+
fdd_load( &d->fdd, &d->disk, 0 );
/* Set the 'eject' item active */
switch( which ) {
case PLUSD_DRIVE_1:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
break;
case PLUSD_DRIVE_2:
ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_EJECT, 1 );
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
break;
}
- if( autoload ) {
+ if( filename && autoload ) {
/* XXX */
}
@@ -403,7 +425,9 @@
if( d->disk.dirty ) {
ui_confirm_save_t confirm = ui_confirm_save(
- "Disk has been modified.\nDo you want to save it?"
+ "Disk in +D drive %c has been modified.\n"
+ "Do you want to save it?",
+ which == PLUSD_DRIVE_1 ? '1' : '2'
);
switch( confirm ) {
@@ -435,6 +459,35 @@
}
int
+plusd_disk_writeprotect( plusd_drive_number which, int wrprot )
+{
+ wd_fdc_drive *d;
+
+ if( which >= PLUSD_NUM_DRIVES )
+ return 1;
+
+ d = &plusd_drives[ which ];
+
+ if( !d->fdd.loaded )
+ return 1;
+
+ fdd_wrprot( &d->fdd, wrprot );
+
+ /* Update the 'write protect' menu item */
+ switch( which ) {
+ case PLUSD_DRIVE_1:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_1 ].fdd.wrprot );
+ break;
+ case PLUSD_DRIVE_2:
+ ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET,
+ !plusd_drives[ PLUSD_DRIVE_2 ].fdd.wrprot );
+ break;
+ }
+ return 0;
+}
+
+int
plusd_disk_write( plusd_drive_number which, const char *filename )
{
wd_fdc_drive *d = &plusd_drives[ which ];
@@ -477,14 +530,93 @@
return 0;
}
+static libspectrum_byte *
+alloc_and_copy_page( libspectrum_byte* source_page )
+{
+ libspectrum_byte *buffer;
+ buffer = malloc( MEMORY_PAGE_SIZE );
+ if( !buffer ) {
+ ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__,
+ __LINE__ );
+ return 0;
+ }
+
+ memcpy( buffer, source_page, MEMORY_PAGE_SIZE );
+ return buffer;
+}
+
static void
-plusd_from_snapshot( libspectrum_snap *snap GCC_UNUSED )
+plusd_enabled_snapshot( libspectrum_snap *snap )
{
- /* XXX */
+ if( libspectrum_snap_plusd_active( snap ) )
+ settings_current.plusd = 1;
}
static void
+plusd_from_snapshot( libspectrum_snap *snap )
+{
+ if( !libspectrum_snap_plusd_active( snap ) ) return;
+
+ if( libspectrum_snap_plusd_custom_rom( snap ) &&
+ libspectrum_snap_plusd_rom( snap, 0 ) ) {
+ memory_map_romcs[0].offset = 0;
+ memory_map_romcs[0].page_num = 0;
+ memory_map_romcs[0].page =
+ memory_pool_allocate( MEMORY_PAGE_SIZE * sizeof( libspectrum_byte ) );
+ if( !memory_map_romcs[0].page ) {
+ ui_error( UI_ERROR_ERROR, "Out of memory at %s:%d", __FILE__, __LINE__ );
+ return;
+ }
+ memory_map_romcs[0].source = MEMORY_SOURCE_CUSTOMROM;
+
+ memcpy( memory_map_romcs[0].page, libspectrum_snap_plusd_rom( snap, 0 ),
+ MEMORY_PAGE_SIZE );
+ }
+
+ if( libspectrum_snap_plusd_ram( snap, 0 ) ) {
+ memcpy( plusd_ram,
+ libspectrum_snap_plusd_ram( snap, 0 ), 0x2000 );
+ }
+
+ plusd_fdc->direction = libspectrum_snap_beta_direction( snap );
+
+ plusd_cr_write ( 0x00e3, libspectrum_snap_plusd_status ( snap ) );
+ plusd_tr_write ( 0x00eb, libspectrum_snap_plusd_track ( snap ) );
+ plusd_sec_write( 0x00f3, libspectrum_snap_plusd_sector ( snap ) );
+ plusd_dr_write ( 0x00fb, libspectrum_snap_plusd_data ( snap ) );
+ plusd_cn_write ( 0x00ef, libspectrum_snap_plusd_control( snap ) );
+
+ if( libspectrum_snap_plusd_paged( snap ) ) {
+ plusd_page();
+ } else {
+ plusd_unpage();
+ }
+}
+
+static void
plusd_to_snapshot( libspectrum_snap *snap GCC_UNUSED )
{
- /* XXX */
+ libspectrum_byte *buffer;
+
+ if( !periph_plusd_active ) return;
+
+ libspectrum_snap_set_plusd_active( snap, 1 );
+
+ buffer = alloc_and_copy_page( memory_map_romcs[0].page );
+ if( !buffer ) return;
+ libspectrum_snap_set_plusd_rom( snap, 0, buffer );
+ if( memory_map_romcs[0].source == MEMORY_SOURCE_CUSTOMROM )
+ libspectrum_snap_set_plusd_custom_rom( snap, 1 );
+
+ buffer = alloc_and_copy_page( plusd_ram );
+ if( !buffer ) return;
+ libspectrum_snap_set_plusd_ram( snap, 0, buffer );
+
+ libspectrum_snap_set_plusd_paged ( snap, plusd_active );
+ libspectrum_snap_set_plusd_direction( snap, plusd_fdc->direction );
+ libspectrum_snap_set_plusd_status( snap, plusd_fdc->status_register );
+ libspectrum_snap_set_plusd_track ( snap, plusd_fdc->track_register );
+ libspectrum_snap_set_plusd_sector( snap, plusd_fdc->sector_register );
+ libspectrum_snap_set_plusd_data ( snap, plusd_fdc->data_register );
+ libspectrum_snap_set_plusd_control( snap, plusd_control_register );
}
Modified: vendor/fuse-emulator/current/fuse/disk/plusd.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/plusd.h 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/plusd.h 2008-02-14 12:06:55 UTC (rev 475)
@@ -1,7 +1,7 @@
/* plusd.h: Routines for handling the +D interface
Copyright (c) 2005-2007 Stuart Brady
- $Id: plusd.h 3205 2007-10-19 16:37:27Z zubzero $
+ $Id: plusd.h 3313 2007-11-19 23:35:38Z 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
@@ -74,10 +74,9 @@
int plusd_disk_insert( plusd_drive_number which, const char *filename,
int autoload );
-int plusd_disk_insert_default_autoload( plusd_drive_number which,
- const char *filename );
int plusd_disk_eject( plusd_drive_number which, int write );
int plusd_disk_write( plusd_drive_number which, const char *filename );
+int plusd_disk_writeprotect( plusd_drive_number which, int wrprot );
int plusd_event_index( libspectrum_dword last_tstates );
#endif /* #ifndef FUSE_PLUSD_H */
Modified: vendor/fuse-emulator/current/fuse/disk/wd_fdc.c
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd_fdc.c 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/wd_fdc.c 2008-02-14 12:06:55 UTC (rev 475)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Dmitry Sanarin, Gergely Szasz
- $Id: wd_fdc.c 3228 2007-10-23 14:40:05Z zubzero $
+ $Id: wd_fdc.c 3389 2007-12-03 12:54:17Z 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
@@ -56,6 +56,7 @@
f->direction = 0;
f->head_load = 0;
f->intrq = 0;
+ f->datarq = 0;
f->state = WD_FDC_STATE_NONE;
f->status_type = WD_FDC_STATUS_TYPE1;
@@ -144,8 +145,9 @@
void
wd_fdc_set_datarq( wd_fdc *f )
{
- if( !( f->status_register & WD_FDC_SR_IDX_DRQ ) ) {
+ if( f->datarq != 1 ) {
f->status_register |= WD_FDC_SR_IDX_DRQ;
+ f->datarq = 1;
if( f->set_datarq ) f->set_datarq( f );
}
}
@@ -153,8 +155,9 @@
void
wd_fdc_reset_datarq( wd_fdc *f )
{
- if( f->status_register & WD_FDC_SR_IDX_DRQ ) {
+ if( f->datarq == 1 ) {
f->status_register &= ~WD_FDC_SR_IDX_DRQ;
+ f->datarq = 0;
if( f->reset_datarq ) f->reset_datarq( f );
}
}
@@ -572,7 +575,9 @@
f->rev = 5;
read_id( f );
if( f->id_mark == WD_FDC_AM_NONE ) {
+ f->state = WD_FDC_STATE_NONE;
f->status_register |= WD_FDC_SR_RNF;
+ f->status_register &= ~WD_FDC_SR_BUSY;
wd_fdc_set_intrq( f );
return;
}
Modified: vendor/fuse-emulator/current/fuse/disk/wd_fdc.h
===================================================================
--- vendor/fuse-emulator/current/fuse/disk/wd_fdc.h 2008-02-14 11:33:39 UTC (rev 474)
+++ vendor/fuse-emulator/current/fuse/disk/wd_fdc.h 2008-02-14 12:06:55 UTC (rev 475)
@@ -2,7 +2,7 @@
Copyright (c) 2003-2007 Stuart Brady, Fredrick Meunier, Philip Kendall,
Gergely Szasz
- $Id: wd_fdc.h 3222 2007-10-22 22:08:50Z zubzero $
+ $Id: wd_fdc.h 3306 2007-11-19 17:53:10Z 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
@@ -72,6 +72,7 @@
fdd_dir_t directi...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-14 11:33:36
|
Revision: 474
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=474&view=rev
Author: fredm
Date: 2008-02-14 03:33:39 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Revert last bad commit (pilot error on svn_load_dirs.pl).
Added Paths:
-----------
vendor/fuse/current/timer.c
vendor/fuse/current/timer.h
vendor/fuse/current/trdos.h
Removed Paths:
-------------
vendor/fuse/current/disk/
vendor/fuse/current/timer/
Copied: vendor/fuse/current/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer.c (rev 0)
+++ vendor/fuse/current/timer.c 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+ $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+ timer_type current_time;
+ float difference;
+ int error;
+
+ if( frames_until_update-- ) return 0;
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+ if( samples < 10 ) {
+
+ /* If we don't have enough data, assume we're running at the desired
+ speed :-) */
+ current_speed = settings_current.emulation_speed;
+
+ } else {
+
+ difference =
+ timer_get_time_difference( ¤t_time,
+ &stored_times[ next_stored_time ] );
+ current_speed = 100 * ( 10.0 / difference );
+
+ }
+
+ ui_statusbar_update_speed( current_speed );
+
+ stored_times[ next_stored_time ] = current_time;
+
+ next_stored_time = ( next_stored_time + 1 ) % 10;
+ frames_until_update =
+ ( machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame ) - 1;
+
+ samples++;
+
+ return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = SDL_GetTicks();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ SDL_Delay( ms );
+}
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = GetTickCount();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ Sleep( ms );
+}
+
+#else /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ int error;
+
+ error = gettimeofday( real_time, NULL );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ a->tv_usec += msec * 1000;
+ if( a->tv_usec >= 1000000 ) {
+ a->tv_usec -= 1000000;
+ a->tv_sec += 1;
+ } else if( a->tv_usec < 0 ) {
+ a->tv_usec += 1000000;
+ a->tv_sec -= 1;
+ }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ usleep( ms * 1000 );
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+ samples = 0;
+ next_stored_time = 0;
+ frames_until_update = 0;
+
+ return 0;
+}
+
+int
+timer_init( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+ error = event_add( 0, EVENT_TYPE_TIMER );
+ if( error ) return error;
+
+ return 0;
+}
+
+int
+timer_end( void )
+{
+ return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ for(;;) {
+
+ /* Sleep while fifo is full */
+ if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#else /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+ int error;
+ timer_type current_time;
+ float difference;
+ float speed = ( settings_current.emulation_speed < 1 ?
+ 100 :
+ settings_current.emulation_speed ) / 100.0;
+ long tstates;
+
+ if( sound_enabled )
+ return timer_frame_callback_sound( last_tstates );
+
+ /* If we're fastloading, just schedule another check in a frame's time
+ and do nothing else */
+ if( settings_current.fastload && tape_is_playing() ) {
+
+ libspectrum_dword next_check_time =
+ last_tstates + machine_current->timings.tstates_per_frame;
+
+ if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+ return 1;
+
+ } else {
+
+ while( 1 ) {
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ /* Sleep while we are still 10ms ahead */
+ if( difference < 0 ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ tstates = ( ( difference + TEN_MS / 1000.0 ) *
+ machine_current->timings.processor_speed
+ ) * speed + 0.5;
+
+ if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+ start_time = current_time;
+ timer_add_time_difference( &start_time, TEN_MS );
+
+ }
+
+ return 0;
+}
Copied: vendor/fuse/current/timer.h (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/timer.h (rev 0)
+++ vendor/fuse/current/timer.h 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall
+
+ $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else /* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif /* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif /* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/trdos.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/trdos.h (rev 0)
+++ vendor/fuse/current/trdos.h 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+ Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+ $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+ Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available; /* Is TRDOS available for use? */
+extern int trdos_active; /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+ TRDOS_DRIVE_A = 0,
+ TRDOS_DRIVE_B,
+ TRDOS_DRIVE_C,
+ TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+ int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+ const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-13 21:18:32
|
Revision: 473
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=473&view=rev
Author: fredm
Date: 2008-02-13 13:18:36 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
To prepare to load . into vendor/fuse/current, perform 3 renames.
* vendor/fuse/current/timer/timer.h: Renamed from
vendor/fuse/current/trdos.h.
* vendor/fuse/current/timer/timer.c: Renamed from
vendor/fuse/current/timer.c.
* vendor/fuse/current/disk/wd_fdc.c: Renamed from
vendor/fuse/current/timer.h.
Added Paths:
-----------
vendor/fuse/current/disk/
vendor/fuse/current/disk/wd_fdc.c
vendor/fuse/current/timer/
vendor/fuse/current/timer/timer.c
vendor/fuse/current/timer/timer.h
Removed Paths:
-------------
vendor/fuse/current/timer.c
vendor/fuse/current/timer.h
vendor/fuse/current/trdos.h
Copied: vendor/fuse/current/disk/wd_fdc.c (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/disk/wd_fdc.c (rev 0)
+++ vendor/fuse/current/disk/wd_fdc.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall
+
+ $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else /* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif /* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif /* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/timer/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer/timer.c (rev 0)
+++ vendor/fuse/current/timer/timer.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+ $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+ timer_type current_time;
+ float difference;
+ int error;
+
+ if( frames_until_update-- ) return 0;
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+ if( samples < 10 ) {
+
+ /* If we don't have enough data, assume we're running at the desired
+ speed :-) */
+ current_speed = settings_current.emulation_speed;
+
+ } else {
+
+ difference =
+ timer_get_time_difference( ¤t_time,
+ &stored_times[ next_stored_time ] );
+ current_speed = 100 * ( 10.0 / difference );
+
+ }
+
+ ui_statusbar_update_speed( current_speed );
+
+ stored_times[ next_stored_time ] = current_time;
+
+ next_stored_time = ( next_stored_time + 1 ) % 10;
+ frames_until_update =
+ ( machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame ) - 1;
+
+ samples++;
+
+ return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = SDL_GetTicks();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ SDL_Delay( ms );
+}
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = GetTickCount();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ Sleep( ms );
+}
+
+#else /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ int error;
+
+ error = gettimeofday( real_time, NULL );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ a->tv_usec += msec * 1000;
+ if( a->tv_usec >= 1000000 ) {
+ a->tv_usec -= 1000000;
+ a->tv_sec += 1;
+ } else if( a->tv_usec < 0 ) {
+ a->tv_usec += 1000000;
+ a->tv_sec -= 1;
+ }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ usleep( ms * 1000 );
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+ samples = 0;
+ next_stored_time = 0;
+ frames_until_update = 0;
+
+ return 0;
+}
+
+int
+timer_init( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+ error = event_add( 0, EVENT_TYPE_TIMER );
+ if( error ) return error;
+
+ return 0;
+}
+
+int
+timer_end( void )
+{
+ return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ for(;;) {
+
+ /* Sleep while fifo is full */
+ if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#else /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+ int error;
+ timer_type current_time;
+ float difference;
+ float speed = ( settings_current.emulation_speed < 1 ?
+ 100 :
+ settings_current.emulation_speed ) / 100.0;
+ long tstates;
+
+ if( sound_enabled )
+ return timer_frame_callback_sound( last_tstates );
+
+ /* If we're fastloading, just schedule another check in a frame's time
+ and do nothing else */
+ if( settings_current.fastload && tape_is_playing() ) {
+
+ libspectrum_dword next_check_time =
+ last_tstates + machine_current->timings.tstates_per_frame;
+
+ if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+ return 1;
+
+ } else {
+
+ while( 1 ) {
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ /* Sleep while we are still 10ms ahead */
+ if( difference < 0 ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ tstates = ( ( difference + TEN_MS / 1000.0 ) *
+ machine_current->timings.processor_speed
+ ) * speed + 0.5;
+
+ if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+ start_time = current_time;
+ timer_add_time_difference( &start_time, TEN_MS );
+
+ }
+
+ return 0;
+}
Copied: vendor/fuse/current/timer/timer.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/timer/timer.h (rev 0)
+++ vendor/fuse/current/timer/timer.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+ Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+ $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+ Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available; /* Is TRDOS available for use? */
+extern int trdos_active; /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+ TRDOS_DRIVE_A = 0,
+ TRDOS_DRIVE_B,
+ TRDOS_DRIVE_C,
+ TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+ int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+ const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif /* #ifndef FUSE_TRDOS_H */
Deleted: vendor/fuse/current/timer.c
===================================================================
--- vendor/fuse/current/timer.c 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,330 +0,0 @@
-/* timer.c: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
-
- $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "fuse.h"
-#include "event.h"
-#include "settings.h"
-#include "sound.h"
-#include "tape.h"
-#include "timer.h"
-#include "ui/ui.h"
-#include "ula.h"
-
-/*
- * Routines for estimating emulation speed
- */
-
-/* The actual time at the end of each of the last 10 emulated seconds */
-static timer_type stored_times[10];
-
-/* Which is the next entry in 'stored_times' that we will update */
-static size_t next_stored_time;
-
-/* The number of frames until we next update 'stored_times' */
-static int frames_until_update;
-
-/* The number of time samples we have for estimating speed */
-static int samples;
-
-float current_speed = 100.0;
-
-static timer_type start_time;
-
-static const int TEN_MS = 10;
-
-int
-timer_estimate_speed( void )
-{
- timer_type current_time;
- float difference;
- int error;
-
- if( frames_until_update-- ) return 0;
-
- error = timer_get_real_time( ¤t_time ); if( error ) return error;
-
- if( samples < 10 ) {
-
- /* If we don't have enough data, assume we're running at the desired
- speed :-) */
- current_speed = settings_current.emulation_speed;
-
- } else {
-
- difference =
- timer_get_time_difference( ¤t_time,
- &stored_times[ next_stored_time ] );
- current_speed = 100 * ( 10.0 / difference );
-
- }
-
- ui_statusbar_update_speed( current_speed );
-
- stored_times[ next_stored_time ] = current_time;
-
- next_stored_time = ( next_stored_time + 1 ) % 10;
- frames_until_update =
- ( machine_current->timings.processor_speed /
- machine_current->timings.tstates_per_frame ) - 1;
-
- samples++;
-
- return 0;
-}
-
-#ifdef UI_SDL
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- *real_time = SDL_GetTicks();
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
- SDL_Delay( ms );
-}
-
-#elif defined(WIN32) /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- *real_time = GetTickCount();
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
- Sleep( ms );
-}
-
-#else /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- int error;
-
- error = gettimeofday( real_time, NULL );
- if( error ) {
- ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
- return 1;
- }
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- a->tv_usec += msec * 1000;
- if( a->tv_usec >= 1000000 ) {
- a->tv_usec -= 1000000;
- a->tv_sec += 1;
- } else if( a->tv_usec < 0 ) {
- a->tv_usec += 1000000;
- a->tv_sec -= 1;
- }
-}
-
-void
-timer_sleep_ms( int ms )
-{
- usleep( ms * 1000 );
-}
-
-#endif /* #ifdef UI_SDL */
-
-int
-timer_estimate_reset( void )
-{
- int error = timer_get_real_time( &start_time ); if( error ) return error;
- samples = 0;
- next_stored_time = 0;
- frames_until_update = 0;
-
- return 0;
-}
-
-int
-timer_init( void )
-{
- int error = timer_get_real_time( &start_time ); if( error ) return error;
-
- error = event_add( 0, EVENT_TYPE_TIMER );
- if( error ) return error;
-
- return 0;
-}
-
-int
-timer_end( void )
-{
- return event_remove_type( EVENT_TYPE_TIMER );
-}
-
-#if defined UI_SDL || defined USE_COREAUDIO
-
-/* Callback-style sound based timer */
-#include "sound/sfifo.h"
-
-extern sfifo_t sound_fifo;
-
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
- for(;;) {
-
- /* Sleep while fifo is full */
- if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
- timer_sleep_ms( TEN_MS );
- } else {
- break;
- }
-
- }
-
- if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
- EVENT_TYPE_TIMER ) )
- return 1;
-
- return 0;
-}
-
-#else /* #ifdef UI_SDL */
-
-/* Blocking socket-style sound based timer */
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
- if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
- EVENT_TYPE_TIMER ) )
- return 1;
-
- return 0;
-}
-
-#endif /* #ifdef UI_SDL */
-
-int
-timer_frame( libspectrum_dword last_tstates )
-{
- int error;
- timer_type current_time;
- float difference;
- float speed = ( settings_current.emulation_speed < 1 ?
- 100 :
- settings_current.emulation_speed ) / 100.0;
- long tstates;
-
- if( sound_enabled )
- return timer_frame_callback_sound( last_tstates );
-
- /* If we're fastloading, just schedule another check in a frame's time
- and do nothing else */
- if( settings_current.fastload && tape_is_playing() ) {
-
- libspectrum_dword next_check_time =
- last_tstates + machine_current->timings.tstates_per_frame;
-
- if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
- return 1;
-
- } else {
-
- while( 1 ) {
-
- error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-
- difference = timer_get_time_difference( ¤t_time, &start_time );
-
- /* Sleep while we are still 10ms ahead */
- if( difference < 0 ) {
- timer_sleep_ms( TEN_MS );
- } else {
- break;
- }
-
- }
-
- error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-
- difference = timer_get_time_difference( ¤t_time, &start_time );
-
- tstates = ( ( difference + TEN_MS / 1000.0 ) *
- machine_current->timings.processor_speed
- ) * speed + 0.5;
-
- if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
-
- start_time = current_time;
- timer_add_time_difference( &start_time, TEN_MS );
-
- }
-
- return 0;
-}
Deleted: vendor/fuse/current/timer.h
===================================================================
--- vendor/fuse/current/timer.h 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,62 +0,0 @@
-/* timer.h: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall
-
- $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#ifndef FUSE_TIMER_H
-#define FUSE_TIMER_H
-
-#ifdef UI_SDL
-
-#include "SDL.h"
-
-typedef Uint32 timer_type;
-
-#elif defined(WIN32) /* #ifdef UI_SDL */
-
-#include <windows.h>
-
-typedef DWORD timer_type;
-
-#else /* #ifdef UI_SDL */
-
-#include <sys/time.h>
-#include <time.h>
-
-typedef struct timeval timer_type;
-
-#endif /* #ifdef UI_SDL */
-
-int timer_estimate_reset( void );
-int timer_estimate_speed( void );
-int timer_get_real_time( timer_type *real_time );
-float timer_get_time_difference( timer_type *a, timer_type *b );
-
-int timer_init(void);
-void timer_sleep_ms( int ms );
-int timer_frame( libspectrum_dword last_tstates );
-int timer_end(void);
-
-extern float current_speed;
-
-#endif /* #ifndef FUSE_TIMER_H */
Deleted: vendor/fuse/current/trdos.h
===================================================================
--- vendor/fuse/current/trdos.h 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/trdos.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,81 +0,0 @@
-/* trdos.h: Routines for handling the Betadisk interface
- Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
-
- $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
- Fred: fr...@sp...
-
-*/
-
-#ifndef FUSE_TRDOS_H
-#define FUSE_TRDOS_H
-
-#include <libspectrum.h>
-
-extern int trdos_available; /* Is TRDOS available for use? */
-extern int trdos_active; /* TRDOS enabled? */
-
-int trdos_init( void );
-
-void trdos_reset( void );
-
-void trdos_end( void );
-
-void trdos_page( void );
-void trdos_unpage( void );
-void trdos_memory_map( void );
-
-int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
-int trdos_to_snapshot( libspectrum_snap *snap );
-
-void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
-
-libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
-void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
-void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
-void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
-void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
-
-typedef enum trdos_drive_number {
- TRDOS_DRIVE_A = 0,
- TRDOS_DRIVE_B,
- TRDOS_DRIVE_C,
- TRDOS_DRIVE_D,
-} trdos_drive_number;
-
-int trdos_disk_insert( trdos_drive_number which, const char *filename,
- int autoload );
-int trdos_disk_insert_default_autoload( trdos_drive_number which,
- const char *filename );
-int trdos_disk_eject( trdos_drive_number which, int write );
-int trdos_disk_write( trdos_drive_number which, const char *filename );
-int trdos_event_cmd_done( libspectrum_dword last_tstates );
-int trdos_event_index( libspectrum_dword last_tstates );
-
-#endif /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-13 20:58:47
|
Revision: 472
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=472&view=rev
Author: fredm
Date: 2008-02-13 12:57:58 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
Tag vendor/libspectrum/current as vendor/libspectrum/libspectrum-0.4.0.
Added Paths:
-----------
vendor/libspectrum/libspectrum-0.4.0/
Copied: vendor/libspectrum/libspectrum-0.4.0 (from rev 471, vendor/libspectrum/current)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-13 20:57:39
|
Revision: 471
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=471&view=rev
Author: fredm
Date: 2008-02-13 12:57:45 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
Load . into vendor/libspectrum/current.
Modified Paths:
--------------
vendor/libspectrum/current/AUTHORS
vendor/libspectrum/current/COPYING
vendor/libspectrum/current/ChangeLog
vendor/libspectrum/current/Makefile.am
vendor/libspectrum/current/README
vendor/libspectrum/current/THANKS
vendor/libspectrum/current/TODO
vendor/libspectrum/current/accessor.pl
vendor/libspectrum/current/acinclude.m4
vendor/libspectrum/current/autogen.sh
vendor/libspectrum/current/bzip2.c
vendor/libspectrum/current/configure.in
vendor/libspectrum/current/creator.c
vendor/libspectrum/current/crypto.c
vendor/libspectrum/current/dck.c
vendor/libspectrum/current/dll.c
vendor/libspectrum/current/doc/Makefile.am
vendor/libspectrum/current/doc/cvs-tags
vendor/libspectrum/current/doc/libspectrum.3
vendor/libspectrum/current/doc/libspectrum.txt
vendor/libspectrum/current/generate.pl.in
vendor/libspectrum/current/hacking/ChangeLog
vendor/libspectrum/current/hacking/Makefile.am
vendor/libspectrum/current/ide.c
vendor/libspectrum/current/internals.h
vendor/libspectrum/current/libspectrum.c
vendor/libspectrum/current/libspectrum.h.in
vendor/libspectrum/current/make-perl.c
vendor/libspectrum/current/microdrive.c
vendor/libspectrum/current/myglib/Makefile.am
vendor/libspectrum/current/myglib/ghash.c
vendor/libspectrum/current/myglib/gslist.c
vendor/libspectrum/current/plusd.c
vendor/libspectrum/current/rzx.c
vendor/libspectrum/current/sna.c
vendor/libspectrum/current/snap_accessors.txt
vendor/libspectrum/current/snapshot.c
vendor/libspectrum/current/snp.c
vendor/libspectrum/current/sp.c
vendor/libspectrum/current/symbol_table.c
vendor/libspectrum/current/szx.c
vendor/libspectrum/current/tap.c
vendor/libspectrum/current/tape.c
vendor/libspectrum/current/tape_accessors.pl
vendor/libspectrum/current/tape_accessors.txt
vendor/libspectrum/current/tape_block.c
vendor/libspectrum/current/tape_block.h
vendor/libspectrum/current/tape_set.pl
vendor/libspectrum/current/timings.c
vendor/libspectrum/current/tzx_read.c
vendor/libspectrum/current/tzx_write.c
vendor/libspectrum/current/warajevo_read.c
vendor/libspectrum/current/z80.c
vendor/libspectrum/current/z80em.c
vendor/libspectrum/current/zlib.c
vendor/libspectrum/current/zxs.c
Added Paths:
-----------
vendor/libspectrum/current/csw.c
vendor/libspectrum/current/test/
vendor/libspectrum/current/test/Makefile.am
vendor/libspectrum/current/test/complete-tzx.pl
vendor/libspectrum/current/test/edges.c
vendor/libspectrum/current/test/empty-drb.tzx
vendor/libspectrum/current/test/empty.csw
vendor/libspectrum/current/test/invalid-archiveinfo.tzx
vendor/libspectrum/current/test/invalid-custominfo.tzx
vendor/libspectrum/current/test/invalid-gdb.tzx
vendor/libspectrum/current/test/invalid-hardwareinfo.tzx
vendor/libspectrum/current/test/invalid-warajevo-blockoffset.tap
vendor/libspectrum/current/test/invalid.gz
vendor/libspectrum/current/test/invalid.szx
vendor/libspectrum/current/test/invalid.tzx
vendor/libspectrum/current/test/jump.tzx
vendor/libspectrum/current/test/loop.tzx
vendor/libspectrum/current/test/loop2.tzx
vendor/libspectrum/current/test/loopend.tzx
vendor/libspectrum/current/test/sp-2000.sna.gz
vendor/libspectrum/current/test/sp-ffff.sna.gz
vendor/libspectrum/current/test/test.c
vendor/libspectrum/current/test/test.h
vendor/libspectrum/current/test/test15.c
vendor/libspectrum/current/test/turbo-zeropilot.tzx
vendor/libspectrum/current/wav.c
Removed Paths:
-------------
vendor/libspectrum/current/.cvsignore
vendor/libspectrum/current/doc/.cvsignore
vendor/libspectrum/current/hacking/.cvsignore
vendor/libspectrum/current/myglib/.cvsignore
Deleted: vendor/libspectrum/current/.cvsignore
===================================================================
--- vendor/libspectrum/current/.cvsignore 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/.cvsignore 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,31 +0,0 @@
-*.lo
-.deps
-.libs
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-config.cache
-config.guess
-config.h
-config.h.in
-config.log
-config.status
-config.sub
-configure
-depcomp
-generate.pl
-install-sh
-libspectrum.h
-libspectrum.la
-libspectrum.qpg
-libtool
-ltmain.sh
-make-perl
-missing
-snap_accessors.c
-stamp-h
-stamp-h.in
-stamp-h1
-tape_accessors.c
-tape_set.c
Modified: vendor/libspectrum/current/AUTHORS
===================================================================
--- vendor/libspectrum/current/AUTHORS 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/AUTHORS 2008-02-13 20:57:45 UTC (rev 471)
@@ -13,4 +13,4 @@
* Philip Kendall: everything else.
-$Id: AUTHORS,v 1.2 2004/06/26 16:44:13 pak21 Exp $
+$Id: AUTHORS 2280 2004-06-26 16:44:14Z pak21 $
Modified: vendor/libspectrum/current/COPYING
===================================================================
--- vendor/libspectrum/current/COPYING 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/COPYING 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -15,7 +15,7 @@
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,7 +55,7 @@
The precise terms and conditions for copying, distribution and
modification follow.
-
+
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -110,7 +110,7 @@
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
-
+
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
-
+
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-
+
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -278,7 +278,7 @@
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
-
+
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@@ -291,7 +291,7 @@
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) <year> <name of author>
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
@@ -303,17 +303,16 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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.
-
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
+library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
Modified: vendor/libspectrum/current/ChangeLog
===================================================================
--- vendor/libspectrum/current/ChangeLog 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/ChangeLog 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,3 +1,25 @@
+2008-01-05 Philip Kendall <phi...@sh...>
+
+ * libspectrum 0.4.0 released.
+
+ * Add support for loading from WAV files (Fredrick Meunier).
+
+ * Add support for CSW tape files (Fredrick Meunier).
+
+ * Tweak timings for TC2048 and TC2068 (Fredrick Meunier; thanks Philip
+ Kendall and Mark Woodmass).
+
+ * Add support for the +D in z80 and szx snapshots (Fredrick Meunier).
+
+ * Add Pentagon 512/1024 support (Q-Master).
+
+ * Allow Amiga version to decompress files with xfdmaster.library
+ (Chris Young).
+
+ * Allow MorphOS version to use xfdmaster.library (Q-Master).
+
+ * Various other bugfixes.
+
2007-05-11 Philip Kendall <phi...@sh...>
* libspectrum 0.3.0.1 released (bug fix release).
@@ -104,7 +126,7 @@
(Philip Kendall).
* Write .rzx files with a version number of 0.12 if we're not
- signing the data; improves backward compatability (Philip
+ signing the data; improves backward compatibility (Philip
Kendall).
* Fix a segfault when dealing with .slt files (Philip Kendall,
@@ -126,7 +148,7 @@
* Various data structures (snapshots, tapes, tape blocks) which
were previously directly accessible are now accessible only via
wrapper functions. This should improve future binary
- compatability, but at the cost of breaking it for this release
+ compatibility, but at the cost of breaking it for this release
(Philip Kendall).
* Change the API for reading/writing snapshots to be more general.
@@ -144,7 +166,7 @@
* Timing fixes for the TC2048 and TC2068 (Fredrick Meunier).
- * Fix reading of 128K .sna snapshots (Philip Kendall).
+ * Fix reading of 128K .sna snapshots (Philip Kendall).
* New capabilities for the Timex dock, and built-in Sinclair and
Kempston joysticks (Fredrick Meunier).
@@ -175,7 +197,7 @@
* Version 0.1.0 released
* Major code reorganisation: API changes to allow future binary
- compatability, logical organisation of header files improved
+ compatibility, logical organisation of header files improved
and many other small changes (Philip Kendall)
* Add ability to output .tap files (Philip Kendall)
@@ -203,4 +225,5 @@
* libspectrum separated from Fuse just before the 0.5.0 release of
Fuse; see Fuse's ChangeLog for changes up to this point
-$Id: ChangeLog,v 1.12.2.3 2007/05/11 07:04:59 pak21 Exp $
+$Id: ChangeLog 3467 2008-01-04 23:27:31Z zubzero $
+
Modified: vendor/libspectrum/current/Makefile.am
===================================================================
--- vendor/libspectrum/current/Makefile.am 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/Makefile.am 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2001-2004 Philip Kendall
-## $Id: Makefile.am,v 1.65.2.3 2007/05/11 07:04:59 pak21 Exp $
+## $Id: Makefile.am 3426 2007-12-18 19:29:30Z 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
@@ -13,9 +13,9 @@
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+## 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:
##
@@ -28,6 +28,7 @@
libspectrum_la_SOURCES = bzip2.c \
creator.c \
crypto.c \
+ csw.c \
dck.c \
ide.c \
libspectrum.c \
@@ -50,42 +51,46 @@
tzx_read.c \
tzx_write.c \
warajevo_read.c \
+ wav.c \
z80.c \
z80em.c \
zlib.c \
zxs.c
-libspectrum_la_LDFLAGS = -version-info 5:1:0 -no-undefined
+libspectrum_la_LDFLAGS = -version-info 6:0:1 -no-undefined
-libspectrum_la_LIBADD = myglib/libmyglib.la -lm
+libspectrum_la_LIBADD = myglib/libmyglib.la @AUDIOFILE_LIBS@ -lm
BUILT_SOURCES = libspectrum.h snap_accessors.c tape_accessors.c tape_set.c
nodist_include_HEADERS = libspectrum.h
noinst_HEADERS = internals.h
+noinst_PROGRAMS =
+noinst_DATA =
+
AM_CFLAGS = -DLIBSPECTRUM_EXPORTS
-make-perl$(EXEEXT): make-perl.c
+make-perl$(EXEEXT): $(srcdir)/make-perl.c config.h
$(CC_FOR_BUILD) -I. -o $@ $<
libspectrum.h: libspectrum.h.in generate.pl snap_accessors.txt tape_accessors.txt config.h
- @PERL@ -p generate.pl libspectrum.h.in > $@
+ @PERL@ -p generate.pl $(srcdir) $(srcdir)/libspectrum.h.in > $@.tmp && mv $@.tmp $@
generate.pl: make-perl$(EXEEXT) generate.pl.in
./make-perl$(EXEEXT) > $@
- cat generate.pl.in >> $@
+ cat $(srcdir)/generate.pl.in >> $@
snap_accessors.c: accessor.pl snap_accessors.txt
- @PERL@ accessor.pl snap_accessors.txt > $@
+ @PERL@ $(srcdir)/accessor.pl $(srcdir)/snap_accessors.txt > $@.tmp && mv $@.tmp $@
tape_accessors.c: tape_accessors.pl tape_accessors.txt
- @PERL@ tape_accessors.pl tape_accessors.txt > $@
+ @PERL@ $(srcdir)/tape_accessors.pl $(srcdir)/tape_accessors.txt > $@.tmp && mv $@.tmp $@
tape_set.c: tape_set.pl tape_accessors.txt
- @PERL@ tape_set.pl tape_accessors.txt > $@
+ @PERL@ $(srcdir)/tape_set.pl $(srcdir)/tape_accessors.txt > $@.tmp && mv $@.tmp $@
-INCLUDES = @GLIB_CFLAGS@
+INCLUDES = @GLIB_CFLAGS@ @AUDIOFILE_CFLAGS@
EXTRA_DIST = accessor.pl \
generate.pl.in \
@@ -97,7 +102,14 @@
libspectrum.h.in \
snap_accessors.txt
+CLEANFILES = libspectrum.h \
+ snap_accessors.c \
+ tape_accessors.c \
+ tape_set.c \
+ generate.pl \
+ make-perl$(EXEEXT)
-SUBDIRS = doc \
- hacking \
- myglib
+include doc/Makefile.am
+include hacking/Makefile.am
+include myglib/Makefile.am
+include test/Makefile.am
Modified: vendor/libspectrum/current/README
===================================================================
--- vendor/libspectrum/current/README 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/README 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,5 +1,5 @@
-libspectrum 0.3.0.1
-===================
+libspectrum 0.4.0
+=================
libspectrum is a library which is designed to make the input and
output of ZX Spectrum emulator files slightly easier than it would be
@@ -10,8 +10,8 @@
* Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and
+D snapshots (read only).
-* Tape images: .tzx, .tap (read/write) and Warajevo .tap, Z80Em and
- CSW version 1 (read only).
+* Tape images: .tzx, .tap, .spc, .sta and .ltp (read/write) and
+ Warajevo .tap, Z80Em and CSW version 1 (read only).
* Input recordings: .rzx (read/write).
* Timex cartridges: .dck (read only).
* IDE hard disk images: .hdf (read/write).
@@ -50,4 +50,6 @@
'configure' for the first time.
Philip Kendall <phi...@sh...>
-11 May 2007
+5 January 2008
+
+$Id: README 3467 2008-01-04 23:27:31Z zubzero $
Modified: vendor/libspectrum/current/THANKS
===================================================================
--- vendor/libspectrum/current/THANKS 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/THANKS 2008-02-13 20:57:45 UTC (rev 471)
@@ -6,4 +6,4 @@
* Simon Owen: for some Win32 and C++ compatibility fixes.
-$Id: THANKS,v 1.3 2003/10/06 22:58:02 pak21 Exp $
\ No newline at end of file
+$Id: THANKS 1685 2003-10-06 22:58:02Z pak21 $
\ No newline at end of file
Modified: vendor/libspectrum/current/TODO
===================================================================
--- vendor/libspectrum/current/TODO 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/TODO 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,4 +1,4 @@
libspectrum TODO
================
-$Id: TODO,v 1.4 2004/06/26 16:44:13 pak21 Exp $
+$Id: TODO 2280 2004-06-26 16:44:14Z pak21 $
Modified: vendor/libspectrum/current/accessor.pl
===================================================================
--- vendor/libspectrum/current/accessor.pl 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/accessor.pl 2008-02-13 20:57:45 UTC (rev 471)
@@ -3,7 +3,7 @@
# accessor.pl: generate accessor functions
# Copyright (c) 2003-2004 Philip Kendall
-# $Id: accessor.pl,v 1.17 2007/02/02 16:35:42 pak21 Exp $
+# $Id: accessor.pl 3408 2007-12-05 01:45:24Z 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
@@ -15,9 +15,9 @@
# 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., 49 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# 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:
@@ -39,9 +39,9 @@
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., 49 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
@@ -102,7 +102,16 @@
/* Timex-specific bits */
libspectrum_byte out_scld_hsr, out_scld_dec;
+ /* Interface 1 status */
+ int interface1_active;
+ int interface1_paged;
+ int interface1_drive_count;
+ int interface1_custom_rom;
+ libspectrum_byte* interface1_rom[1];
+ size_t interface1_rom_length[1]; /* Length of the ROM */
+
/* Betadisk status */
+ int beta_active;
int beta_paged;
int beta_direction; /* FDC seek direction:
zero => towards lower cylinders (hubwards)
@@ -110,6 +119,18 @@
libspectrum_byte beta_system, beta_track, beta_sector, beta_data,
beta_status;
+ /* Plus D status */
+ int plusd_active;
+ int plusd_paged;
+ int plusd_custom_rom;
+ int plusd_direction; /* FDC seek direction:
+ zero => towards lower cylinders (hubwards)
+ non-zero => towards higher cylinders (rimwards) */
+ libspectrum_byte plusd_control, plusd_track, plusd_sector, plusd_data,
+ plusd_status;
+ libspectrum_byte *plusd_rom[1];
+ libspectrum_byte *plusd_ram[1];
+
/* ZXATASP status */
int zxatasp_active;
int zxatasp_upload;
Modified: vendor/libspectrum/current/acinclude.m4
===================================================================
--- vendor/libspectrum/current/acinclude.m4 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/acinclude.m4 2008-02-13 20:57:45 UTC (rev 471)
@@ -411,3 +411,183 @@
AC_SUBST(GLIB_MKENUMS)
rm -f conf.glibtest
])
+
+# Configure paths for the Audio File Library
+# Bertrand Guiheneuf 98-10-21
+# stolen from esd.m4 in esound :
+# Manish Singh 98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_AUDIOFILE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for Audio File Library, and define AUDIOFILE_CFLAGS and AUDIOFILE_LIBS.
+dnl
+AC_DEFUN([AM_PATH_AUDIOFILE],
+[dnl
+dnl Get compiler flags and libraries from the audiofile-config script.
+dnl
+AC_ARG_WITH(audiofile-prefix,[ --with-audiofile-prefix=PFX Prefix where Audio File Library is installed (optional)],
+ audiofile_prefix="$withval", audiofile_prefix="")
+AC_ARG_WITH(audiofile-exec-prefix,[ --with-audiofile-exec-prefix=PFX Exec prefix where Audio File Library is installed (optional)],
+ audiofile_exec_prefix="$withval", audiofile_exec_prefix="")
+AC_ARG_ENABLE(audiofiletest, [ --disable-audiofiletest Do not try to compile and run a test Audio File Library program], , enable_audiofiletest=yes)
+
+ if test x$audiofile_exec_prefix != x ; then
+ audiofile_args="$audiofile_args --exec-prefix=$audiofile_exec_prefix"
+ if test x${AUDIOFILE_CONFIG+set} != xset ; then
+ AUDIOFILE_CONFIG=$audiofile_exec_prefix/bin/audiofile-config
+ fi
+ fi
+ if test x$audiofile_prefix != x ; then
+ audiofile_args="$audiofile_args --prefix=$audiofile_prefix"
+ if test x${AUDIOFILE_CONFIG+set} != xset ; then
+ AUDIOFILE_CONFIG=$audiofile_prefix/bin/audiofile-config
+ fi
+ fi
+
+ AC_PATH_PROG(AUDIOFILE_CONFIG, audiofile-config, no)
+ min_audiofile_version=ifelse([$1], ,0.2.5,$1)
+ AC_MSG_CHECKING(for Audio File Library - version >= $min_audiofile_version)
+ no_audiofile=""
+ if test "$AUDIOFILE_CONFIG" = "no" ; then
+ no_audiofile=yes
+ else
+ AUDIOFILE_LIBS=`$AUDIOFILE_CONFIG $audiofileconf_args --libs`
+ AUDIOFILE_CFLAGS=`$AUDIOFILE_CONFIG $audiofileconf_args --cflags`
+ audiofile_major_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ audiofile_minor_version=`$AUDIOFILE_CONFIG $audiofile_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ audiofile_micro_version=`$AUDIOFILE_CONFIG $audiofile_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_audiofiletest" = "xyes" ; then
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+ LIBS="$LIBS $AUDIOFILE_LIBS"
+dnl
+dnl Now check if the installed Audio File Library is sufficiently new.
+dnl (Also checks the sanity of the results of audiofile-config to some extent.)
+dnl
+ rm -f conf.audiofiletest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <audiofile.h>
+
+char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.audiofiletest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_audiofile_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
+ printf("%s, bad version string\n", "$min_audiofile_version");
+ exit(1);
+ }
+
+ if (($audiofile_major_version > major) ||
+ (($audiofile_major_version == major) && ($audiofile_minor_version > minor)) ||
+ (($audiofile_major_version == major) && ($audiofile_minor_version == minor) && ($audiofile_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'audiofile-config --version' returned %d.%d.%d, but the minimum version\n", $audiofile_major_version, $audiofile_minor_version, $audiofile_micro_version);
+ printf("*** of the Audio File Library required is %d.%d.%d. If audiofile-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If audiofile-config was wrong, set the environment variable AUDIOFILE_CONFIG\n");
+ printf("*** to point to the correct copy of audiofile-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_audiofile=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ AC_LANG_RESTORE
+ fi
+ fi
+ if test "x$no_audiofile" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$AUDIOFILE_CONFIG" = "no" ; then
+ cat <<END
+*** The audiofile-config script installed by the Audio File Library could
+*** not be found. If the Audio File Library was installed in PREFIX, make
+*** sure PREFIX/bin is in your path, or set the AUDIOFILE_CONFIG
+*** environment variable to the full path to audiofile-config.
+END
+ else
+ if test -f conf.audiofiletest ; then
+ :
+ else
+ echo "*** Could not run Audio File Library test program; checking why..."
+ AC_LANG_SAVE
+ AC_LANG_C
+ CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS"
+ LIBS="$LIBS $AUDIOFILE_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <audiofile.h>
+], [ return 0; ],
+ [ cat <<END
+*** The test program compiled, but did not run. This usually means that
+*** the run-time linker is not finding Audio File Library or finding the
+*** wrong version of Audio File Library.
+***
+*** If it is not finding Audio File Library, you'll need to set your
+*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
+*** to the installed location. Also, make sure you have run ldconfig if
+*** that is required on your system.
+***
+*** If you have an old version installed, it is best to remove it, although
+*** you may also be able to get things to work by modifying
+*** LD_LIBRARY_PATH.
+END
+ ],
+ [ echo "*** The test program failed to compile or link. See the file config.log"
+ echo "*** for the exact error that occured. This usually means the Audio File"
+ echo "*** Library was incorrectly installed or that you have moved the Audio"
+ echo "*** File Library since it was installed. In the latter case, you may want"
+ echo "*** to edit the audiofile-config script: $AUDIOFILE_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ AC_LANG_RESTORE
+ fi
+ fi
+ AUDIOFILE_CFLAGS=""
+ AUDIOFILE_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(AUDIOFILE_CFLAGS)
+ AC_SUBST(AUDIOFILE_LIBS)
+ rm -f conf.audiofiletest
+])
Modified: vendor/libspectrum/current/autogen.sh
===================================================================
--- vendor/libspectrum/current/autogen.sh 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/autogen.sh 2008-02-13 20:57:45 UTC (rev 471)
@@ -3,7 +3,7 @@
# autogen.sh: autotools invocation
# Copyright (c) 2004 Philip Kendall
-# $Id: autogen.sh,v 1.5 2007/02/02 16:35:42 pak21 Exp $
+# $Id: autogen.sh 2890 2007-05-26 19:31:43Z 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
@@ -15,9 +15,9 @@
# 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., 49 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# 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:
Modified: vendor/libspectrum/current/bzip2.c
===================================================================
--- vendor/libspectrum/current/bzip2.c 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/bzip2.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
/* bzip2.c: routines for bzip2 decompression of data
Copyright (c) 2003-2005 Philip Kendall
- $Id: bzip2.c,v 1.5 2007/02/02 16:35:42 pak21 Exp $
+ $Id: bzip2.c 2890 2007-05-26 19:31:43Z 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
@@ -13,9 +13,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
Modified: vendor/libspectrum/current/configure.in
===================================================================
--- vendor/libspectrum/current/configure.in 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/configure.in 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
dnl Copyright (c) 1999-2004 Philip Kendall
-dnl $Id: configure.in,v 1.35.2.3 2007/05/11 07:04:59 pak21 Exp $
+dnl $Id: configure.in 3426 2007-12-18 19:29:30Z 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
@@ -13,9 +13,9 @@
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+dnl You should have received a copy of the GNU General Public License along
+dnl with this program; if not, write to the Free Software Foundation, Inc.,
+dnl 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
dnl
dnl Author contact information:
dnl
@@ -25,7 +25,7 @@
AM_CONFIG_HEADER(config.h)
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(libspectrum, 0.3.0.1)
+AM_INIT_AUTOMAKE(libspectrum, 0.4.0)
dnl Checks for programs.
AC_PROG_CC
@@ -124,10 +124,21 @@
fi
fi
+dnl Check whether to use libaudiofile
+AC_MSG_CHECKING(whether to use libaudiofile)
+AC_ARG_WITH(libaudiofile,
+[ --without-libaudiofile don't use libaudiofile],
+if test "$withval" = no; then libaudiofile=no; else libaudiofile=yes; fi,
+libaudiofile=yes)
+AC_MSG_RESULT($libaudiofile)
+if test "$libaudiofile" = yes; then
+ AM_PATH_AUDIOFILE(
+ 0.2.3,
+ AC_DEFINE([HAVE_LIB_AUDIOFILE], 1, [Defined if we've got audiofile])
+ )
+fi
+
AC_OUTPUT(
Makefile
- doc/Makefile
- hacking/Makefile
libspectrum.qpg
- myglib/Makefile
)
Modified: vendor/libspectrum/current/creator.c
===================================================================
--- vendor/libspectrum/current/creator.c 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/creator.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
/* creator.c: simple type for storing creator information
Copyright (c) 2003-2005 Philip Kendall
- $Id: creator.c,v 1.7 2007/02/02 16:35:42 pak21 Exp $
+ $Id: creator.c 2890 2007-05-26 19:31:43Z 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
@@ -13,9 +13,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
Modified: vendor/libspectrum/current/crypto.c
===================================================================
--- vendor/libspectrum/current/crypto.c 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/crypto.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
/* crypto.c: crytography-related functions
Copyright (c) 2002-2005 Philip Kendall
- $Id: crypto.c,v 1.11 2007/02/02 16:35:42 pak21 Exp $
+ $Id: crypto.c 2890 2007-05-26 19:31:43Z 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
@@ -13,9 +13,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
Added: vendor/libspectrum/current/csw.c
===================================================================
--- vendor/libspectrum/current/csw.c (rev 0)
+++ vendor/libspectrum/current/csw.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -0,0 +1,392 @@
+/* csw.c: Routines for handling CSW raw audio files
+ Copyright (c) 2002-2007 Darren Salt, Fredrick Meunier
+ Based on tap.c, copyright (c) 2001 Philip Kendall
+
+ $Id: csw.c 3272 2007-11-01 11:03:02Z 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: li...@yo...
+
+*/
+
+#include <config.h>
+#include <string.h>
+
+#include "internals.h"
+#include "tape_block.h"
+
+/* The .csw file signature (first 23 bytes) */
+const char *libspectrum_csw_signature = "Compressed Square Wave\x1a";
+
+libspectrum_error
+libspectrum_csw_read( libspectrum_tape *tape,
+ const libspectrum_byte *buffer, size_t length )
+{
+ libspectrum_tape_block *block = NULL;
+ libspectrum_tape_rle_pulse_block *csw_block;
+ libspectrum_error error;
+
+ int compressed;
+
+ size_t signature_length = strlen( libspectrum_csw_signature );
+
+ if( length < signature_length + 2 ) goto csw_short;
+
+ if( memcmp( libspectrum_csw_signature, buffer, signature_length ) ) {
+ libspectrum_print_error( LIBSPECTRUM_ERROR_SIGNATURE,
+ "libspectrum_csw_read: wrong signature" );
+ return LIBSPECTRUM_ERROR_SIGNATURE;
+ }
+
+ /* Claim memory for the block */
+ block = malloc( sizeof( *block ) );
+ if( !block ) goto csw_nomem;
+
+ /* Set the block type */
+ block->type = LIBSPECTRUM_TAPE_BLOCK_RLE_PULSE;
+ csw_block = &block->types.rle_pulse;
+
+ buffer += signature_length;
+ length -= signature_length;
+
+ switch( buffer[0] ) {
+
+ case 1:
+ if( length < 9 ) goto csw_short;
+ csw_block->scale = buffer[2] | buffer[3] << 8;
+ if( buffer[4] != 1 ) goto csw_bad_compress;
+ compressed = 0;
+ buffer += 9;
+ length -= 9;
+ break;
+
+ case 2:
+ if( length < 29 ) goto csw_short;
+
+ csw_block->scale =
+ buffer[2] |
+ buffer[3] << 8 |
+ buffer[4] << 16 |
+ buffer[5] << 24;
+ compressed = buffer[10] - 1;
+
+ if( compressed != 0 && compressed != 1 ) goto csw_bad_compress;
+
+ length -= 29 - buffer[12];
+ if( length < 0 ) goto csw_short;
+ buffer += 29 + buffer[12];
+
+ break;
+
+ default:
+ libspectrum_print_error( LIBSPECTRUM_ERROR_MEMORY,
+ "libspectrum_csw_read: unknown CSW version" );
+ return LIBSPECTRUM_ERROR_SIGNATURE;
+ }
+
+ if (csw_block->scale)
+ csw_block->scale = 3500000 / csw_block->scale; /* approximate CPU speed */
+
+ if( csw_block->scale < 0 || csw_block->scale >= 0x80000 ) {
+ libspectrum_print_error (LIBSPECTRUM_ERROR_MEMORY,
+ "libspectrum_csw_read: bad sample rate" );
+ return LIBSPECTRUM_ERROR_UNKNOWN;
+ }
+
+ if( !length ) goto csw_empty;
+
+ if( compressed ) {
+ /* Compressed data... */
+#ifdef HAVE_ZLIB_H
+ csw_block->data = NULL;
+ csw_block->length = 0;
+ error = libspectrum_zlib_inflate( buffer, length, &csw_block->data,
+ &csw_block->length );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+#else
+ libspectrum_print_error( LIBSPECTRUM_ERROR_UNKNOWN,
+ "zlib not available to decompress gzipped file" );
+ return LIBSPECTRUM_ERROR_UNKNOWN;
+#endif
+ } else {
+ /* Claim memory for the data (it's one big lump) */
+ csw_block->length = length;
+ csw_block->data = malloc( length );
+ if( !csw_block->data ) goto csw_nomem;
+
+ /* Copy the data across */
+ memcpy( csw_block->data, buffer, length );
+ }
+
+ /* Put the block into the block list */
+ error = libspectrum_tape_append_block( tape, block );
+ if( error ) {
+ free (csw_block->data);
+ libspectrum_tape_block_free( block );
+ return error;
+ }
+
+ /* Successful completion */
+ return LIBSPECTRUM_ERROR_NONE;
+
+ /* Error returns */
+
+ csw_bad_compress:
+ free( block );
+ libspectrum_print_error( LIBSPECTRUM_ERROR_MEMORY,
+ "libspectrum_csw_read: unknown compression type" );
+ return LIBSPECTRUM_ERROR_CORRUPT;
+
+ csw_nomem:
+ free( block );
+ libspectrum_print_error( LIBSPECTRUM_ERROR_MEMORY,
+ "libspectrum_csw_read: out of memory" );
+ return LIBSPECTRUM_ERROR_MEMORY;
+
+ csw_short:
+ free( block );
+ libspectrum_print_error( LIBSPECTRUM_ERROR_CORRUPT,
+ "libspectrum_csw_read: not enough data in buffer" );
+ return LIBSPECTRUM_ERROR_CORRUPT;
+
+ csw_empty:
+ free( block );
+ /* Successful completion */
+ return LIBSPECTRUM_ERROR_NONE;
+}
+
+static libspectrum_dword
+find_sample_rate( libspectrum_tape *tape )
+{
+ libspectrum_tape_iterator iterator;
+ libspectrum_tape_block *block;
+ libspectrum_dword sample_rate = 44100;
+ int found = 0;
+
+ /* FIXME: If tape has only one block that is a sampled type, just use it's rate
+ and if it RLE, we should just zlib and write */
+ for( block = libspectrum_tape_iterator_init( &iterator, tape );
+ block;
+ block = libspectrum_tape_iterator_next( &iterator ) )
+ {
+ switch( libspectrum_tape_block_type( block ) ) {
+
+ case LIBSPECTRUM_TAPE_BLOCK_RAW_DATA:
+ case LIBSPECTRUM_TAPE_BLOCK_RLE_PULSE:
+ {
+ libspectrum_dword block_rate =
+ 3500000 / libspectrum_tape_block_bit_length( block );
+
+ if( found ) {
+ if( block_rate != sample_rate ) {
+ libspectrum_print_error(
+ LIBSPECTRUM_ERROR_WARNING,
+ "find_sample_rate: converting tape with mixed sample rates; conversion may well not work"
+ );
+ }
+ }
+ sample_rate = block_rate;
+ found = 1;
+ }
+ break;
+
+ case LIBSPECTRUM_TAPE_BLOCK_ROM:
+ case LIBSPECTRUM_TAPE_BLOCK_TURBO:
+ case LIBSPECTRUM_TAPE_BLOCK_PURE_TONE:
+ case LIBSPECTRUM_TAPE_BLOCK_PULSES:
+ case LIBSPECTRUM_TAPE_BLOCK_PURE_DATA:
+ case LIBSPECTRUM_TAPE_BLOCK_GENERALISED_DATA:
+ case LIBSPECTRUM_TAPE_BLOCK_PAUSE:
+ case LIBSPECTRUM_TAPE_BLOCK_GROUP_START:
+ case LIBSPECTRUM_TAPE_BLOCK_GROUP_END:
+ case LIBSPECTRUM_TAPE_BLOCK_JUMP:
+ case LIBSPECTRUM_TAPE_BLOCK_LOOP_START:
+ case LIBSPECTRUM_TAPE_BLOCK_LOOP_END:
+ case LIBSPECTRUM_TAPE_BLOCK_SELECT:
+ case LIBSPECTRUM_TAPE_BLOCK_STOP48:
+ case LIBSPECTRUM_TAPE_BLOCK_COMMENT:
+ case LIBSPECTRUM_TAPE_BLOCK_MESSAGE:
+ case LIBSPECTRUM_TAPE_BLOCK_ARCHIVE_INFO:
+ case LIBSPECTRUM_TAPE_BLOCK_HARDWARE:
+ case LIBSPECTRUM_TAPE_BLOCK_CUSTOM:
+ case LIBSPECTRUM_TAPE_BLOCK_CONCAT:
+ break;
+
+ default:
+ libspectrum_print_error(
+ LIBSPECTRUM_ERROR_LOGIC,
+ "libspectrum_csw_write: unknown block type 0x%02x",
+ libspectrum_tape_block_type( block )
+ );
+
+ }
+ }
+
+ return sample_rate;
+}
+
+static libspectrum_error
+csw_write_body( libspectrum_byte **buffer, size_t *length,
+ libspectrum_tape *tape, libspectrum_dword sample_rate,
+ size_t length_offset, libspectrum_byte *ptr )
+{
+ libspectrum_error error;
+ int flags = 0;
+ libspectrum_dword pulse_tstates = 0;
+ libspectrum_dword balance_tstates = 0;
+ libspectrum_byte *data = NULL;
+ size_t data_size;
+ size_t data_length = 0;
+ libspectrum_byte *data_ptr = data;
+ long scale = 3500000/sample_rate;
+ libspectrum_tape_block_state it;
+ libspectrum_byte *length_ptr;
+
+ error = libspectrum_make_room( &data, 8192, &data_ptr, &data_size );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ if( libspectrum_tape_block_internal_init( &it, tape ) ) {
+ while( !(flags & LIBSPECTRUM_TAPE_FLAGS_STOP) ) {
+ libspectrum_dword pulse_length = 0;
+
+ /* Use internal version of this that doesn't bugger up the
+ external tape status */
+ error = libspectrum_tape_get_next_edge_internal( &pulse_tstates, &flags,
+ tape, &it );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ balance_tstates += pulse_tstates;
+
+ if( flags & LIBSPECTRUM_TAPE_FLAGS_NO_EDGE ) continue;
+
+ /* next RLE value is: balance_tstates / scale; */
+ pulse_length = balance_tstates / scale;
+ balance_tstates = balance_tstates % scale;
+
+ if( pulse_length ) {
+ if( data_size < (data_length + 1 + sizeof(libspectrum_dword) ) ) {
+ error = libspectrum_make_room( &data, data_size*2,
+ &data_ptr, &data_size );
+ if( error != LIBSPECTRUM_ERROR_NONE ) {
+ free( data );
+ return error;
+ }
+ }
+
+ if( pulse_length <= 0xff ) {
+ *data_ptr++ = pulse_length;
+ data_length++;
+ } else {
+ *data_ptr++ = 0;
+ data_length++;
+ libspectrum_write_dword( &data_ptr, pulse_length );
+ data_length+=sizeof(libspectrum_dword);
+ }
+ }
+ }
+ }
+
+ /* Write the length in */
+ length_ptr = *buffer + length_offset;
+ libspectrum_write_dword( &length_ptr, data_length );
+
+ /* compression type */
+#ifdef HAVE_ZLIB_H
+ if( data_length ) {
+ libspectrum_byte *compressed_data = NULL;
+ size_t compressed_length;
+
+ error = libspectrum_zlib_compress( data, data_length,
+ &compressed_data, &compressed_length );
+ free( data );
+ if( error ) return error;
+
+ data = compressed_data;
+ data_length = compressed_length;
+ }
+#endif
+
+ if( data_length ) {
+ error = libspectrum_make_room( buffer, data_length, &ptr, length );
+ if( error != LIBSPECTRUM_ERROR_NONE ) {
+ free( data );
+ return error;
+ }
+
+ /* Write out the data */
+ memcpy( ptr, data, data_length ); ptr += data_length;
+
+ free( data );
+ }
+
+ return LIBSPECTRUM_ERROR_NONE;
+}
+
+libspectrum_error
+libspectrum_csw_write( libspectrum_byte **buffer, size_t *length,
+ libspectrum_tape *tape )
+{
+ libspectrum_error error;
+ libspectrum_dword sample_rate;
+ size_t length_offset;
+
+ libspectrum_byte *ptr = *buffer;
+
+ size_t signature_length = strlen( libspectrum_csw_signature );
+
+ /* First, write the .csw signature and the rest of the header */
+ error = libspectrum_make_room( buffer, signature_length + 29, &ptr, length );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ memcpy( ptr, libspectrum_csw_signature, signature_length );
+ ptr += signature_length;
+
+ *ptr++ = 2; /* Major version number */
+ *ptr++ = 0; /* Minor version number */
+
+ /* sample rate */
+ sample_rate = find_sample_rate( tape );
+ libspectrum_write_dword( &ptr, sample_rate );
+
+ /* Store where the total number of pulses (after decompression) will
+ be written, and skip over those bytes */
+ length_offset = ptr - *buffer; ptr += sizeof(libspectrum_dword);
+
+ /* compression type */
+#ifdef HAVE_ZLIB_H
+ *ptr++ = 2; /* Z-RLE */
+#else
+ *ptr++ = 1; /* RLE */
+#endif
+
+ /* flags */
+ *ptr++ = 0; /* No flags */
+
+ /* header extension length in bytes */
+ *ptr++ = 0; /* No header extension */
+
+ /* encoding application description */
+ memset( ptr, 0, 16 ); ptr += 16; /* No creator for now */
+
+ /* header extension data is zero so on to the data */
+
+ error = csw_write_body( buffer, length, tape, sample_rate, length_offset, ptr );
+ if( error != LIBSPECTRUM_ERROR_NONE ) return error;
+
+ return LIBSPECTRUM_ERROR_NONE;
+}
Modified: vendor/libspectrum/current/dck.c
===================================================================
--- vendor/libspectrum/current/dck.c 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/dck.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
/* dck.c: Routines for handling Warajevo DCK files
Copyright (c) 2003 Darren Salt, Fredrick Meunier
- $Id: dck.c,v 1.6 2007/02/02 16:35:42 pak21 Exp $
+ $Id: dck.c 2890 2007-05-26 19:31:43Z 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
@@ -13,9 +13,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
Modified: vendor/libspectrum/current/dll.c
===================================================================
--- vendor/libspectrum/current/dll.c 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/dll.c 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
/* dll.c: Visual C++ DLL entry point
Copyright (c) 2004 Philip Kendall
- $Id: dll.c,v 1.2 2007/02/02 16:35:42 pak21 Exp $
+ $Id: dll.c 3367 2007-11-30 03:41: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
@@ -13,9 +13,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 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:
@@ -28,7 +28,7 @@
#include "internals.h"
BOOL APIENTRY
-DllMain( HANDLE module, DWORD reason, LPVOID opaque (
+DllMain( HANDLE module, DWORD reason, LPVOID opaque )
{
switch( ul_reason_for_call ) {
case DLL_PROCESS_ATTACH:
Deleted: vendor/libspectrum/current/doc/.cvsignore
===================================================================
--- vendor/libspectrum/current/doc/.cvsignore 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/doc/.cvsignore 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
Modified: vendor/libspectrum/current/doc/Makefile.am
===================================================================
--- vendor/libspectrum/current/doc/Makefile.am 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/doc/Makefile.am 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2004 Philip Kendall
-## $Id: Makefile.am,v 1.3 2007/02/02 16:35:44 pak21 Exp $
+## $Id: Makefile.am 2890 2007-05-26 19:31:43Z 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
@@ -13,17 +13,17 @@
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+## 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
+man_MANS = doc/libspectrum.3
-man_MANS = libspectrum.3
-
-EXTRA_DIST = $(man_MANS) \
- libspectrum.txt
+EXTRA_DIST += \
+ $(man_MANS) \
+ doc/libspectrum.txt \
+ doc/Makefile.am
Modified: vendor/libspectrum/current/doc/cvs-tags
===================================================================
--- vendor/libspectrum/current/doc/cvs-tags 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/doc/cvs-tags 2008-02-13 20:57:45 UTC (rev 471)
@@ -55,8 +55,16 @@
| | libspectrum_0_3_0pre1
| | libspectrum_0_3_0pre2
| | libspectrum_0_3_0
-| | libspectrum_0_3_0_1
+| | libspectrum_0_3_0_1 Merged to HEAD at libspectrum_0_3_0-merge-1
| |
| | libspectrum_0_3_0-branch
|
+| libspectrum_0_3_0-merge-1
+|
++-\
+| | libspectrum_0_4_0pre1
+| | libspectrum_0_4_0
+| |
+| | libspectrum_0_4_0-branch
+|
HEAD
Modified: vendor/libspectrum/current/doc/libspectrum.3
===================================================================
--- vendor/libspectrum/current/doc/libspectrum.3 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/doc/libspectrum.3 2008-02-13 20:57:45 UTC (rev 471)
@@ -13,16 +13,16 @@
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with this program; if not, write to the Free Software
-.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+.\" 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...
.\"
.\"
-.TH libspectrum 3 "11th May, 2007" "Version 0.3.0.1" "Emulators"
+.TH libspectrum 3 "5th January, 2008" "Version 0.4.0" "Emulators"
.\"
.\"------------------------------------------------------------------
.\"
@@ -45,8 +45,8 @@
Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and +D
snapshots (read only).
.IP \(bu 2
-Tape images: .tzx, .tap (read/write) and Warajevo .tap, Z80Em and CSW
-version 1 (read only).
+Tape images: .tzx, .tap, .spc, .sta, .ltp (read/write) and Warajevo .tap,
+Z80Em and CSW version 1 (read only).
.IP \(bu 2
Input recordings: .rzx (read/write).
.IP \(bu 2
@@ -72,7 +72,7 @@
.SH SEE ALSO
.IR bzip2 "(3),"
.IR fuse "(1),"
-.IR fuse-utils "(1),"
+.IR fuse\-utils "(1),"
.IR gzip "(3)"
.PP
The comp.sys.sinclair Spectrum FAQ, at
@@ -82,4 +82,4 @@
.\"------------------------------------------------------------------
.\"
.SH AUTHOR
-Philip Kendall (phi...@sh...)
+Philip Kendall (philip\-fu...@sh...)
Modified: vendor/libspectrum/current/doc/libspectrum.txt
===================================================================
--- vendor/libspectrum/current/doc/libspectrum.txt 2008-02-13 12:54:53 UTC (rev 470)
+++ vendor/libspectrum/current/doc/libspectrum.txt 2008-02-13 20:57:45 UTC (rev 471)
@@ -1,5 +1,5 @@
-libspectrum 0.3.0.1
-===================
+libspectrum 0.4.0
+=================
libspectrum is a fairly simple library designed to make the handling
of various ZX Spectrum emulator-related file formats easy. So far it
@@ -7,7 +7,8 @@
* Snapshots: .z80, .szx, .sna (all read/write), .zxs, .sp., .snp and
+D snapshots (read only).
-* Tape images: .tzx, .tap (read/write) and Warajevo .tap (read only).
+* Tape images: .tzx, .tap, .spc, .sta and .ltp (read/write) and
+ Warajevo .tap, Z80Em and CSW version 1 (read only).
* Input recordings: .rzx (read/write).
* Timex cartridges: .dck (read only).
* IDE hard disk images: .hdf (read/write).
@@ -99,7 +100,7 @@
file contains .slt data
LIBSPECTRUM_ERROR_INVALID An invalid parameter was supplied to a
function
-LIBSPECTRUM_ERROR_LOGIC An internal logic error has occured;
+LIBSPECTRUM_ERROR_LOGIC An internal logic error has occurred;
should never be seen
`libspectrum_error_function' is an object of type
@@ -143,6 +144,8 @@
LIBSPECTRUM_MACHINE_TC2068 Timex TC2068
LIBSPECTRUM_MACHINE_TS2068 Timex TS2068
LIBSPECTRUM_MACHINE_PENT Pentagon 128
+LIBSPECTRUM_MACHINE_PENT512 Pentagon 512
+LIBSPECTRUM_MACHINE_PENT1024 Pentagon 1024
LIBSPECTRUM_MACHINE_SCORP Scorpion ZS 256
LIBSPECTRUM_MACHINE_SE Spectrum SE
@@ -247,10 +250,10 @@
LIBSPECTRUM_ID_RECORDING_RZX A .rzx input recording
-LIBSPECTRUM_ID_SNAPSHOT_PLUSD A +D snapshot
-LIBSPECTRUM_ID_SNAPSHOT_SNA A .sna snapshot
-LIBSPECTRUM_ID_SNAPSHOT_SNP A .snp snapshot
-LIBSPECTRUM_ID_SNAPSHOT_SP A .sp snapshot
+LIBSPECTRUM_ID_SNAPSHOT_PLUSD A +D snapshot
+LIBSPECTRUM_ID_SNAPSHOT_SNA A .sna snapshot
+LIBSPECTRUM_ID_SNAPSHOT_SNP A .snp snapshot
+LIBSPECTRUM_ID_SNAPSHOT_SP A .sp snapshot
LIBSPECTRUM_ID_SNAPSHOT_SZX A .szx snapshot (as used by Spectaculator)
LIBSPECTRUM_ID_SNAPSHOT_Z80 A .z80 snapshot
LIBSPECTRUM_ID_SNAPSHOT_ZXS A .zxs snapshot (as used by zx32)
@@ -260,6 +263,9 @@
LIBSPECTRUM_ID_TAPE_TZX A .tzx tape image
LIBSPECTRUM_ID_TAPE_WARAJEVO A Warajevo-style .tap tape image
LIBSPECTRUM_ID_TAPE_Z80EM A Z80Em tape image
+LIBSPECTRUM_ID_TAPE_SPC An SP-style .spc tape image
+LIBSPECTRUM_ID_TAPE_STA A Speculator-style .sta tape image
+LIBSPECTRUM_ID_TAPE_LTP A Nuclear ZX-style .ltp tape image
`libspectrum_identify_file_raw' looks for defined signatures in the
file as well as the extension of the filename and a couple of
@@ -275,7 +281,7 @@
libspectrum_identify_file( libspectrum_id_t *type, const char *filename,
const unsigned char *buffer, size_t length )
-The parameters are the same as for `libspectrum_identify_file_raw'.
+The parameters are the same as for `libspectrum_identify_file_raw'.
What in many cases may be more useful than the specific type of the
file is whether the file is a snapshot, a tape image or whatever. This
@@ -336,7 +342,7 @@
libspectrum_word
libspectrum_timings_horizontal_retrace( libspectrum_machine machine )
-The length in tstates of the the different parts of one scanline.
+The length in tstates of the different parts of one scanline.
libspectrum_word
libspectrum_timings_tstates_per_line( libspectrum_machine machine )
@@ -593,7 +599,7 @@
of the Timex EXROM or DOCK are writable.
* `joystick_active_count' is the number of joysticks connected to the emulated
- Spectrum. `joystick_list' gives the type of the joysticks and
+ Spectrum. `joystick_list' gives the type of the joysticks and
`joystick_inputs' gives the corresponding connections to the real machines
keyboard and joysticks.
@@ -735,9 +741,11 @@
Take the tape image of type `type' of `length' bytes starting at
`buffer' and convert it to a `libspectrum_tape' structure. If `type'
is `LIBSPECTRUM_ID_UNKNOWN', guess the file format via
-`libspectrum_identify_file'; `filename' is used only to help with the
-identification process and can be set to NULL (or anything else) if
-`type' is not `LIBSPECTRUM_ID_UNKNOWN'. Tape images compressed with
+`libspectrum_identify_file'; `filename' is generally used only to help
+with the identification process and can be set to NULL (or anything
+else) if `type' is not `LIBSPECTRUM_ID_UNKNOWN' unless the tape is a
+WAV file where the underlying audiofile library will reread the
+file and will not use the buffer. Tape images compressed with
bzip2 or gzip will be automatically and transparently decompressed.
libspectrum_error
@@ -921,7 +929,7 @@
These values are defined in the `libspectrum_tape_type' enumeration.
The `concatenation' block (0x5a) is recognised on input, but just
-skipped; hence it wil never appear in a libspectrum_tape_block.
+skipped; hence it will never appear in a libspectrum_tape_block.
The basic routines for dealing with tape blocks are:
@@ -970,7 +978,7 @@
int
libspectrum_tape_block_metadata( libspectrum_tape_block *block )
-Returns 1 if the block consists solely of metadata (comments, etc) or
+Returns 1 if the block consists solely of metadata (comments, etc.) or
0 if it contains real data.
The `get' and `set' functions follow the same pattern as for the
@@ -1102,23 +1110,29 @@
generalised data block (ID 0x19). It can be accessed with the
following routines:
-libspectrum_dword libspectrum_tape_generalised_data_symbol_table_symbols_in_block( const libspectrum_tape_generalised_data_symbol_table *table )
-libspectrum_byte libspectrum_tape_generalised_data_symbol_table_max_pulses( cons
-t libspectrum_tape_generalised_data_symbol_table *table )
-libspectrum_word libspectrum_tape_generalised_data_symbol_table_symbols_in_table
-( const libspectrum_tape_generali...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-13 12:54:48
|
Revision: 470
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=470&view=rev
Author: fredm
Date: 2008-02-13 04:54:53 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
Fix the blocked keyboard from Command-q (quit), Command-h (hide) and Command-m
(minimise) (fixes bug #1842577).
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.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/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-13 12:54:53 UTC (rev 470)
@@ -119,6 +119,10 @@
- (IBAction)tape_write:(id)sender;
- (IBAction)tape_record:(id)sender;
+- (IBAction)quit:(id)sender;
+- (IBAction)hide:(id)sender;
+- (IBAction)help:(id)sender;
+
- (IBAction)showRollbackPane:(id)sender;
- (IBAction)showTapeBrowserPane:(id)sender;
- (IBAction)showKeyboardPane:(id)sender;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-13 12:54:53 UTC (rev 470)
@@ -127,10 +127,13 @@
};
#define QZ_s 0x01
+#define QZ_h 0x04
#define QZ_z 0x06
#define QZ_b 0x0B
+#define QZ_q 0x0C
#define QZ_o 0x1F
#define QZ_p 0x23
+#define QZ_SLASH 0x2C
#define QZ_PERIOD 0x2F
@implementation FuseController
@@ -794,6 +797,24 @@
[[DisplayOpenGLView instance] tapeToggleRecord];
}
+- (IBAction)quit:(id)sender
+{
+ [[NSApp keyWindow] performClose:self];
+ [self releaseCmdKeys:@"q":QZ_q];
+}
+
+- (IBAction)hide:(id)sender
+{
+ [NSApp hide:self];
+ [self releaseCmdKeys:@"h":QZ_h];
+}
+
+- (IBAction)help:(id)sender
+{
+ [NSApp showHelp:self];
+ [self releaseCmdKeys:@"?":QZ_SLASH];
+}
+
- (IBAction)cocoa_break:(id)sender
{
[[DisplayOpenGLView instance] cocoaBreak];
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-02-13 12:54:53 UTC (rev 470)
@@ -28,6 +28,8 @@
"export_screen" = id;
fullscreen = id;
"hard_reset" = id;
+ help = id;
+ hide = id;
"ide_commit" = id;
"ide_eject" = id;
"ide_insert" = id;
@@ -47,6 +49,7 @@
"profiler_stop" = id;
"psg_start" = id;
"psg_stop" = id;
+ quit = id;
reset = id;
resetUserDefaults = id;
"rzx_insert_snap" = id;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-13 12:54:53 UTC (rev 470)
@@ -13,10 +13,10 @@
<string>489.0</string>
<key>IBOpenObjects</key>
<array>
+ <integer>877</integer>
<integer>29</integer>
- <integer>877</integer>
</array>
<key>IBSystem Version</key>
- <string>9B18</string>
+ <string>9C31</string>
</dict>
</plist>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-13 12:54:53 UTC (rev 470)
@@ -222,6 +222,7 @@
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp;
-(void) windowChangedScreen:(NSNotification*)inNotification;
+-(void) windowDidDeminiaturize:(NSNotification *)inNotification;
-(void) displayLinkStop;
-(void) displayLinkStart;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-13 12:54:53 UTC (rev 470)
@@ -43,6 +43,7 @@
#define QZ_1 0x12
#define QZ_2 0x13
#define QZ_3 0x14
+#define QZ_m 0x2E
const void *
get_byte_pointer(void *bitmap)
@@ -1210,6 +1211,11 @@
}
}
+-(void) windowDidDeminiaturize:(NSNotification *)inNotification
+{
+ [[FuseController singleton] releaseCmdKeys:@"m":QZ_m];
+}
+
-(void) displayLinkStop
{
if( displayLinkRunning == YES ) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-11 12:16:45
|
Revision: 469
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=469&view=rev
Author: fredm
Date: 2008-02-11 04:16:49 -0800 (Mon, 11 Feb 2008)
Log Message:
-----------
Clear stuck shortcut keys for Command-{0,1,2,3,f,s,z,b,o,p,period}, still need
to handle Command-q (quit), Command-h (hide) and Command-m (minimise).
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-11 12:16:49 UTC (rev 469)
@@ -133,6 +133,9 @@
- 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 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-11 12:16:49 UTC (rev 469)
@@ -126,6 +126,13 @@
"joystick 2",
};
+#define QZ_s 0x01
+#define QZ_z 0x06
+#define QZ_b 0x0B
+#define QZ_o 0x1F
+#define QZ_p 0x23
+#define QZ_PERIOD 0x2F
+
@implementation FuseController
static FuseController *singleton = nil;
@@ -462,6 +469,7 @@
free(filename);
[[DisplayOpenGLView instance] unpause];
+ [self releaseCmdKeys:@"o":QZ_o];
}
- (IBAction)reset:(id)sender
@@ -513,11 +521,13 @@
- (IBAction)rzx_insert_snap:(id)sender
{
[[DisplayOpenGLView instance] rzxInsertSnap];
+ [self releaseCmdKeys:@"b":QZ_b];
}
- (IBAction)rzx_rollback:(id)sender
{
[[DisplayOpenGLView instance] rzxRollback];
+ [self releaseCmdKeys:@"z":QZ_z];
}
- (IBAction)rzx_start:(id)sender
@@ -615,7 +625,7 @@
filename = cocoaui_savepanel_get_filename( @"Save Snapshot As", [NSArray arrayWithObjects:@"szx", @"z80", @"sna", nil] );
- if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
+ if( !filename ) goto save_as_exit;
[[DisplayOpenGLView instance] snapshotWrite:filename];
@@ -626,7 +636,9 @@
free( filename );
+save_as_exit:
[[DisplayOpenGLView instance] unpause];
+ [self releaseCmdKeys:@"s":QZ_s];
}
- (IBAction)open_screen:(id)sender
@@ -764,6 +776,7 @@
- (IBAction)tape_play:(id)sender
{
[[DisplayOpenGLView instance] tapeTogglePlay];
+ [self releaseCmdKeys:@"p":QZ_p];
}
- (IBAction)tape_rewind:(id)sender
@@ -849,6 +862,7 @@
preferencesController = [[PreferencesController alloc] init];
}
[preferencesController showWindow:self];
+ [self releaseCmdKeys:@".":QZ_PERIOD];
}
- (IBAction)saveFileTypeClicked:(id)sender;
@@ -895,6 +909,55 @@
[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]];
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-11 12:16:49 UTC (rev 469)
@@ -38,6 +38,12 @@
#include "ui/cocoa/cocoaui.h"
#include "ui/cocoa/dirty.h"
+#define QZ_f 0x03
+#define QZ_0 0x1D
+#define QZ_1 0x12
+#define QZ_2 0x13
+#define QZ_3 0x14
+
const void *
get_byte_pointer(void *bitmap)
{
@@ -106,6 +112,7 @@
[view_lock lock];
statusbar_updated = YES;
[view_lock unlock];
+ [[FuseController singleton] releaseCmdKeys:@"f":QZ_f];
}
-(IBAction) zoom:(id)sender
@@ -116,19 +123,23 @@
case 1: /* 320x240 */
size.width = 320;
size.height = 240;
+ [[FuseController singleton] releaseCmdKeys:@"1":QZ_1];
break;
case 2: /* 640x480 */
size.width = 640;
size.height = 480;
+ [[FuseController singleton] releaseCmdKeys:@"2":QZ_2];
break;
case 3: /* 960x720 */
size.width = 960;
size.height = 720;
+ [[FuseController singleton] releaseCmdKeys:@"3":QZ_3];
break;
case 0:
default: /* Actual size */
size.width = screenTex[0].image_width;
size.height = screenTex[0].image_height;
+ [[FuseController singleton] releaseCmdKeys:@"0":QZ_0];
}
[[self window] setContentSize:size];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-10 20:47:08
|
Revision: 468
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=468&view=rev
Author: fredm
Date: 2008-02-10 12:47:11 -0800 (Sun, 10 Feb 2008)
Log Message:
-----------
Make application quit menu use performClose on the window, and switch exit
confirm dialog to windowShouldClose in DisplayOpenGLView (partial fix to
bug #1842576).
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-10 20:47:11 UTC (rev 468)
@@ -8,8 +8,6 @@
/* Begin PBXBuildFile section */
B615BFE80B4261E50082D535 /* HIDJoysticks.m in Sources */ = {isa = PBXBuildFile; fileRef = B615BFE60B4261E50082D535 /* HIDJoysticks.m */; };
- B61EEBA60D1A917D006FEA80 /* FuseGenerator.qlgenerator in Resources */ = {isa = PBXBuildFile; fileRef = B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */; };
- B61EEBB10D1A91A9006FEA80 /* FuseGenerator.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */; };
B61F459309121DF100C8096C /* Fuse Help in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F905ED05CDA24300C2F10D /* Fuse Help */; };
B61F459409121DF100C8096C /* disk_plus3.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C3F2076596C700DE7E81 /* disk_plus3.szx */; };
B61F459509121DF100C8096C /* tape_16.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C3F4076596FD00DE7E81 /* tape_16.szx */; };
@@ -240,7 +238,6 @@
dstPath = Contents/Library/QuickLook;
dstSubfolderSpec = 1;
files = (
- B61EEBB10D1A91A9006FEA80 /* FuseGenerator.qlgenerator in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1348,7 +1345,6 @@
B6CADD730C48E1A3004BA954 /* microdrive_red.png in Resources */,
B6CADD740C48E1A3004BA954 /* plus3disk_green.png in Resources */,
B6CADD750C48E1A3004BA954 /* plus3disk_red.png in Resources */,
- B61EEBA60D1A917D006FEA80 /* FuseGenerator.qlgenerator in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-10 20:47:11 UTC (rev 468)
@@ -206,7 +206,6 @@
-(ui_confirm_joystick_t) confirmJoystick:(libspectrum_joystick)type inputs:(int)theInputs;
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication;
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename;
- (void)setAcceptsMouseMovedEvents:(BOOL)flag;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-10 20:47:11 UTC (rev 468)
@@ -59,7 +59,7 @@
static char* cocoaui_openpanel_get_filename( NSString *title, NSArray *fileTypes );
static char* cocoaui_savepanel_get_filename( NSString *title, NSArray *fileTypes );
static void cocoaui_disk_eject( specplus3_drive_number drive, int which );
-static int cocoaui_confirm( const char *message );
+int cocoaui_confirm( const char *message );
static int dockEject = 0;
static int if2Eject = 0;
@@ -1705,17 +1705,6 @@
return YES;
}
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
-{
- if( cocoaui_confirm( "Exit Fuse?" ) ) {
- int error = [[DisplayOpenGLView instance] checkMediaChanged];
- if( error ) return NSTerminateCancel;
-
- return NSTerminateNow;
- }
- return NSTerminateCancel;
-}
-
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
utils_file file; libspectrum_id_t type;
@@ -2124,7 +2113,7 @@
return 0;
}
-static int
+int
cocoaui_confirm( const char *message )
{
int confirm = 0;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-10 20:47:11 UTC (rev 468)
@@ -7,7 +7,7 @@
<key>IBEditorPositions</key>
<dict>
<key>29</key>
- <string>202 691 392 44 0 0 1440 878 </string>
+ <string>201 691 392 44 0 0 1440 878 </string>
</dict>
<key>IBFramework Version</key>
<string>489.0</string>
@@ -17,6 +17,6 @@
<integer>877</integer>
</array>
<key>IBSystem Version</key>
- <string>9A581</string>
+ <string>9B18</string>
</dict>
</plist>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-10 20:47:11 UTC (rev 468)
@@ -218,6 +218,7 @@
-(void) copyGLtoQuartz;
-(void) windowWillMiniaturize:(NSNotification *)aNotification;
-(void) windowDidMiniaturize:(NSNotification *)notification;
+-(BOOL) windowShouldClose:(id)window;
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp;
-(void) windowChangedScreen:(NSNotification*)inNotification;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-10 20:47:11 UTC (rev 468)
@@ -35,6 +35,7 @@
#include "fuse.h"
#include "fusepb/main.h"
#include "settings.h"
+#include "ui/cocoa/cocoaui.h"
#include "ui/cocoa/dirty.h"
const void *
@@ -1168,6 +1169,17 @@
[[self window] setOpaque:YES];
}
+-(BOOL) windowShouldClose:(id)window
+{
+ if( cocoaui_confirm( "Exit Fuse?" ) ) {
+ int error = [self checkMediaChanged];
+ if( error ) return NO;
+
+ return YES;
+ }
+ return NO;
+}
+
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp
{
[self drawRect:NSZeroRect];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-12-21 02:42:42
|
Revision: 467
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=467&view=rev
Author: fredm
Date: 2007-12-20 18:42:46 -0800 (Thu, 20 Dec 2007)
Log Message:
-----------
Some SCREEN$ were saved from places other than 16384 (presumably due to art
packages and the like).
Modified Paths:
--------------
trunk/FuseGenerator/LibspectrumSCRExtractor.m
Modified: trunk/FuseGenerator/LibspectrumSCRExtractor.m
===================================================================
--- trunk/FuseGenerator/LibspectrumSCRExtractor.m 2007-12-21 00:16:49 UTC (rev 466)
+++ trunk/FuseGenerator/LibspectrumSCRExtractor.m 2007-12-21 02:42:46 UTC (rev 467)
@@ -210,10 +210,9 @@
if( libspectrum_tape_block_data_length( block ) == 19 ) {
libspectrum_byte *data = libspectrum_tape_block_data( block );
- /* Flag byte is 0x00 for headers, type is 3 for CODE, length is 6912 and start address is 16384 */
+ /* Flag byte is 0x00 for headers, type is 3 for CODE, length is 6912 */
if( data[0] == 0x00 && data[1] == 0x03 &&
- ( data[12] + data[13] * 0x100 == STANDARD_SCR_SIZE ) &&
- ( data[14] + data[15] * 0x100 == 16384 ) ) {
+ ( data[12] + data[13] * 0x100 == STANDARD_SCR_SIZE ) ) {
seen_scr_header = 1;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-12-21 00:16:44
|
Revision: 466
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=466&view=rev
Author: fredm
Date: 2007-12-20 16:16:49 -0800 (Thu, 20 Dec 2007)
Log Message:
-----------
Add QuickLook generator for Speccy-related files, thanks to James Weatherley for
JWSpectrumScreen that makes it all possible.
Modified Paths:
--------------
trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj
trunk/README
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/FuseGenerator/
trunk/FuseGenerator/English.lproj/
trunk/FuseGenerator/English.lproj/InfoPlist.strings
trunk/FuseGenerator/FuseGenerator.xcodeproj/
trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj
trunk/FuseGenerator/GeneratePreviewForURL.m
trunk/FuseGenerator/GenerateThumbnailForURL.m
trunk/FuseGenerator/Info.plist
trunk/FuseGenerator/JWSpectrumScreen/
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.h
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.m
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.h
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.m
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.h
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.m
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimexHiRes.h
trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimexHiRes.m
trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c
trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.h
trunk/FuseGenerator/JWSpectrumScreen/ColourMacros.c
trunk/FuseGenerator/JWSpectrumScreen/ColourMacros.h
trunk/FuseGenerator/JWSpectrumScreen/English.lproj/
trunk/FuseGenerator/JWSpectrumScreen/English.lproj/InfoPlist.strings
trunk/FuseGenerator/JWSpectrumScreen/Info.plist
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.h
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.xcodeproj/
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.xcodeproj/project.pbxproj
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreenConstants.h
trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen_Prefix.pch
trunk/FuseGenerator/JWSpectrumScreen/PixelData.h
trunk/FuseGenerator/JWSpectrumScreen/README
trunk/FuseGenerator/LibspectrumSCRExtractor.h
trunk/FuseGenerator/LibspectrumSCRExtractor.m
trunk/FuseGenerator/config.h
trunk/FuseGenerator/generate.pl
trunk/FuseGenerator/libspectrum
trunk/FuseGenerator/libspectrum.h
trunk/FuseGenerator/main.c
Property changes on: trunk/FuseGenerator
___________________________________________________________________
Name: svn:ignore
+ build
Added: trunk/FuseGenerator/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Property changes on: trunk/FuseGenerator/English.lproj/InfoPlist.strings
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Property changes on: trunk/FuseGenerator/FuseGenerator.xcodeproj
___________________________________________________________________
Name: svn:ignore
+ *.pbxuser
*.mode1v3
Added: trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj
===================================================================
--- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj (rev 0)
+++ trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,553 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 44;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2C05A19C06CAA52B00D84F6F /* GeneratePreviewForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C05A19B06CAA52B00D84F6F /* GeneratePreviewForURL.m */; };
+ 61E3BCFB0870B4F2002186A0 /* GenerateThumbnailForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 61E3BCFA0870B4F2002186A0 /* GenerateThumbnailForURL.m */; };
+ 8D576312048677EA00EA77CD /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB77B6FE84183AC02AAC07 /* main.c */; settings = {ATTRIBUTES = (); }; };
+ 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; };
+ 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; };
+ B63944AB0D18B0430059DAA5 /* LibspectrumSCRExtractor.m in Sources */ = {isa = PBXBuildFile; fileRef = B63944A90D18B0430059DAA5 /* LibspectrumSCRExtractor.m */; };
+ B63944FB0D18C7C30059DAA5 /* tape_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B2E0D162B910036CC54 /* tape_accessors.txt */; };
+ B63944FC0D18C7C30059DAA5 /* snap_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B2C0D162B810036CC54 /* snap_accessors.txt */; };
+ B63945090D18CA120059DAA5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B63945080D18CA120059DAA5 /* Cocoa.framework */; };
+ B6D30AE60D1627ED0036CC54 /* bzip2.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE50D1627ED0036CC54 /* bzip2.c */; };
+ B6D30AEC0D16280E0036CC54 /* creator.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE70D16280E0036CC54 /* creator.c */; };
+ B6D30AED0D16280E0036CC54 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE80D16280E0036CC54 /* crypto.c */; };
+ B6D30AEE0D16280E0036CC54 /* csw.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AE90D16280E0036CC54 /* csw.c */; };
+ B6D30AEF0D16280E0036CC54 /* dck.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AEA0D16280E0036CC54 /* dck.c */; };
+ B6D30AF40D1628470036CC54 /* ide.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AF10D1628470036CC54 /* ide.c */; };
+ B6D30AF60D1628470036CC54 /* libspectrum.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AF30D1628470036CC54 /* libspectrum.c */; };
+ B6D30AF80D16288A0036CC54 /* microdrive.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AF70D16288A0036CC54 /* microdrive.c */; };
+ B6D30AFA0D1628A10036CC54 /* plusd.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AF90D1628A10036CC54 /* plusd.c */; };
+ B6D30AFD0D1628DB0036CC54 /* rzx.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AFB0D1628DB0036CC54 /* rzx.c */; };
+ B6D30AFE0D1628DB0036CC54 /* sna.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AFC0D1628DB0036CC54 /* sna.c */; };
+ B6D30B060D1628F20036CC54 /* snapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30AFF0D1628F20036CC54 /* snapshot.c */; };
+ B6D30B070D1628F20036CC54 /* snp.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B000D1628F20036CC54 /* snp.c */; };
+ B6D30B080D1628F20036CC54 /* sp.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B010D1628F20036CC54 /* sp.c */; };
+ B6D30B090D1628F20036CC54 /* symbol_table.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B020D1628F20036CC54 /* symbol_table.c */; };
+ B6D30B0A0D1628F20036CC54 /* szx.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B030D1628F20036CC54 /* szx.c */; };
+ B6D30B0B0D1628F20036CC54 /* tap.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B040D1628F20036CC54 /* tap.c */; };
+ B6D30B0C0D1628F20036CC54 /* tape.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B050D1628F20036CC54 /* tape.c */; };
+ B6D30B0F0D1629080036CC54 /* tape_block.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B0D0D1629080036CC54 /* tape_block.c */; };
+ B6D30B120D16298C0036CC54 /* timings.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B110D16298C0036CC54 /* timings.c */; };
+ B6D30B1B0D1629C20036CC54 /* tzx_read.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B130D1629C20036CC54 /* tzx_read.c */; };
+ B6D30B1C0D1629C20036CC54 /* tzx_write.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B140D1629C20036CC54 /* tzx_write.c */; };
+ B6D30B1D0D1629C20036CC54 /* warajevo_read.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B150D1629C20036CC54 /* warajevo_read.c */; };
+ B6D30B1E0D1629C20036CC54 /* wav.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B160D1629C20036CC54 /* wav.c */; };
+ B6D30B1F0D1629C20036CC54 /* z80.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B170D1629C20036CC54 /* z80.c */; };
+ B6D30B200D1629C20036CC54 /* z80em.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B180D1629C20036CC54 /* z80em.c */; };
+ B6D30B210D1629C20036CC54 /* zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B190D1629C20036CC54 /* zlib.c */; };
+ B6D30B220D1629C20036CC54 /* zxs.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B1A0D1629C20036CC54 /* zxs.c */; };
+ B6D30B270D162A130036CC54 /* ghash.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B250D162A130036CC54 /* ghash.c */; };
+ B6D30B280D162A130036CC54 /* gslist.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B260D162A130036CC54 /* gslist.c */; };
+ B6D30B410D16533C0036CC54 /* AttributeBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B370D16533C0036CC54 /* AttributeBlock.m */; };
+ B6D30B430D16533C0036CC54 /* AttributeBlockIterator.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B390D16533C0036CC54 /* AttributeBlockIterator.m */; };
+ B6D30B450D16533C0036CC54 /* AttributeBlockTimex.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B3B0D16533C0036CC54 /* AttributeBlockTimex.m */; };
+ B6D30B470D16533C0036CC54 /* AttributeBlockTimexHiRes.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B3D0D16533C0036CC54 /* AttributeBlockTimexHiRes.m */; };
+ B6D30B480D16533C0036CC54 /* AttributeManager.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B3E0D16533C0036CC54 /* AttributeManager.c */; };
+ B6D30B4C0D1653510036CC54 /* ColourMacros.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B4A0D1653510036CC54 /* ColourMacros.c */; };
+ B6D30B510D1653730036CC54 /* JWSpectrumScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D30B4F0D1653730036CC54 /* JWSpectrumScreen.m */; };
+ C86B05270671AA6E00DD9006 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C86B05260671AA6E00DD9006 /* CoreServices.framework */; };
+ F28CFBFD0A3EC0AF000ABFF5 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F28CFBFC0A3EC0AF000ABFF5 /* ApplicationServices.framework */; };
+ F28CFC030A3EC0C6000ABFF5 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F28CFC020A3EC0C6000ABFF5 /* QuickLook.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildRule section */
+ B6D30B300D162CCB0036CC54 /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.proxy.script;
+ filePatterns = "*ape_accessors.txt";
+ fileType = pattern.proxy;
+ isEditable = 1;
+ outputFiles = (
+ "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).c",
+ "$(DERIVED_FILE_DIR)/tape_set.c",
+ );
+ script = "perl ${SRCROOT}/libspectrum/tape_accessors.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.c\nperl ${SRCROOT}/libspectrum/tape_set.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/tape_set.c";
+ };
+ B6D30B310D162CCB0036CC54 /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.proxy.script;
+ filePatterns = "*nap_accessors.txt";
+ fileType = pattern.proxy;
+ isEditable = 1;
+ outputFiles = (
+ "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).c",
+ );
+ script = "perl ${SRCROOT}/libspectrum/accessor.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.c";
+ };
+ B6D30B320D162CCB0036CC54 /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.proxy.script;
+ filePatterns = "*ibspectrum.h.in";
+ fileType = pattern.proxy;
+ isEditable = 1;
+ outputFiles = (
+ "${SRCROOT}/libspectrum.h",
+ );
+ script = "perl -p ${SRCROOT}/generate.pl ${INPUT_FILE_PATH} > ${SRCROOT}/libspectrum.h";
+ };
+/* End PBXBuildRule section */
+
+/* Begin PBXFileReference section */
+ 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 08FB77B6FE84183AC02AAC07 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
+ 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ 2C05A19B06CAA52B00D84F6F /* GeneratePreviewForURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratePreviewForURL.m; sourceTree = "<group>"; };
+ 61E3BCFA0870B4F2002186A0 /* GenerateThumbnailForURL.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GenerateThumbnailForURL.m; sourceTree = "<group>"; };
+ 8D576316048677EA00EA77CD /* FuseGenerator.qlgenerator */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FuseGenerator.qlgenerator; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+ B63944A80D18B0430059DAA5 /* LibspectrumSCRExtractor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibspectrumSCRExtractor.h; sourceTree = "<group>"; };
+ B63944A90D18B0430059DAA5 /* LibspectrumSCRExtractor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibspectrumSCRExtractor.m; sourceTree = "<group>"; };
+ B63944CB0D18C1CD0059DAA5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = SOURCE_ROOT; };
+ B63945080D18CA120059DAA5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ B6D30AE30D1627C90036CC54 /* libspectrum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libspectrum.h; path = ../libspectrum.h; sourceTree = "<group>"; };
+ B6D30AE50D1627ED0036CC54 /* bzip2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bzip2.c; sourceTree = "<group>"; };
+ B6D30AE70D16280E0036CC54 /* creator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = creator.c; sourceTree = "<group>"; };
+ B6D30AE80D16280E0036CC54 /* crypto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = crypto.c; sourceTree = "<group>"; };
+ B6D30AE90D16280E0036CC54 /* csw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csw.c; sourceTree = "<group>"; };
+ B6D30AEA0D16280E0036CC54 /* dck.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dck.c; sourceTree = "<group>"; };
+ B6D30AF10D1628470036CC54 /* ide.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ide.c; sourceTree = "<group>"; };
+ B6D30AF20D1628470036CC54 /* internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internals.h; sourceTree = "<group>"; };
+ B6D30AF30D1628470036CC54 /* libspectrum.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = libspectrum.c; sourceTree = "<group>"; };
+ B6D30AF70D16288A0036CC54 /* microdrive.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = microdrive.c; sourceTree = "<group>"; };
+ B6D30AF90D1628A10036CC54 /* plusd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = plusd.c; sourceTree = "<group>"; };
+ B6D30AFB0D1628DB0036CC54 /* rzx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rzx.c; sourceTree = "<group>"; };
+ B6D30AFC0D1628DB0036CC54 /* sna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sna.c; sourceTree = "<group>"; };
+ B6D30AFF0D1628F20036CC54 /* snapshot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = snapshot.c; sourceTree = "<group>"; };
+ B6D30B000D1628F20036CC54 /* snp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = snp.c; sourceTree = "<group>"; };
+ B6D30B010D1628F20036CC54 /* sp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sp.c; sourceTree = "<group>"; };
+ B6D30B020D1628F20036CC54 /* symbol_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = symbol_table.c; sourceTree = "<group>"; };
+ B6D30B030D1628F20036CC54 /* szx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = szx.c; sourceTree = "<group>"; };
+ B6D30B040D1628F20036CC54 /* tap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tap.c; sourceTree = "<group>"; };
+ B6D30B050D1628F20036CC54 /* tape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tape.c; sourceTree = "<group>"; };
+ B6D30B0D0D1629080036CC54 /* tape_block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tape_block.c; sourceTree = "<group>"; };
+ B6D30B0E0D1629080036CC54 /* tape_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tape_block.h; sourceTree = "<group>"; };
+ B6D30B110D16298C0036CC54 /* timings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timings.c; sourceTree = "<group>"; };
+ B6D30B130D1629C20036CC54 /* tzx_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tzx_read.c; sourceTree = "<group>"; };
+ B6D30B140D1629C20036CC54 /* tzx_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tzx_write.c; sourceTree = "<group>"; };
+ B6D30B150D1629C20036CC54 /* warajevo_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = warajevo_read.c; sourceTree = "<group>"; };
+ B6D30B160D1629C20036CC54 /* wav.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav.c; sourceTree = "<group>"; };
+ B6D30B170D1629C20036CC54 /* z80.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = z80.c; sourceTree = "<group>"; };
+ B6D30B180D1629C20036CC54 /* z80em.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = z80em.c; sourceTree = "<group>"; };
+ B6D30B190D1629C20036CC54 /* zlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zlib.c; sourceTree = "<group>"; };
+ B6D30B1A0D1629C20036CC54 /* zxs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zxs.c; sourceTree = "<group>"; };
+ B6D30B250D162A130036CC54 /* ghash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ghash.c; sourceTree = "<group>"; };
+ B6D30B260D162A130036CC54 /* gslist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gslist.c; sourceTree = "<group>"; };
+ B6D30B2A0D162B720036CC54 /* libspectrum.h.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = libspectrum.h.in; sourceTree = "<group>"; };
+ B6D30B2C0D162B810036CC54 /* snap_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = snap_accessors.txt; sourceTree = "<group>"; };
+ B6D30B2E0D162B910036CC54 /* tape_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tape_accessors.txt; sourceTree = "<group>"; };
+ B6D30B360D16533C0036CC54 /* AttributeBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttributeBlock.h; path = JWSpectrumScreen/AttributeBlock.h; sourceTree = "<group>"; };
+ B6D30B370D16533C0036CC54 /* AttributeBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AttributeBlock.m; path = JWSpectrumScreen/AttributeBlock.m; sourceTree = "<group>"; };
+ B6D30B380D16533C0036CC54 /* AttributeBlockIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttributeBlockIterator.h; path = JWSpectrumScreen/AttributeBlockIterator.h; sourceTree = "<group>"; };
+ B6D30B390D16533C0036CC54 /* AttributeBlockIterator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AttributeBlockIterator.m; path = JWSpectrumScreen/AttributeBlockIterator.m; sourceTree = "<group>"; };
+ B6D30B3A0D16533C0036CC54 /* AttributeBlockTimex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttributeBlockTimex.h; path = JWSpectrumScreen/AttributeBlockTimex.h; sourceTree = "<group>"; };
+ B6D30B3B0D16533C0036CC54 /* AttributeBlockTimex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AttributeBlockTimex.m; path = JWSpectrumScreen/AttributeBlockTimex.m; sourceTree = "<group>"; };
+ B6D30B3C0D16533C0036CC54 /* AttributeBlockTimexHiRes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttributeBlockTimexHiRes.h; path = JWSpectrumScreen/AttributeBlockTimexHiRes.h; sourceTree = "<group>"; };
+ B6D30B3D0D16533C0036CC54 /* AttributeBlockTimexHiRes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AttributeBlockTimexHiRes.m; path = JWSpectrumScreen/AttributeBlockTimexHiRes.m; sourceTree = "<group>"; };
+ B6D30B3E0D16533C0036CC54 /* AttributeManager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AttributeManager.c; path = JWSpectrumScreen/AttributeManager.c; sourceTree = "<group>"; };
+ B6D30B3F0D16533C0036CC54 /* AttributeManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttributeManager.h; path = JWSpectrumScreen/AttributeManager.h; sourceTree = "<group>"; };
+ B6D30B4A0D1653510036CC54 /* ColourMacros.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ColourMacros.c; path = JWSpectrumScreen/ColourMacros.c; sourceTree = "<group>"; };
+ B6D30B4B0D1653510036CC54 /* ColourMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ColourMacros.h; path = JWSpectrumScreen/ColourMacros.h; sourceTree = "<group>"; };
+ B6D30B4E0D1653730036CC54 /* JWSpectrumScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JWSpectrumScreen.h; path = JWSpectrumScreen/JWSpectrumScreen.h; sourceTree = "<group>"; };
+ B6D30B4F0D1653730036CC54 /* JWSpectrumScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JWSpectrumScreen.m; path = JWSpectrumScreen/JWSpectrumScreen.m; sourceTree = "<group>"; };
+ B6D30B520D1653920036CC54 /* JWSpectrumScreenConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JWSpectrumScreenConstants.h; path = JWSpectrumScreen/JWSpectrumScreenConstants.h; sourceTree = "<group>"; };
+ B6D30B530D1653920036CC54 /* PixelData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PixelData.h; path = JWSpectrumScreen/PixelData.h; sourceTree = "<group>"; };
+ C86B05260671AA6E00DD9006 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+ F28CFBFC0A3EC0AF000ABFF5 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ F28CFC020A3EC0C6000ABFF5 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = /System/Library/Frameworks/QuickLook.framework; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D576313048677EA00EA77CD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */,
+ C86B05270671AA6E00DD9006 /* CoreServices.framework in Frameworks */,
+ F28CFBFD0A3EC0AF000ABFF5 /* ApplicationServices.framework in Frameworks */,
+ F28CFC030A3EC0C6000ABFF5 /* QuickLook.framework in Frameworks */,
+ B63945090D18CA120059DAA5 /* Cocoa.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 089C166AFE841209C02AAC07 /* FuseGenerator */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB77AFFE84173DC02AAC07 /* Source */,
+ 089C167CFE841241C02AAC07 /* Resources */,
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+ 19C28FB6FE9D52B211CA2CBB /* Products */,
+ );
+ name = FuseGenerator;
+ sourceTree = "<group>";
+ };
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ B63945080D18CA120059DAA5 /* Cocoa.framework */,
+ F28CFC020A3EC0C6000ABFF5 /* QuickLook.framework */,
+ F28CFBFC0A3EC0AF000ABFF5 /* ApplicationServices.framework */,
+ C86B05260671AA6E00DD9006 /* CoreServices.framework */,
+ 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 089C167CFE841241C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D576317048677EA00EA77CD /* Info.plist */,
+ 8D5B49A704867FD3000E48DA /* InfoPlist.strings */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77AFFE84173DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ B6D30B350D1653180036CC54 /* JWSpectrumScreen */,
+ B6D30AE20D16278E0036CC54 /* libspectrum */,
+ 61E3BCFA0870B4F2002186A0 /* GenerateThumbnailForURL.m */,
+ 2C05A19B06CAA52B00D84F6F /* GeneratePreviewForURL.m */,
+ 08FB77B6FE84183AC02AAC07 /* main.c */,
+ B63944A80D18B0430059DAA5 /* LibspectrumSCRExtractor.h */,
+ B63944A90D18B0430059DAA5 /* LibspectrumSCRExtractor.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 19C28FB6FE9D52B211CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D576316048677EA00EA77CD /* FuseGenerator.qlgenerator */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ B6D30AE20D16278E0036CC54 /* libspectrum */ = {
+ isa = PBXGroup;
+ children = (
+ B6D30B230D1629DC0036CC54 /* myglib */,
+ B63944CB0D18C1CD0059DAA5 /* config.h */,
+ B6D30B2E0D162B910036CC54 /* tape_accessors.txt */,
+ B6D30B2C0D162B810036CC54 /* snap_accessors.txt */,
+ B6D30B2A0D162B720036CC54 /* libspectrum.h.in */,
+ B6D30AE50D1627ED0036CC54 /* bzip2.c */,
+ B6D30AE70D16280E0036CC54 /* creator.c */,
+ B6D30AE80D16280E0036CC54 /* crypto.c */,
+ B6D30AE90D16280E0036CC54 /* csw.c */,
+ B6D30AEA0D16280E0036CC54 /* dck.c */,
+ B6D30AF10D1628470036CC54 /* ide.c */,
+ B6D30AF20D1628470036CC54 /* internals.h */,
+ B6D30AF30D1628470036CC54 /* libspectrum.c */,
+ B6D30AE30D1627C90036CC54 /* libspectrum.h */,
+ B6D30AF70D16288A0036CC54 /* microdrive.c */,
+ B6D30AF90D1628A10036CC54 /* plusd.c */,
+ B6D30AFB0D1628DB0036CC54 /* rzx.c */,
+ B6D30AFC0D1628DB0036CC54 /* sna.c */,
+ B6D30AFF0D1628F20036CC54 /* snapshot.c */,
+ B6D30B000D1628F20036CC54 /* snp.c */,
+ B6D30B010D1628F20036CC54 /* sp.c */,
+ B6D30B020D1628F20036CC54 /* symbol_table.c */,
+ B6D30B030D1628F20036CC54 /* szx.c */,
+ B6D30B040D1628F20036CC54 /* tap.c */,
+ B6D30B050D1628F20036CC54 /* tape.c */,
+ B6D30B0D0D1629080036CC54 /* tape_block.c */,
+ B6D30B0E0D1629080036CC54 /* tape_block.h */,
+ B6D30B110D16298C0036CC54 /* timings.c */,
+ B6D30B130D1629C20036CC54 /* tzx_read.c */,
+ B6D30B140D1629C20036CC54 /* tzx_write.c */,
+ B6D30B150D1629C20036CC54 /* warajevo_read.c */,
+ B6D30B160D1629C20036CC54 /* wav.c */,
+ B6D30B170D1629C20036CC54 /* z80.c */,
+ B6D30B180D1629C20036CC54 /* z80em.c */,
+ B6D30B190D1629C20036CC54 /* zlib.c */,
+ B6D30B1A0D1629C20036CC54 /* zxs.c */,
+ );
+ path = libspectrum;
+ sourceTree = "<group>";
+ };
+ B6D30B230D1629DC0036CC54 /* myglib */ = {
+ isa = PBXGroup;
+ children = (
+ B6D30B250D162A130036CC54 /* ghash.c */,
+ B6D30B260D162A130036CC54 /* gslist.c */,
+ );
+ path = myglib;
+ sourceTree = "<group>";
+ };
+ B6D30B350D1653180036CC54 /* JWSpectrumScreen */ = {
+ isa = PBXGroup;
+ children = (
+ B6D30B360D16533C0036CC54 /* AttributeBlock.h */,
+ B6D30B370D16533C0036CC54 /* AttributeBlock.m */,
+ B6D30B380D16533C0036CC54 /* AttributeBlockIterator.h */,
+ B6D30B390D16533C0036CC54 /* AttributeBlockIterator.m */,
+ B6D30B3A0D16533C0036CC54 /* AttributeBlockTimex.h */,
+ B6D30B3B0D16533C0036CC54 /* AttributeBlockTimex.m */,
+ B6D30B3C0D16533C0036CC54 /* AttributeBlockTimexHiRes.h */,
+ B6D30B3D0D16533C0036CC54 /* AttributeBlockTimexHiRes.m */,
+ B6D30B3E0D16533C0036CC54 /* AttributeManager.c */,
+ B6D30B3F0D16533C0036CC54 /* AttributeManager.h */,
+ B6D30B4A0D1653510036CC54 /* ColourMacros.c */,
+ B6D30B4B0D1653510036CC54 /* ColourMacros.h */,
+ B6D30B4E0D1653730036CC54 /* JWSpectrumScreen.h */,
+ B6D30B4F0D1653730036CC54 /* JWSpectrumScreen.m */,
+ B6D30B520D1653920036CC54 /* JWSpectrumScreenConstants.h */,
+ B6D30B530D1653920036CC54 /* PixelData.h */,
+ );
+ name = JWSpectrumScreen;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8D57630E048677EA00EA77CD /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 8D57630D048677EA00EA77CD /* FuseGenerator */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 2CA3261E0896AD4900168862 /* Build configuration list for PBXNativeTarget "FuseGenerator" */;
+ buildPhases = (
+ 8D57630E048677EA00EA77CD /* Headers */,
+ 8D57630F048677EA00EA77CD /* Resources */,
+ 8D576311048677EA00EA77CD /* Sources */,
+ 8D576313048677EA00EA77CD /* Frameworks */,
+ 8D576315048677EA00EA77CD /* Rez */,
+ );
+ buildRules = (
+ B6D30B300D162CCB0036CC54 /* PBXBuildRule */,
+ B6D30B310D162CCB0036CC54 /* PBXBuildRule */,
+ B6D30B320D162CCB0036CC54 /* PBXBuildRule */,
+ );
+ dependencies = (
+ );
+ name = FuseGenerator;
+ productInstallPath = /Library/QuickLook;
+ productName = FuseGenerator;
+ productReference = 8D576316048677EA00EA77CD /* FuseGenerator.qlgenerator */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 2CA326220896AD4900168862 /* Build configuration list for PBXProject "FuseGenerator" */;
+ compatibilityVersion = "Xcode 3.0";
+ hasScannedForEncodings = 1;
+ mainGroup = 089C166AFE841209C02AAC07 /* FuseGenerator */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D57630D048677EA00EA77CD /* FuseGenerator */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D57630F048677EA00EA77CD /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 8D576315048677EA00EA77CD /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D576311048677EA00EA77CD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B63944FB0D18C7C30059DAA5 /* tape_accessors.txt in Sources */,
+ B63944FC0D18C7C30059DAA5 /* snap_accessors.txt in Sources */,
+ 8D576312048677EA00EA77CD /* main.c in Sources */,
+ 2C05A19C06CAA52B00D84F6F /* GeneratePreviewForURL.m in Sources */,
+ 61E3BCFB0870B4F2002186A0 /* GenerateThumbnailForURL.m in Sources */,
+ B6D30AE60D1627ED0036CC54 /* bzip2.c in Sources */,
+ B6D30AEC0D16280E0036CC54 /* creator.c in Sources */,
+ B6D30AED0D16280E0036CC54 /* crypto.c in Sources */,
+ B6D30AEE0D16280E0036CC54 /* csw.c in Sources */,
+ B6D30AEF0D16280E0036CC54 /* dck.c in Sources */,
+ B6D30AF40D1628470036CC54 /* ide.c in Sources */,
+ B6D30AF60D1628470036CC54 /* libspectrum.c in Sources */,
+ B6D30AF80D16288A0036CC54 /* microdrive.c in Sources */,
+ B6D30AFA0D1628A10036CC54 /* plusd.c in Sources */,
+ B6D30AFD0D1628DB0036CC54 /* rzx.c in Sources */,
+ B6D30AFE0D1628DB0036CC54 /* sna.c in Sources */,
+ B6D30B060D1628F20036CC54 /* snapshot.c in Sources */,
+ B6D30B070D1628F20036CC54 /* snp.c in Sources */,
+ B6D30B080D1628F20036CC54 /* sp.c in Sources */,
+ B6D30B090D1628F20036CC54 /* symbol_table.c in Sources */,
+ B6D30B0A0D1628F20036CC54 /* szx.c in Sources */,
+ B6D30B0B0D1628F20036CC54 /* tap.c in Sources */,
+ B6D30B0C0D1628F20036CC54 /* tape.c in Sources */,
+ B6D30B0F0D1629080036CC54 /* tape_block.c in Sources */,
+ B6D30B120D16298C0036CC54 /* timings.c in Sources */,
+ B6D30B1B0D1629C20036CC54 /* tzx_read.c in Sources */,
+ B6D30B1C0D1629C20036CC54 /* tzx_write.c in Sources */,
+ B6D30B1D0D1629C20036CC54 /* warajevo_read.c in Sources */,
+ B6D30B1E0D1629C20036CC54 /* wav.c in Sources */,
+ B6D30B1F0D1629C20036CC54 /* z80.c in Sources */,
+ B6D30B200D1629C20036CC54 /* z80em.c in Sources */,
+ B6D30B210D1629C20036CC54 /* zlib.c in Sources */,
+ B6D30B220D1629C20036CC54 /* zxs.c in Sources */,
+ B6D30B270D162A130036CC54 /* ghash.c in Sources */,
+ B6D30B280D162A130036CC54 /* gslist.c in Sources */,
+ B6D30B410D16533C0036CC54 /* AttributeBlock.m in Sources */,
+ B6D30B430D16533C0036CC54 /* AttributeBlockIterator.m in Sources */,
+ B6D30B450D16533C0036CC54 /* AttributeBlockTimex.m in Sources */,
+ B6D30B470D16533C0036CC54 /* AttributeBlockTimexHiRes.m in Sources */,
+ B6D30B480D16533C0036CC54 /* AttributeManager.c in Sources */,
+ B6D30B4C0D1653510036CC54 /* ColourMacros.c in Sources */,
+ B6D30B510D1653730036CC54 /* JWSpectrumScreen.m in Sources */,
+ B63944AB0D18B0430059DAA5 /* LibspectrumSCRExtractor.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 089C167EFE841241C02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 2CA3261F0896AD4900168862 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = /Library/QuickLook;
+ OTHER_LDFLAGS = (
+ "-lbz2",
+ "-lz",
+ );
+ PRODUCT_NAME = FuseGenerator;
+ VALID_ARCHS = "i386 ppc";
+ WRAPPER_EXTENSION = qlgenerator;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 2CA326200896AD4900168862 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VALUE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = /Library/QuickLook;
+ OTHER_LDFLAGS = (
+ "-lbz2",
+ "-lz",
+ );
+ PRODUCT_NAME = FuseGenerator;
+ VALID_ARCHS = "i386 ppc";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ WRAPPER_EXTENSION = qlgenerator;
+ };
+ name = Release;
+ };
+ 2CA326230896AD4900168862 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ DEAD_CODE_STRIPPING = YES;
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+ };
+ name = Debug;
+ };
+ 2CA326240896AD4900168862 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ DEAD_CODE_STRIPPING = YES;
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 2CA3261E0896AD4900168862 /* Build configuration list for PBXNativeTarget "FuseGenerator" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2CA3261F0896AD4900168862 /* Debug */,
+ 2CA326200896AD4900168862 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 2CA326220896AD4900168862 /* Build configuration list for PBXProject "FuseGenerator" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2CA326230896AD4900168862 /* Debug */,
+ 2CA326240896AD4900168862 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
Added: trunk/FuseGenerator/GeneratePreviewForURL.m
===================================================================
--- trunk/FuseGenerator/GeneratePreviewForURL.m (rev 0)
+++ trunk/FuseGenerator/GeneratePreviewForURL.m 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,82 @@
+/* GeneratePreviewForURL.m: Extract preview from libspectrum-supported Spectrum files
+ Copyright (c) 2005 Fredrick Meunier
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: fr...@sp...
+
+*/
+
+#include <CoreFoundation/CoreFoundation.h>
+#include <CoreServices/CoreServices.h>
+#include <QuickLook/QuickLook.h>
+
+#import "JWSpectrumScreen/JWSpectrumScreen.h"
+#import "LibspectrumSCRExtractor.h"
+
+/* -----------------------------------------------------------------------------
+ Generate a preview for file
+
+ This function's job is to create preview for designated file
+ ----------------------------------------------------------------------------- */
+
+OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options)
+{
+ NSAutoreleasePool *pool;
+ LibspectrumSCRExtractor *speccyFile;
+
+ /* Don't assume that there is an autorelease pool around the calling of this function. */
+ pool = [[NSAutoreleasePool alloc] init];
+
+ speccyFile = [[[LibspectrumSCRExtractor alloc] initWithContentsOfURL:(NSURL*)url] autorelease];
+
+ if( [speccyFile scrData] && [speccyFile class] == LIBSPECTRUM_CLASS_SCREENSHOT ) {
+ JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease];
+ NSBitmapImageRep* imageRep = [[screen imageRep] retain];
+ NSSize canvasSize = [screen canvasSize];
+
+ CGContextRef cgContext = QLPreviewRequestCreateContext(preview, *(CGSize *)&canvasSize, false, NULL);
+ if(cgContext) {
+ NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES];
+ if(context) {
+ [NSGraphicsContext saveGraphicsState];
+ [NSGraphicsContext setCurrentContext:context];
+
+ // Now we're ready to draw using Cocoa.
+ NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease];
+ [image addRepresentation:imageRep];
+ NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height);
+ [image drawAtPoint:NSMakePoint(0.0, 0.0)
+ fromRect:imageRect
+ operation:NSCompositeSourceOver
+ fraction:1.0];
+ [NSGraphicsContext restoreGraphicsState];
+ }
+ QLPreviewRequestFlushContext(preview, cgContext);
+ CFRelease(cgContext);
+ }
+ }
+
+ [pool release];
+
+ return noErr;
+}
+
+void CancelPreviewGeneration(void* thisInterface, QLPreviewRequestRef preview)
+{
+ // implement only if supported
+}
Added: trunk/FuseGenerator/GenerateThumbnailForURL.m
===================================================================
--- trunk/FuseGenerator/GenerateThumbnailForURL.m (rev 0)
+++ trunk/FuseGenerator/GenerateThumbnailForURL.m 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,82 @@
+/* GenerateThumbnailForURL.m: Extract thumbnail from libspectrum-supported Spectrum files
+ Copyright (c) 2005 Fredrick Meunier
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: fr...@sp...
+
+*/
+
+#include <CoreFoundation/CoreFoundation.h>
+#include <CoreServices/CoreServices.h>
+#include <QuickLook/QuickLook.h>
+
+#import "JWSpectrumScreen/JWSpectrumScreen.h"
+#import "LibspectrumSCRExtractor.h"
+
+/* -----------------------------------------------------------------------------
+ Generate a thumbnail for file
+
+ This function's job is to create thumbnail for designated file as fast as possible
+ ----------------------------------------------------------------------------- */
+
+OSStatus GenerateThumbnailForURL(void *thisInterface, QLThumbnailRequestRef thumbnail, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options, CGSize maxSize)
+{
+ NSAutoreleasePool *pool;
+ LibspectrumSCRExtractor *speccyFile;
+
+ /* Don't assume that there is an autorelease pool around the calling of this function. */
+ pool = [[NSAutoreleasePool alloc] init];
+
+ speccyFile = [[[LibspectrumSCRExtractor alloc] initWithContentsOfURL:(NSURL*)url] autorelease];
+
+ if( [speccyFile scrData] ) {
+ JWSpectrumScreen* screen = [[[JWSpectrumScreen alloc] initFromData:[speccyFile scrData]] autorelease];
+ NSBitmapImageRep* imageRep = [[screen imageRep] retain];
+ NSSize canvasSize = [screen canvasSize];
+
+ CGContextRef cgContext = QLThumbnailRequestCreateContext(thumbnail, *(CGSize *)&canvasSize, false, NULL);
+ if(cgContext) {
+ NSGraphicsContext* context = [NSGraphicsContext graphicsContextWithGraphicsPort:(void*)cgContext flipped:YES];
+ if(context) {
+ [NSGraphicsContext saveGraphicsState];
+ [NSGraphicsContext setCurrentContext:context];
+
+ // Now we're ready to draw using Cocoa.
+ NSImage* image = [[[NSImage alloc] initWithSize:canvasSize] autorelease];
+ [image addRepresentation:imageRep];
+ NSRect imageRect = NSMakeRect(0.0, 0.0, canvasSize.width, canvasSize.height);
+ [image drawAtPoint:NSMakePoint(0.0, 0.0)
+ fromRect:imageRect
+ operation:NSCompositeSourceOver
+ fraction:1.0];
+ [NSGraphicsContext restoreGraphicsState];
+ }
+ QLThumbnailRequestFlushContext(thumbnail, cgContext);
+ CFRelease(cgContext);
+ }
+ }
+
+ [pool release];
+
+ return noErr;
+}
+
+void CancelThumbnailGeneration(void* thisInterface, QLThumbnailRequestRef thumbnail)
+{
+ // implement only if supported
+}
Added: trunk/FuseGenerator/Info.plist
===================================================================
--- trunk/FuseGenerator/Info.plist (rev 0)
+++ trunk/FuseGenerator/Info.plist 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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>
+ <string>English</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeRole</key>
+ <string>QLGenerator</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>net.sourceforge.projects.fuse-emulator.Snapshot</string>
+ <string>net.sourceforge.projects.fuse-emulator.Tape</string>
+ <string>net.sourceforge.projects.fuse-emulator.MassStorage</string>
+ <string>net.sourceforge.projects.fuse-emulator.Cartridge</string>
+ <string>net.sourceforge.projects.fuse-emulator.dck</string>
+ <string>net.sourceforge.projects.fuse-emulator.csw</string>
+ <string>net.sourceforge.projects.fuse-emulator.hdf</string>
+ <string>net.sourceforge.projects.fuse-emulator.dsk</string>
+ <string>net.sourceforge.projects.fuse-emulator.mgt</string>
+ <string>net.sourceforge.projects.fuse-emulator.rzx</string>
+ <string>net.sourceforge.projects.fuse-emulator.scl</string>
+ <string>net.sourceforge.projects.fuse-emulator.scr</string>
+ <string>net.sourceforge.projects.fuse-emulator.slt</string>
+ <string>net.sourceforge.projects.fuse-emulator.sna</string>
+ <string>net.sourceforge.projects.fuse-emulator.sp</string>
+ <string>net.sourceforge.projects.fuse-emulator.szx</string>
+ <string>net.sourceforge.projects.fuse-emulator.snp</string>
+ <string>net.sourceforge.projects.fuse-emulator.tap</string>
+ <string>net.sourceforge.projects.fuse-emulator.trd</string>
+ <string>net.sourceforge.projects.fuse-emulator.tzx</string>
+ <string>net.sourceforge.projects.fuse-emulator.z80</string>
+ <string>net.sourceforge.projects.fuse-emulator.zxs</string>
+ </array>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>net.sourceforge.projects.fuse-emulator.quicklookgenerator</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CFPlugInDynamicRegisterFunction</key>
+ <string></string>
+ <key>CFPlugInDynamicRegistration</key>
+ <string>NO</string>
+ <key>CFPlugInFactories</key>
+ <dict>
+ <key>4FABDBA6-8BDD-44BF-A80C-C4F483AA0D6B</key>
+ <string>QuickLookGeneratorPluginFactory</string>
+ </dict>
+ <key>CFPlugInTypes</key>
+ <dict>
+ <key>5E2D9680-5022-40FA-B806-43349622E5B9</key>
+ <array>
+ <string>4FABDBA6-8BDD-44BF-A80C-C4F483AA0D6B</string>
+ </array>
+ </dict>
+ <key>CFPlugInUnloadFunction</key>
+ <string></string>
+ <key>QLNeedsToBeRunInMainThread</key>
+ <false/>
+ <key>QLPreviewHeight</key>
+ <real>600</real>
+ <key>QLPreviewWidth</key>
+ <real>800</real>
+ <key>QLSupportsConcurrentRequests</key>
+ <false/>
+ <key>QLThumbnailMinimumSize</key>
+ <real>17</real>
+</dict>
+</plist>
Property changes on: trunk/FuseGenerator/JWSpectrumScreen
___________________________________________________________________
Name: svn:ignore
+ build
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.h
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.h (rev 0)
+++ trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.h 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,52 @@
+//
+// AttributeBlock.h
+// Mac2Spec
+//
+// Created by James on 20/8/2006.
+// Copyright 2006 James Weatherley. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "PixelData.h"
+
+@interface AttributeBlock : NSObject {
+
+ int ink;
+ int paper;
+ int inkCount;
+ int paperCount;
+
+ int index;
+ int height;
+ int width;
+
+ int bitmapOffset;
+ int attributeOffset;
+
+ int attributeCount;
+ int attributeRow;
+ int attributeCol;
+ const unsigned char* attributeBase;
+
+ unsigned char attributeByte;
+ unsigned char* rowBitmaps;
+
+ PixelData pixelData;
+
+ NSBitmapImageRep* macBitmap;
+}
+
+-(id)initWithBitmap:(NSBitmapImageRep*)bitmap attributeHeight:(int)height attributeWidth:(int)width index:(int)index;
+-(BOOL)setAttributeData;
+-(void)setAttributeRowAndColumn;
+-(void)setOffsets;
+-(void)normalizePaperAndInk;
+-(void)determineBitmap;
+-(void)pixelData;
+
+-(int)index;
+
+-(void)writeScreenOne:(unsigned char*)screenBase;
+-(void)writeScreenTwo:(unsigned char*)attrBase;
+
+@end
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.m
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.m (rev 0)
+++ trunk/FuseGenerator/JWSpectrumScreen/AttributeBlock.m 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,209 @@
+//
+// AttributeBlock.m
+// Mac2Spec
+//
+// Created by James on 20/8/2006.
+// Copyright 2006 James Weatherley. All rights reserved.
+//
+
+#import "AttributeBlock.h"
+#import "AttributeManager.h"
+
+@implementation AttributeBlock
+
+-(id)initWithBitmap:(NSBitmapImageRep*)bitmap attributeHeight:(int)h attributeWidth:(int)w index:(int)idx
+{
+ if((self = [super init])) {
+ macBitmap = bitmap;
+ [macBitmap retain];
+
+ index = idx;
+ height = h;
+ width = w;
+
+ // Allocate width * height bytes of strorage - divide width by eight as width is in bits.
+ rowBitmaps = malloc((width / 8) * height * sizeof(unsigned char));
+ if(![self setAttributeData]) {
+ [self release];
+ self = 0;
+ }
+ }
+ return self;
+}
+
+-(void)dealloc
+{
+ [macBitmap release];
+ free(rowBitmaps);
+ [super dealloc];
+}
+
+-(BOOL)setAttributeData
+{
+ assert(index >=0);
+
+ BOOL success = FALSE;
+ [self setAttributeRowAndColumn];
+
+ if(index < attributeCount) {
+
+ [self pixelData];
+
+ attributeBase = attribute([macBitmap bitmapData], &pixelData, attributeCol * width, attributeRow * height);
+ [self determineBitmap];
+
+ // Use the commonest colour to determine if bright should be used.
+ int bright = 0;
+ if(paperCount > inkCount) {
+ bright = !!(paper & 0x00808080);
+ } else {
+ bright = !!(ink & 0x00808080);
+ }
+
+ // Convert paper and ink to three bit values.
+ paper = ((paper & 0x00400000) >> 21) |
+ ((paper & 0x00004000) >> 12) |
+ ((paper & 0x00000040) >> 6);
+
+ ink = ((ink & 0x00400000) >> 21) |
+ ((ink & 0x00004000) >> 12) |
+ ((ink & 0x00000040) >> 6);
+
+ assert(ink < 8);
+ assert(paper < 8);
+
+ [self normalizePaperAndInk];
+
+ // Build and write the attribute byte.
+ attributeByte = 0;
+ attributeByte |= paper << 3;
+ attributeByte |= ink;
+ attributeByte |= bright << 6;
+
+ [self setOffsets];
+ success = TRUE;
+ }
+
+ return success;
+}
+
+-(void)pixelData
+{
+ pixelData.bytesPerRow = [macBitmap bytesPerRow];
+ pixelData.samplesPerPixel = [macBitmap samplesPerPixel];
+ pixelData.attrCount = attributeCount;
+ pixelData.attrWidth = width;
+}
+
+-(void)setAttributeRowAndColumn
+{
+ unsigned int rows = [macBitmap bytesPerPlane] / [macBitmap bytesPerRow] / height;
+ unsigned int cols = [macBitmap bytesPerRow] / [macBitmap bitsPerPixel];
+ attributeCount = rows * cols;
+ attributeRow = index / cols;
+ attributeCol = index % cols;
+}
+
+-(void)determineBitmap
+{
+ paper = pixelRGBFromBlock(attributeBase, &pixelData, 0, 0);
+
+ // Scan the attribute block - create a bitmap for the row and determine paper and ink.
+ // It is assumed that the attribute block only contains two colours.
+ int x, y;
+ inkCount = 0;
+ paperCount = 0;
+ unsigned char* rowBitmap = malloc(width / 8 * sizeof(unsigned char));
+
+ for(y = 0; y < height; ++y) {
+ memset(rowBitmap, 0, sizeof(rowBitmap));
+ for(x = 0; x < width; ++x) {
+ int colour = pixelRGBFromBlock(attributeBase, &pixelData, x, y);
+ if(colour != paper) {
+ ink = colour;
+ ++inkCount;
+ // Set ink bit in data
+ *rowBitmap |= 1 << (width - 1 - x);
+ } else {
+ ++paperCount;
+ }
+ }
+ // Store the attribute block row bitmap.
+ rowBitmaps[y] = *rowBitmap;
+ }
+ assert(inkCount + paperCount == width * height);
+ free(rowBitmap);
+}
+
+-(void)normalizePaperAndInk
+{
+ if(paper < ink) {
+ int temp = paper;
+ paper = ink;
+ ink = temp;
+
+ int i;
+ for(i = 0; i < height * width / 8; ++i) {
+ rowBitmaps[i] = ~rowBitmaps[i];
+ }
+ }
+}
+
+-(void)setOffsets
+{
+ int attributeRows = attributeCount / 0x20;
+ int screenThird = 3 * attributeRow / attributeRows;
+ int blockRow = attributeRow * height / 8 % 8;
+ int blockLine = attributeRow * height % 8;
+
+ bitmapOffset = 0x800 * screenThird;
+ bitmapOffset += 0x20 * blockRow;
+ bitmapOffset += 0x100 * blockLine;
+ bitmapOffset += attributeCol;
+
+ attributeOffset = index;
+}
+
+-(void)writeScreenOne:(unsigned char*)screenBase
+{
+ int i;
+ for(i = 0; i < height; ++i) {
+ *(screenBase + bitmapOffset + (i * 0x100)) = rowBitmaps[i];
+ }
+}
+
+-(void)writeScreenTwo:(unsigned char*)attrBase
+{
+ *(attrBase + attributeOffset) = attributeByte;
+}
+
+-(int)index
+{
+ return index;
+}
+
+-(NSString*)description
+{
+ NSString* string = @"----------------\n";
+ NSString* numbers = [NSString stringWithFormat:@"ink:%d paper:%d attr:%x\n", ink, paper, attributeByte];
+ string = [string stringByAppendingString:numbers];
+
+ int i, j;
+ for(i = 0; i < height; ++i) {
+ NSString* line = @"";
+ unsigned char mask = 0x80;
+ for(j = 0; j < width; ++j) {
+ if(rowBitmaps[i] & mask) {
+ line = [line stringByAppendingString:@"*"];
+ } else {
+ line = [line stringByAppendingString:@"."];
+ }
+ mask >>= 1;
+ }
+ line = [NSString stringWithFormat:@"%@ : %x\n", line, rowBitmaps[i]];
+ string = [string stringByAppendingString:line];
+ }
+ return string;
+}
+
+@end
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.h
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.h (rev 0)
+++ trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.h 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,34 @@
+//
+// AttributeBlockIterator.h
+// Mac2Spec
+//
+// Created by James on 20/8/2006.
+// Copyright 2006 James Weatherley. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "JWSpectrumScreenConstants.h"
+
+@class AttributeBlock;
+
+
+@interface AttributeBlockIterator : NSObject {
+
+ int index;
+ int mode;
+ int attributeHeight;
+ int attributeWidth;
+
+ TimexHiResMode hiResMode;
+
+ NSBitmapImageRep* bitmap;
+}
+
+- (id)initWithBitmap:(NSBitmapImageRep*)image mode:(int)mode;
+
+- (void)reset;
+- (AttributeBlock*)nextBlock;
+
+-(void)setHiResMode:(TimexHiResMode)mode;
+
+@end
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.m
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.m (rev 0)
+++ trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockIterator.m 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,91 @@
+//
+// AttributeBlockIterator.m
+// Mac2Spec
+//
+// Created by James on 20/8/2006.
+// Copyright 2006 JamesWeatherley. All rights reserved.
+//
+#import "AttributeManager.h"
+#import "AttributeBlockIterator.h"
+#import "AttributeBlock.h"
+#import "AttributeBlockTimex.h"
+#import "AttributeBlockTimexHiRes.h"
+
+
+@implementation AttributeBlockIterator
+
+-(id)initWithBitmap:(NSBitmapImageRep*)image mode:(int)theMode
+{
+ if((self = [super init])) {
+ bitmap = image;
+ [bitmap retain];
+
+ mode = theMode;
+ if(mode == ATTRIBUTE_ZX) {
+ attributeHeight = ATTRIBUTE_HEIGHT_SINCLAIR;
+ attributeWidth = ATTRIBUTE_WIDTH;
+ } else if(mode == ATTRIBUTE_TIMEX_HI_COL) {
+ attributeHeight = ATTRIBUTE_HEIGHT_TIMEX_HI_COL;
+ attributeWidth = ATTRIBUTE_WIDTH;
+ } else if(mode == ATTRIBUTE_TIMEX_HI_RES) {
+ attributeHeight = ATTRIBUTE_HEIGHT_TIMEX_HI_RES;
+ attributeWidth = ATTRIBUTE_WIDTH_TIMEX_HI_RES;
+ } else {
+ assert(0);
+ }
+
+ [self reset];
+ }
+ return self;
+}
+
+-(void)dealloc
+{
+ [bitmap release];
+ [super dealloc];
+}
+
+-(void)reset
+{
+ index = 0;
+}
+
+-(void)setHiResMode:(TimexHiResMode)hiMode
+{
+ hiResMode = hiMode;
+}
+
+-(AttributeBlock*)nextBlock
+{
+ AttributeBlock* block = nil;
+
+ if(mode == ATTRIBUTE_ZX) {
+ block = [[AttributeBlock alloc] initWithBitmap:bitmap
+ attributeHeight:attributeHeight
+ attributeWidth:attributeWidth
+ index:index];
+ } else if(mode == ATTRIBUTE_TIMEX_HI_COL) {
+ block = [[AttributeBlockTimex alloc] initWithBitmap:bitmap
+ attributeHeight:attributeHeight
+ attributeWidth:attributeWidth
+ index:index];
+ } else if(mode == ATTRIBUTE_TIMEX_HI_RES) {
+ block = [[AttributeBlockTimexHiRes alloc] initWithBitmap:bitmap
+ attributeHeight:attributeHeight
+ attributeWidth:attributeWidth
+ index:index
+ mode:hiResMode];
+ }
+
+ if(!block) {
+ index = 0;
+ } else {
+ ++index;
+ }
+
+ [block autorelease];
+ return block;
+}
+
+
+@end
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.h
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.h (rev 0)
+++ trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.h 2007-12-21 00:16:49 UTC (rev 466)
@@ -0,0 +1,18 @@
+//
+// AttributeBlockTimex.h
+// Mac2Spec
+//
+// Created by James on 26/8/2006.
+// Copyright 2006 James Weatherley. All rights reserved.
+//
+
+#import "AttributeBlock.h"
+
+
+@interface AttributeBlockTimex : AttributeBlock {
+
+}
+
+-(void)setOffsets;
+
+@end
Added: trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTimex.m
===================================================================
--- trunk/FuseGenerator/JWSpectrumScreen/AttributeBlockTi...
[truncated message content] |
|
From: <fr...@us...> - 2007-12-20 11:04:28
|
Revision: 465
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=465&view=rev
Author: fredm
Date: 2007-12-20 03:04:33 -0800 (Thu, 20 Dec 2007)
Log Message:
-----------
Spotlight importer should be in Contents/Library/Spotlight, not PlugIns
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-11-17 11:17:46 UTC (rev 464)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-12-20 11:04:33 UTC (rev 465)
@@ -371,8 +371,8 @@
B61F46A309121DF100C8096C /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 13;
+ dstPath = Contents/Library/Spotlight;
+ dstSubfolderSpec = 1;
files = (
B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */,
);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-11-17 11:17:42
|
Revision: 464
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=464&view=rev
Author: fredm
Date: 2007-11-17 03:17:46 -0800 (Sat, 17 Nov 2007)
Log Message:
-----------
Add 512x512px icon for Fuse.
Modified Paths:
--------------
trunk/fuse/fusepb/resources/Fuse.icns
Modified: trunk/fuse/fusepb/resources/Fuse.icns
===================================================================
(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-11-17 07:49:11
|
Revision: 463
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=463&view=rev
Author: fredm
Date: 2007-11-16 23:49:12 -0800 (Fri, 16 Nov 2007)
Log Message:
-----------
Add some extra change entries.
Modified Paths:
--------------
trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
===================================================================
--- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2007-11-16 23:51:49 UTC (rev 462)
+++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2007-11-17 07:49:12 UTC (rev 463)
@@ -14,7 +14,7 @@
name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font>
<div class="refsect1" xml:lang="en" lang="en">
<h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
-For Mac OS X 20070705</font></h2>
+For Mac OS X 20070728</font></h2>
<ul>
<li><font face="Lucida Grande,Helvetica,Arial">New
features:</font></li>
@@ -29,7 +29,12 @@
</font></li>
<li><font face="Lucida Grande,Helvetica,Arial">Add +D disk
interface support (Stuart
-Brady).<br>
+Brady).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">New floppy disk
+controller emulation for +D and Beta (aka TR-DOS) disk interface
+emulation (Gergely Szasz and Stuart Brady).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Add Pentagon 512
+and Pentagon 1024 emulation (Q-Master).<br>
</font></li>
<li><font face="Lucida Grande,Helvetica,Arial">Add Hi-Fi beeper
option for improved reproduction of multi-channel beeper tunes (e.g.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|