From 271e604fb74cd6ac7681dddb0bbd0cd1156b29e1 Mon Sep 17 00:00:00 2001 From: uz Date: Mon, 27 Feb 2012 17:58:34 +0000 Subject: [PATCH] Added a module for binary output. git-svn-id: svn://svn.cc65.org/cc65/trunk@5560 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/sp65/bin.c | 80 +++++++++++++++++++++++++++++++++++++++++++ src/sp65/bin.h | 62 +++++++++++++++++++++++++++++++++ src/sp65/make/gcc.mak | 3 +- 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 src/sp65/bin.c create mode 100644 src/sp65/bin.h diff --git a/src/sp65/bin.c b/src/sp65/bin.c new file mode 100644 index 000000000..348e2ca11 --- /dev/null +++ b/src/sp65/bin.c @@ -0,0 +1,80 @@ +/*****************************************************************************/ +/* */ +/* bin.c */ +/* */ +/* Binary file output for the sp65 sprite and bitmap utility */ +/* */ +/* */ +/* */ +/* (C) 2012, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#include +#include +#include + +/* sp65 */ +#include "bin.h" +#include "error.h" + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +void WiteBinFile (const char* Name, const StrBuf* Data) +/* Write the contents of Data to the given file in binary format */ +{ + unsigned Size; + + /* Open the output file */ + FILE* F = fopen (Name, "wb"); + if (F == 0) { + Error ("Cannot open output file `%s': %s", Name, strerror (errno)); + } + + /* Write to the file. We will use fwrite here instead of the fileio + * module, since it's just one call, so the latter doesn't have any + * advantages, and we can output a more readable error message in case of + * problems. + */ + Size = SB_GetLen (Data); + if (fwrite (SB_GetConstBuf (Data), 1, Size, F) != Size) { + Error ("Error writing to output file `%s': %s", Name, strerror (errno)); + } + + /* Close the file */ + if (fclose (F) != 0) { + Error ("Error closing output file `%s': %s", Name, strerror (errno)); + } +} + + + diff --git a/src/sp65/bin.h b/src/sp65/bin.h new file mode 100644 index 000000000..119ab0e3d --- /dev/null +++ b/src/sp65/bin.h @@ -0,0 +1,62 @@ +/*****************************************************************************/ +/* */ +/* bin.h */ +/* */ +/* Binary file output for the sp65 sprite and bitmap utility */ +/* */ +/* */ +/* */ +/* (C) 2012, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#ifndef BIN_H +#define BIN_H + + + +/* common */ +#include "strbuf.h" + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +void WiteBinFile (const char* Name, const StrBuf* Data); +/* Write the contents of Data to the given file in binary format */ + + + +/* End of bin.h */ + +#endif + + + diff --git a/src/sp65/make/gcc.mak b/src/sp65/make/gcc.mak index 9c4a2b50a..045ad28a4 100644 --- a/src/sp65/make/gcc.mak +++ b/src/sp65/make/gcc.mak @@ -22,7 +22,8 @@ LDFLAGS = # ----------------------------------------------------------------------------- # List of all object files -OBJS = bitmap.o \ +OBJS = bin.o \ + bitmap.o \ color.o \ error.o \ fileio.o \