2 Commits
v1.06 ... v1.08

Author SHA1 Message Date
Philip Smart
eb8f2c230b Vendor Zeta library to fix space-in-filename build failures
The upstream Zeta library uses spaces in filenames (e.g., "data model.h",
"character set.h"). The kernel's fixdep tool splits dependency paths on
spaces, causing it to try opening truncated paths like ".../inspection/data"
instead of ".../inspection/data model.h". This broke z80drv builds on the
VPS Jenkins server.

Vendoring the library with underscore-renamed files (as they exist on the
local dev machine) avoids this issue while keeping the same library content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:34:54 +00:00
Philip Smart
3273152b6e Add kernel arch/arm generated headers for out-of-tree module builds
These generated files (asm wrappers, asm-offsets.s, .version) are required
by make M=<dir> modules when building ttymzdrv/z80drv on the VPS where
the kernel hasn't been compiled locally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:21:51 +00:00
337 changed files with 63219 additions and 4 deletions

3
.gitmodules vendored
View File

@@ -1,9 +1,6 @@
[submodule "software/FusionX/src/driver/Z80"]
path = software/FusionX/src/z80drv/Z80
url = https://github.com/redcode/Z80.git
[submodule "software/FusionX/src/driver/Zeta"]
path = software/FusionX/src/z80drv/Zeta
url = https://github.com/redcode/Zeta.git
[submodule "software/FusionX/src/driver/6502"]
path = software/FusionX/src/z80drv/6502
url = https://github.com/redcode/6502.git

View File

@@ -0,0 +1,15 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 8
indent_style = tab
trim_trailing_whitespace = true
[*.{md,rst}]
trim_trailing_whitespace = false
[*.yml]
indent_size = 2
indent_style = space

View File

@@ -0,0 +1,4 @@
github: redcode
ko_fi: redcode
liberapay: redcode
patreon: redcode

View File

@@ -0,0 +1,15 @@
## Description
_Describe your pull request here._
## Legal notice (do not delete)
Thank you for your contribution to the Zeta library.
It is required that contributors assign copyright to the original author so that he retains full ownership of the project. This makes it easier for other entities to use the software because they only have to deal with one copyright holder. It also gives the original author assurance that he will be able to make decisions in the future without gathering and consulting all contributors.
While this may seem odd, many open source maintainers practice this.
By submitting this PR, you agree to the following:
> You hereby assign copyright in this PR's code to the Zeta library and its copyright holder, Manuel Sainz de Baranda y Goñi, to be licensed under the same terms as the rest of the code. You agree to relinquish any and all copyright interest in the software, to the detriment of your heirs and successors.

View File

@@ -0,0 +1,4 @@
.directory
.DS_Store
Thumbs.db
build/

View File

@@ -0,0 +1,4 @@
set noexpandtab
set shiftwidth=8
set tabstop=8
autocmd BufWritePre * %s/\s\+$//e

View File

@@ -0,0 +1,19 @@
/* Zeta API - Z/classes/Any.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Any_HPP
#define Z_classes_Any_HPP
namespace Zeta{struct Any {
};}
#endif // Z_classes_Any_HPP

View File

@@ -0,0 +1,14 @@
/* Zeta API - Z/classes/Empty.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Empty_HPP
#define Z_classes_Empty_HPP
namespace Zeta {struct Empty {};}
#endif // Z_classes_Empty_HPP

View File

@@ -0,0 +1,185 @@
/* Zeta API - Z/classes/Functor.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Functor_HPP
#define Z_classes_Functor_HPP
#include <Z/classes/ObjectMemberFunction.hpp>
#if Z_HAS(ObjectMemberFunction)
# ifdef Z_WITH_OBJECTIVE_C_RUNTIME
# include <Z/classes/ObjectSelector.hpp>
# include <Z/traits/casting.hpp>
# endif
# define Z_HAS_Functor TRUE
namespace Zeta {
template <class f> class Functor;
template <class r, class... p> class Functor<r(p...)> {
private:
typedef r (* Call)(const Functor *, typename Type<p>::to_forwardable...);
typedef void (* Destroy)(Functor *);
Call call;
Destroy destroy;
union { r (* function)(p...);
struct {r (NaT::* function)(p...);
NaT *object;
} object_member_function;
# if Z_HAS(ObjectSelector)
struct {SEL selector;
id object;
} object_selector;
# endif
} target;
struct Callers {
static Z_INLINE Call function() Z_NOTHROW
{
return [](const Functor *functor, typename Type<p>::to_forwardable... arguments) -> r
{return functor->target.function(arguments...);};
}
static Z_INLINE Call object_member_function() Z_NOTHROW
{
return [](const Functor *functor, typename Type<p>::to_forwardable... arguments) -> r
{
return (functor->target.object_member_function.object->*
functor->target.object_member_function.function)
(arguments...);
};
}
# if Z_HAS(ObjectSelector)
static Z_INLINE Call object_selector() Z_NOTHROW
{
return [](const Functor *functor, typename Type<p>::to_forwardable... arguments)
{
return (cast<r (*)(id, SEL, p...)>(ObjectiveC::send<r>()))(
functor->target.object_selector.object,
functor->target.object_selector.selector,
arguments...);
};
}
# endif
};
public:
Z_CT(CPP11) Functor() Z_NOTHROW
: call(Z_NULL), destroy(Z_NULL) {}
# ifdef Z_NULLPTR
Z_CT(CPP11) Functor(NullPtr) Z_NOTHROW
: call(Z_NULL), destroy(Z_NULL) {}
# endif
Z_INLINE Functor(r (* function)(p...)) Z_NOTHROW
: call(Callers::function()), destroy(Z_NULL)
{target.function = function;}
template <class o, class m, class e = typename TypeIf<
(Type<o>::is_void || Type<o>::is_class) &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE Functor(o *object, m function) Z_NOTHROW
: call(Callers::object_member_function()), destroy(Z_NULL)
{
target.object_member_function.function = reinterpret_cast<r (NaT::*)(p...)>(function);
target.object_member_function.object = reinterpret_cast<NaT *>(const_cast<typename Type<o>::to_unqualified *>(object));
}
template <class o, class m, class e = typename TypeIf<
Type<o>::is_class &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE Functor(const o &object, m function) Z_NOTHROW
: call(Callers::object_member_function()), destroy(Z_NULL)
{
target.object_member_function.function = reinterpret_cast<r (NaT::*)(p...)>(function);
target.object_member_function.object = reinterpret_cast<NaT *>(const_cast<typename Type<o>::to_unqualified *>(&object));
}
Z_INLINE Functor(const ObjectMemberFunction<r(p...)> &object_member_function) Z_NOTHROW
: call(Callers::object_member_function()), destroy(Z_NULL)
{
target.object_member_function.function = object_member_function.function;
target.object_member_function.object = object_member_function.object;
}
# if Z_HAS(TypeIsConvertible)
template <class o, class e = typename TypeIf<
Type<o>::is_class &&
TypeIsConvertible<o, r(*)(p...)>::value
>::type>
Z_INLINE Functor(const o &object) Z_NOTHROW
: call(Callers::function()), destroy(Z_NULL)
{target.function = (r(*)(p...))object;} // TODO: cast
# endif
# if Z_HAS(ObjectSelector)
Z_INLINE Functor(id object, SEL selector) Z_NOTHROW
: call(Callers::object_selector()), destroy(Z_NULL)
{
target.object_selector.selector = selector;
target.object_selector.object = object;
}
Z_INLINE Functor(const ObjectSelector<r(p...)> &object_selector) Z_NOTHROW
: call(Callers::object_selector()), destroy(Z_NULL)
{
target.object_selector.selector = object_selector.selector;
target.object_selector.object = object_selector.object;
}
# endif
Z_INLINE ~Functor()
{if (destroy) destroy(this);}
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return call != Z_NULL;}
Z_INLINE r operator ()(typename Type<p>::to_forwardable... arguments) const
{return call(this, arguments...);}
};
}
#endif
#endif // Z_classes_Functor_HPP

View File

@@ -0,0 +1,45 @@
/* Zeta API - Z/classes/InitializerList.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_InitializerList_HPP
#define Z_classes_InitializerList_HPP
#include <Z/inspection/language.h>
#if Z_DIALECT_HAS(CPP11, INITIALIZER_LIST)
# include <Z/constants/pointer.h>
# include <Z/macros/language.hpp>
# include <Z/types/integral.hpp>
# define Z_HAS_InitializerList TRUE
namespace Zeta {template <class t> class InitializerList {
public:
typedef t value_type;
typedef const t& reference;
typedef const t& const_reference;
typedef USize size_type;
typedef const t* iterator;
typedef const t* const_iterator;
private:
const t* _data;
USize _size;
public:
Z_CT(CPP11) InitializerList() Z_NOTHROW
: _data(Z_NULL), _size(0) {}
Z_CT(CPP11) USize size () const Z_NOTHROW {return _size;}
Z_CT(CPP11) const t* begin() const Z_NOTHROW {return _data;}
Z_CT(CPP11) const t* end () const Z_NOTHROW {return _data + _size;}
};}
#endif
#endif // Z_classes_InitializerList_HPP

View File

@@ -0,0 +1,38 @@
/* Zeta API - Z/classes/Iterator.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Iterator_HPP
#define Z_classes_Iterator_HPP
namespace Zeta{template <class t> struct Iterator {
t& data_source;
typename t::size_type index;
Z_CT(CPP11) Iterator(t &data_source_, typename t::size_type index_)
: data_source(data_source_), index(index_) {}
friend Z_CT(CPP11) Boolean operator !=(const Iterator &lhs, const Iterator &rhs) Z_NOTHROW
{return lhs.index != rhs.index;}
Z_CT(CPP11) const typename t::element_type &operator *() const Z_NOTHROW
{return data_source[index];}
Z_INLINE Iterator const &operator ++() Z_NOTHROW
{
index++;
return *this;
}
};}
#endif // Z_classes_Iterator_HPP

View File

@@ -0,0 +1,85 @@
/* Zeta API - Z/classes/MemberFunction.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_MemberFunction_HPP
#define Z_classes_MemberFunction_HPP
#include <Z/inspection/language.h>
#if Z_DIALECT_HAS(CPP98, SFINAE) && \
Z_DIALECT_HAS(CPP11, VARIADIC_TEMPLATE) && \
Z_DIALECT_HAS(CPP11, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
# define Z_HAS_MemberFunction TRUE
# include <Z/constants/pointer.h>
# include <Z/traits/type.hpp>
namespace Zeta {
template <class f> struct MemberFunction;
template <class r, class... p> struct MemberFunction<r(p...)> {
r (NaT::* function)(p...);
Z_INLINE MemberFunction() Z_NOTHROW
Z_DEFAULTED({})
# ifdef Z_NULLPTR
Z_CT(CPP11) MemberFunction(NullPtr) Z_NOTHROW
: function(nullptr) {};
# endif
template <class m, class e = typename TypeIf<
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE MemberFunction(m function) Z_NOTHROW
: function(reinterpret_cast<r (NaT::*)(p...)>(function)) {}
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return function != Z_NULL;}
template <class m, class e = typename TypeIf<
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE operator m() const Z_NOTHROW
{return reinterpret_cast<m>(function);}
template <class m>
Z_INLINE typename TypeIf<
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value,
MemberFunction &>::type
operator =(m rhs) Z_NOTHROW
{
function = reinterpret_cast<r (NaT::*)(p...)>(rhs);
return *this;
}
template <class o>
Z_INLINE r operator ()(o *object, typename Type<p>::to_forwardable... arguments) const
{return (reinterpret_cast<NaT *>(object)->*function)(arguments...);}
template <class o>
Z_INLINE r operator ()(const o &object, typename Type<p>::to_forwardable... arguments) const
{return (const_cast<NaT *>(reinterpret_cast<const NaT *>(&object))->*function)(arguments...);}
};
}
#endif
#endif // Z_classes_MemberFunction_HPP

View File

@@ -0,0 +1,30 @@
/* Zeta API - Z/classes/NaT.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_NaT_HPP
#define Z_classes_NaT_HPP
#include <Z/macros/language.hpp>
namespace Zeta {struct NaT Z_FINAL {
# if Z_DIALECT_HAS(CPP11, DELETED_FUNCTION)
NaT() = delete;
NaT(const NaT &) = delete;
~NaT() = delete;
NaT &operator =(const NaT &) = delete;
# if Z_DIALECT_HAS(CPP11, RVALUE_REFERENCE)
NaT(NaT &&) = delete;
NaT &operator =(NaT &&) = delete;
# endif
# endif
};}
#endif // Z_classes_NaT_HPP

View File

@@ -0,0 +1,148 @@
/* Zeta API - Z/classes/ObjectMemberFunction.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_ObjectMemberFunction_HPP
#define Z_classes_ObjectMemberFunction_HPP
#include <Z/inspection/Z.h>
#include <Z/classes/MemberFunction.hpp>
#if Z_HAS(MemberFunction)
# define Z_HAS_ObjectMemberFunction TRUE
namespace Zeta {
template <class f> struct ObjectMemberFunction;
template <class r, class... p>
struct ObjectMemberFunction<r(p...)> : MemberFunction<r(p...)> {
NaT *object;
Z_INLINE ObjectMemberFunction() Z_NOTHROW
Z_DEFAULTED({})
# if Z_DIALECT_HAS(CPP11, INHERITING_CONSTRUCTORS)
using MemberFunction<r(p...)>::MemberFunction;
# else
template <class m, class e = typename TypeIf<
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE ObjectMemberFunction(m function) Z_NOTHROW
: MemberFunction<r(p...)>(function) {}
# endif
# ifdef Z_NULLPTR
Z_CT(CPP11) ObjectMemberFunction(NullPtr) Z_NOTHROW
: MemberFunction<r(p...)>(nullptr), object(nullptr) {};
# endif
template <class o, class m, class e = typename TypeIf<
(Type<o>::is_void_pointer ||
(Type<o>::is_pointer &&
Type<o>::flow::pointee_type::is_class)) &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE ObjectMemberFunction(o object, m function) Z_NOTHROW
: MemberFunction<r(p...)>(function), object(reinterpret_cast<NaT *>(object)) {}
template <class o, class m, class e = typename TypeIf<
Type<o>::is_class &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value
>::type>
Z_INLINE ObjectMemberFunction(const o &object, m function) Z_NOTHROW
: MemberFunction<r(p...)>(function), object(reinterpret_cast<NaT *>(&object)) {}
template <class o, class e = typename TypeIf<Type<o>::is_class>::type>
Z_INLINE operator o *() const Z_NOTHROW
{return reinterpret_cast<o *>(object);}
template <class o>
Z_INLINE typename TypeIf<Type<o>::is_class, ObjectMemberFunction &>::type
operator =(o *rhs) Z_NOTHROW
{
object = reinterpret_cast<NaT *>(rhs);
return *this;
}
template <class o>
Z_INLINE typename TypeIf<Type<o>::is_class, ObjectMemberFunction &>::type
operator =(const o &rhs) Z_NOTHROW
{
object = reinterpret_cast<NaT *>(&rhs);
return *this;
}
template <class m>
Z_INLINE typename TypeIf<
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value,
ObjectMemberFunction &>::type
operator =(m rhs) Z_NOTHROW
{
this->function = reinterpret_cast<r (NaT::*)(p...)>(rhs);
return *this;
}
Z_INLINE r operator ()(typename Type<p>::to_forwardable... arguments) const
{return (object->*this->function)(arguments...);}
template <class o>
Z_INLINE r operator ()(o *object, typename Type<p>::to_forwardable... arguments) const
{return (reinterpret_cast<NaT *>(object)->*this->function)(arguments...);}
template <class o>
Z_INLINE r operator ()(const o &object, typename Type<p>::to_forwardable... arguments) const
{return (reinterpret_cast<NaT *>(&object)->*this->function)(arguments...);}
template <class o, class m>
Z_INLINE typename TypeIf<
(Type<o>::is_void || Type<o>::is_class) &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value,
ObjectMemberFunction &>::type
set(o *object, m function) Z_NOTHROW
{
this->function = reinterpret_cast<r (NaT::*)(p...)>(function);
this->object = reinterpret_cast<NaT *>(&object);
return *this;
}
template <class o, class m>
Z_INLINE typename TypeIf<
Type<o>::is_class &&
Type<m>::is_member_function_pointer &&
TypeIsSame<typename Type<m>::flow::to_function::end::to_unqualified, r(p...)>::value,
ObjectMemberFunction &>::type
set(const o &object, m function) Z_NOTHROW
{
this->function = reinterpret_cast<r (NaT::*)(p...)>(function);
this->object = const_cast<NaT *>(reinterpret_cast<const NaT *>(&object));
return *this;
}
};
}
#endif
#endif // Z_classes_ObjectMemberFunction_HPP

View File

@@ -0,0 +1,94 @@
/* Zeta API - Z/classes/ObjectSelector.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_ObjectSelector_HPP
#define Z_classes_ObjectSelector_HPP
#include <Z/inspection/Z.h>
#include <Z/classes/Selector.hpp>
#if Z_HAS(Selector)
# define Z_HAS_ObjectSelector TRUE
namespace Zeta {
template <class f> struct ObjectSelector;
template <class r, class... p>
struct ObjectSelector<r(p...)> {
typedef r (* Send )(id, SEL, p...);
typedef r (* SendSuper)(struct objc_super *, SEL, p...);
SEL selector;
id object;
Z_INLINE ObjectSelector() Z_NOTHROW
Z_DEFAULTED({})
Z_INLINE ObjectSelector(id object_, SEL selector_) Z_NOTHROW
: object(object_), selector(selector_) {}
Z_INLINE operator id() const Z_NOTHROW
{return object;}
Z_INLINE operator SEL() const Z_NOTHROW
{return selector;}
Z_INLINE ObjectSelector &operator =(SEL rhs) Z_NOTHROW
{selector = rhs; return *this;}
Z_INLINE ObjectSelector &operator =(id rhs) Z_NOTHROW
{object = rhs; return *this;}
Z_INLINE r operator ()(typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{return (Send(ObjectiveC::send<r>()))(object, selector, arguments...);}
Z_INLINE r operator ()(id object_, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{return (Send(ObjectiveC::send<r>()))(object_, selector, arguments...);}
Z_INLINE r super(typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
struct objc_super object_super {object, class_getSuperclass(object_getClass(object))};
return (SendSuper(objc_msgSendSuper))(&object_super, this->selector, arguments...);
}
Z_INLINE r super(id object, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
struct objc_super object_super {object, class_getSuperclass(object_getClass(object))};
return (SendSuper(objc_msgSendSuper))(&object_super, this->selector, arguments...);
}
Z_INLINE r super(const struct objc_super &object_super, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
return (SendSuper(ObjectiveC::send_super<r>()))
(const_cast<struct objc_super *>(&object_super), selector, arguments...);
}
Z_INLINE ObjectSelector &set(id object, SEL selector) Z_NOTHROW
{
this->selector = selector;
this->object = object;
return *this;
}
};
}
#endif
#endif // Z_classes_ObjectSelector_HPP

View File

@@ -0,0 +1,30 @@
/* Zeta API - Z/classes/OpaqueMemberFunctionPointer.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_OpaqueMemberFunctionPointer_HPP
#define Z_classes_OpaqueMemberFunctionPointer_HPP
#include <Z/classes/NaT.hpp>
namespace Zeta {struct OpaqueMemberFunctionPointer {
void (NaT::* value)();
template <class m>
Z_INLINE OpaqueMemberFunctionPointer(m pointer) Z_NOTHROW
: value(reinterpret_cast<void (NaT::*)()>(pointer)) {}
template <class m>
Z_INLINE operator m() const Z_NOTHROW
{return reinterpret_cast<m>(value);}
};}
#endif // Z_classes_OpaqueMemberFunctionPointer_HPP

View File

@@ -0,0 +1,13 @@
/* Zeta API - Z/classes/Optional.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Optional_HPP
#define Z_classes_Optional_HPP
#endif // Z_classes_Optional_HPP

View File

@@ -0,0 +1,48 @@
/* Zeta API - Z/classes/Pair.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Pair_HPP
#define Z_classes_Pair_HPP
#include <Z/macros/language.hpp>
#include <Z/types/integral.hpp>
namespace Zeta {template <class t1, class t2 = t1> struct Pair {
typedef t1 First;
typedef t2 Second;
t1 first;
t2 second;
Z_INLINE Pair() Z_DEFAULTED({})
Z_CT(CPP11) Pair(
typename Type<t1>::to_forwardable first,
typename Type<t2>::to_forwardable second
) : first(first), second(second) {}
Z_CT(CPP11) Boolean operator ==(const Pair &pair) const
{return first == pair.first && second == pair.second;}
Z_CT(CPP11) Boolean operator !=(const Pair &pair) const
{return first != pair.first || second != pair.second;}
/*Z_INLINE void swap(Pair &pair)
{
Zeta::swap<typename Type<Pair>::to_opaque>(
reinterpret_cast<typename Type<Pair>::to_opaque *>(this),
reinterpret_cast<typename Type<Pair>::to_opaque *>(&pair));
}*/
};}
#endif // Z_classes_Pair_HPP

View File

@@ -0,0 +1,135 @@
/* Zeta API - Z/classes/Range.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Range_HPP
#define Z_classes_Range_HPP
#include <Z/functions/math.hpp>
#if defined(Z_WITH_NS_RANGE) && Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
# import <Foundation/NSRange.h>
#endif
namespace Zeta {template <class t> struct Range {
t index, size;
Z_INLINE Range() Z_NOTHROW
Z_DEFAULTED({})
Z_CT(CPP11) Range(t size_) Z_NOTHROW
: index(0), size(size_) {}
Z_CT(CPP11) Range(t index_, t size_) Z_NOTHROW
: index(index_), size(size_) {}
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return !!size;}
friend Z_CT(CPP11) Boolean operator ==(const Range &lhs, const Range &rhs) Z_NOTHROW
{return lhs.index == rhs.index && lhs.size == rhs.size;}
friend Z_CT(CPP11) Boolean operator !=(const Range &lhs, const Range &rhs) Z_NOTHROW
{return lhs.index != rhs.index || lhs.size != rhs.size;}
friend Z_CT(CPP14) Range operator &(const Range &lhs, const Range &rhs) Z_NOTHROW
{
t index = (lhs.index > rhs.index) ? lhs.index : rhs.index;
t end = minimum<t>(lhs.end(), rhs.end());
return end > index ? Range(index, end - index) : Range(0);
}
friend Z_CT(CPP14) Range operator |(const Range &lhs, const Range &rhs) Z_NOTHROW
{
t index = (lhs.index < rhs.index) ? lhs.index : rhs.index;
t lhs_end = lhs.end();
t rhs_end = rhs.end();
return Range(index, ((lhs_end > rhs_end) ? lhs_end : rhs_end) - index);
}
friend Z_CT(CPP11) Range operator +(const Range &lhs, t rhs) Z_NOTHROW
{return Range(lhs.index, lhs.size + rhs);}
friend Z_CT(CPP11) Range operator +(t lhs, const Range &rhs) Z_NOTHROW
{return Range(rhs.index, rhs.size + lhs);}
friend Z_CT(CPP11) Range operator -(const Range &lhs, t rhs) Z_NOTHROW
{return Range(lhs.index, lhs.size - rhs);}
Z_CT(CPP11) Range operator >>(t rhs) const Z_NOTHROW {return Range(index + rhs, size);}
Z_CT(CPP11) Range operator <<(t rhs) const Z_NOTHROW {return Range(index - rhs, size);}
Z_INLINE Range &operator &=(const Range &rhs) Z_NOTHROW {return *this = *this & rhs;}
Z_INLINE Range &operator |=(const Range &rhs) Z_NOTHROW {return *this = *this | rhs;}
Z_INLINE Range &operator +=(t rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE Range &operator -=(t rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE Range &operator >>=(t rhs) Z_NOTHROW {return *this = *this >> rhs;}
Z_INLINE Range &operator <<=(t rhs) Z_NOTHROW {return *this = *this << rhs;}
Z_CT(CPP11) t operator [](t index_) const Z_NOTHROW {return index + index_;}
Z_CT(CPP11) Boolean contains(const Range &other) const Z_NOTHROW
{return other.index >= index && other.end() <= end();}
Z_CT(CPP11) Boolean contains(t index_) const Z_NOTHROW
{return index_ >= index && index_ < end();}
Z_CT(CPP11) t end() const Z_NOTHROW
{return index + size;}
Z_CT(CPP11) Boolean intersects(const Range &other) const Z_NOTHROW
{return index < other.end() && other.index < end();}
Z_CT(CPP11) Boolean is_zero() const Z_NOTHROW
{return !index && !size;}
# if defined(Z_WITH_NS_RANGE) && Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
Z_CT(CPP11) Range(const NSRange &range) Z_NOTHROW
: index(t(range.location)), size(t(range.length)) {}
# if Z_DIALECT_HAS(CPP11, COPY_LIST_INITIALIZATION)
Z_CT(CPP11) operator NSRange() const Z_NOTHROW
{return {NSUInteger(index), NSUInteger(size)};}
# else
Z_CT(CPP14) operator NSRange() const Z_NOTHROW
{
NSRange result = {NSUInteger(index), NSUInteger(size)};
return result;
}
# endif
# endif
};}
#endif // Z_classes_Range_HPP

View File

@@ -0,0 +1,737 @@
/* Zeta API - Z/classes/Rectangle.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Rectangle_HPP
#define Z_classes_Rectangle_HPP
#include <Z/classes/XY.hpp>
#ifdef Z_WITH_COCOS2D_X
# include "cocos2d.h"
#endif
#ifdef Z_WITH_CG_GEOMETRY
# include <CoreGraphics/CGGeometry.h>
#endif
#if defined(Z_WITH_NS_GEOMETRY) && Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
# import <Foundation/NSGeometry.h>
#endif
#ifdef Z_WITH_QT
# include <QRect>
#endif
namespace Zeta {template <class t> struct Rectangle {
XY<t> point, size;
Z_INLINE Rectangle() Z_NOTHROW
Z_DEFAULTED({})
Z_CT(CPP11) Rectangle(const XY<t> &point_, const XY<t> &size_) Z_NOTHROW
: point(point_), size(size_) {}
Z_CT(CPP11) Rectangle(const XY<t> &point_, t size_x, t size_y) Z_NOTHROW
: point(point_), size(size_x, size_y) {}
Z_CT(CPP11) Rectangle(const XY<t> &point_, t size_xy) Z_NOTHROW
: point(point_), size(size_xy) {}
Z_CT(CPP11) Rectangle(t point_x, t point_y, const XY<t> &size_) Z_NOTHROW
: point(point_x, point_y), size(size_) {}
Z_CT(CPP11) Rectangle(t point_x, t point_y, t size_x, t size_y) Z_NOTHROW
: point(point_x, point_y), size(size_x, size_y) {}
Z_CT(CPP11) Rectangle(t point_x, t point_y, t size_xy) Z_NOTHROW
: point(point_x, point_y), size(size_xy) {}
Z_CT(CPP11) Rectangle(t point_xy, const XY<t> &size_) Z_NOTHROW
: point(point_xy), size(size_) {}
Z_CT(CPP11) Rectangle(const XY<t> &size_) Z_NOTHROW
: point(t(0)), size(size_) {}
Z_CT(CPP11) Rectangle(t size_x, t size_y) Z_NOTHROW
: point(t(0)), size(size_x, size_y) {}
Z_CT(CPP11) Rectangle(t size_xy) Z_NOTHROW
: point(t(0)), size(size_xy) {}
# if Z_DIALECT_HAS(CPP98, SFINAE) && \
Z_DIALECT_HAS(CPP11, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
template <class other_t, class e = typename TypeIf<!TypeIsSame<t, other_t>::value>::type>
Z_CT(CPP11) Rectangle(const Rectangle<other_t> &other) Z_NOTHROW
: point(other.point), size(other.size) {}
# endif
static Z_CT(CPP14) Rectangle from_vertices(const XY<t> &a, const XY<t> &b) Z_NOTHROW
{
XY<t> minimum = a.minimum(b);
return Rectangle(minimum, a.maximum(b) - minimum);
}
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return point || size;}
friend Z_CT(CPP11) Boolean operator ==(const Rectangle &lhs, const Rectangle &rhs) Z_NOTHROW
{return lhs.point == rhs.point && lhs.size == rhs.size;}
friend Z_CT(CPP11) Boolean operator !=(const Rectangle &lhs, const Rectangle &rhs) Z_NOTHROW
{return lhs.point != rhs.point || lhs.size != rhs.size;}
friend Z_CT(CPP14) Rectangle operator &(const Rectangle &lhs, const Rectangle &rhs) Z_NOTHROW
{
t x1, x2, y1, y2;
return (x1 = maximum<t>(lhs.point.x, rhs.point.x)) <
(x2 = minimum<t>(lhs.point.x + lhs.size.x, rhs.point.x + rhs.size.x)) &&
(y1 = maximum<t>(lhs.point.y, rhs.point.y)) <
(y2 = minimum<t>(lhs.point.y + lhs.size.y, rhs.point.y + rhs.size.y))
? Rectangle(x1, y1, x2 - x1, y2 - y1)
: Rectangle(t(0));
}
friend Z_CT(CPP14) Rectangle operator |(const Rectangle &lhs, const Rectangle &rhs) Z_NOTHROW
{
Rectangle result;
result.point = lhs.point.minimum(rhs.point);
result.size = (lhs.point + lhs.size).maximum(rhs.point + rhs.size) - result.point;
return result;
}
friend Z_CT(CPP11) Rectangle operator +(const Rectangle &lhs, const XY<t> &rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size + rhs);}
friend Z_CT(CPP11) Rectangle operator +(const XY<t> &lhs, const Rectangle &rhs) Z_NOTHROW
{return Rectangle(rhs.point, rhs.size + lhs);}
friend Z_CT(CPP11) Rectangle operator +(const Rectangle &lhs, t rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size + rhs);}
friend Z_CT(CPP11) Rectangle operator +(t lhs, const Rectangle &rhs) Z_NOTHROW
{return Rectangle(rhs.point, rhs.size + lhs);}
friend Z_CT(CPP11) Rectangle operator -(const Rectangle &lhs, const XY<t> &rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size - rhs);}
friend Z_CT(CPP11) Rectangle operator -(const Rectangle &lhs, t rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size - rhs);}
friend Z_CT(CPP11) Rectangle operator *(const Rectangle &lhs, const XY<t> &rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size * rhs);}
friend Z_CT(CPP11) Rectangle operator *(const XY<t> &lhs, const Rectangle &rhs) Z_NOTHROW
{return Rectangle(rhs.point, rhs.size * lhs);}
friend Z_CT(CPP11) Rectangle operator *(const Rectangle &lhs, t rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size * rhs);}
friend Z_CT(CPP11) Rectangle operator *(t lhs, const Rectangle &rhs) Z_NOTHROW
{return Rectangle(rhs.point, rhs.size * lhs);}
friend Z_CT(CPP11) Rectangle operator /(const Rectangle &lhs, const XY<t> &rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size / rhs);}
friend Z_CT(CPP11) Rectangle operator /(const Rectangle &lhs, t rhs) Z_NOTHROW
{return Rectangle(lhs.point, lhs.size / rhs);}
Z_INLINE Rectangle &operator &=(const Rectangle &rhs) Z_NOTHROW {return *this = *this & rhs;}
Z_INLINE Rectangle &operator |=(const Rectangle &rhs) Z_NOTHROW {return *this = *this | rhs;}
Z_INLINE Rectangle &operator +=(const XY<t> &rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE Rectangle &operator -=(const XY<t> &rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE Rectangle &operator *=(const XY<t> &rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE Rectangle &operator /=(const XY<t> &rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_INLINE Rectangle &operator +=(t rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE Rectangle &operator -=(t rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE Rectangle &operator *=(t rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE Rectangle &operator /=(t rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_CT(CPP11) XY<t> bottom() const Z_NOTHROW
{return XY<t>(point.x + size.x / t(2), point.y);}
Z_CT(CPP11) XY<t> bottom(t (* round)(t)) const Z_NOTHROW
{return XY<t>(round(point.x + size.x / t(2)), point.y);}
Z_CT(CPP11) Rectangle bottom(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point.x + (size.x - size_.x) / t(2), point.y, size_);}
Z_CT(CPP11) Rectangle bottom(const XY<t> &size_, t (* round)(t)) const Z_NOTHROW
{return Rectangle(round(point.x + (size.x - size_.x) / t(2)), point.y, size_);}
Z_CT(CPP11) XY<t> bottom_left() const Z_NOTHROW
{return point;}
Z_CT(CPP11) Rectangle bottom_left(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point, size_);}
Z_CT(CPP11) XY<t> bottom_right() const Z_NOTHROW
{return XY<t>(point.x + size.x, point.y);}
Z_CT(CPP11) Rectangle bottom_right(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point.x + size.x - size_.x, point.y, size_);}
Z_CT(CPP11) XY<t> center() const Z_NOTHROW
{return point + size / t(2);}
Z_CT(CPP11) XY<t> center(t (* round)(t)) const Z_NOTHROW
{return XY<t>(round(point.x + size.x / t(2)), round(point.y + size.y / t(2)));}
Z_CT(CPP11) Rectangle center(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point + (size - size_) / t(2), size_);}
Z_CT(CPP11) Rectangle center(const XY<t> &size_, t (* round)(t)) const Z_NOTHROW
{
return Rectangle(
round(point.x + (size.x - size_.x) / t(2)),
round(point.y + (size.y - size_.y) / t(2)),
size);
}
Z_CT(CPP11) XY<t> left() const Z_NOTHROW
{return XY<t>(point.x, point.y + size.y / t(2));}
Z_CT(CPP11) XY<t> left(t (* round)(t)) const Z_NOTHROW
{return XY<t>(point.x, round(point.y + size.y / t(2)));}
Z_CT(CPP11) Rectangle left(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point.x, point.y + (size.y - size_.y) / t(2), size_);}
Z_CT(CPP11) Rectangle left(const XY<t> &size_, t (* round)(t)) const Z_NOTHROW
{return Rectangle(point.x, round(point.y + (size.y - size_.y) / t(2)), size_);}
Z_CT(CPP11) XY<t> right() const Z_NOTHROW
{return XY<t>(point.x + size.x, point.y + size.y / t(2));}
Z_CT(CPP11) XY<t> right(t (* round)(t)) const Z_NOTHROW
{return XY<t>(point.x + size.x, round(point.y + size.y / t(2)));}
Z_CT(CPP11) Rectangle right(const XY<t> &size_) const Z_NOTHROW
{
return Rectangle(
point.x + size.x - size_.x,
point.y + (size.y - size_.y) / t(2),
size_);
}
Z_CT(CPP11) Rectangle right(const XY<t> &size_, t (* round)(t)) const Z_NOTHROW
{
return Rectangle(
point.x + size.x - size_.x,
round(point.y + (size.y - size_.y) / t(2)),
size_);
}
Z_CT(CPP11) XY<t> top() const Z_NOTHROW
{return XY<t>(point.x + size.x / t(2), point.y + size.y);}
Z_CT(CPP11) XY<t> top(t (* round)(t)) const Z_NOTHROW
{return XY<t>(round(point.x + size.x / t(2)), point.y + size.y);}
Z_CT(CPP11) Rectangle top(const XY<t> &size_) const Z_NOTHROW
{
return Rectangle(
point.x + (size.x - size_.x) / t(2),
point.y + size.y - size_.y,
size_);
}
Z_CT(CPP11) Rectangle top(const XY<t> &size_, t (* round)(t)) const Z_NOTHROW
{
return Rectangle(
round(point.x + (size.x - size_.x) / t(2)),
point.y + size.y - size_.y,
size_);
}
Z_CT(CPP11) XY<t> top_left() const Z_NOTHROW
{return XY<t>(point.x, point.y + size.y);}
Z_CT(CPP11) Rectangle top_left(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point.x, point.y + size.y - size_.y, size_);}
Z_CT(CPP11) XY<t> top_right() const Z_NOTHROW
{return point + size;}
Z_CT(CPP11) Rectangle top_right(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point + size - size_, size_);}
Z_CT(CPP11) Rectangle bottom_half() const Z_NOTHROW
{return Rectangle(point, size.x, size.y / t(2));}
Z_CT(CPP11) Rectangle bottom_left_quarter() const Z_NOTHROW
{return Rectangle(point, size / t(2));}
Z_CT(CPP11) Boolean contains(const Rectangle &other) const Z_NOTHROW
{
return !other.size.has_zero() &&
other.point >= point &&
other.point + other.size <= point + size;
}
Z_CT(CPP11) Boolean contains(const XY<t> &point_) const Z_NOTHROW
{return point_ >= point && point_ < point + size;}
Z_INLINE Rectangle &correct() Z_NOTHROW
{
if (size.x < t(0)) point.x -= (size.x = -size.x);
if (size.y < t(0)) point.y -= (size.y = -size.y);
return *this;
}
Z_CT(CPP14) Rectangle fit_in_bottom_center(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point.x + (size.x - fitting_size.x) / t(2), point.y, fitting_size);
}
Z_CT(CPP11) Rectangle fit_in_bottom_left(const XY<t> &size_) const Z_NOTHROW
{return Rectangle(point, size_.fit(size));}
Z_CT(CPP14) Rectangle fit_in_bottom_right(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point.x + size.x - fitting_size.x, point.y, fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_center(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point + (size - fitting_size) / t(2), fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_center_left(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point.x, point.y + (size.y - fitting_size.y) / t(2), fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_center_right(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(
point.x + size.x - fitting_size.x,
point.y + (size.y - fitting_size.y) / t(2),
fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_top_center(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(
point.x + (size.x - fitting_size.x) / t(2),
point.y + size.y - fitting_size.y,
fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_top_left(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point.x, point.y + size.y - fitting_size.y, fitting_size);
}
Z_CT(CPP14) Rectangle fit_in_top_right(const XY<t> &size_) const Z_NOTHROW
{
XY<t> fitting_size = size_.fit(size);
return Rectangle(point + size - fitting_size, fitting_size);
}
Z_CT(CPP11) Rectangle grow_from_bottom_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x - delta.x / t(2), point.y, size + delta);}
Z_CT(CPP11) Rectangle grow_from_bottom_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point, size + delta);}
Z_CT(CPP11) Rectangle grow_from_bottom_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x - delta.x, point.y, size + delta);}
Z_CT(CPP11) Rectangle grow_from_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point - delta / t(2), size + delta);}
Z_CT(CPP11) Rectangle grow_from_center_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x, point.y - delta.y / t(2), size + delta);}
Z_CT(CPP11) Rectangle grow_from_center_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x - delta.x, point.y - delta.y / t(2), size + delta);}
Z_CT(CPP11) Rectangle grow_from_top_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x - delta.x / t(2), point.y - delta.y, size + delta);}
Z_CT(CPP11) Rectangle grow_from_top_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x, point.y - delta.y, size + delta);}
Z_CT(CPP11) Rectangle grow_from_top_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point - delta, size + delta);}
Z_CT(CPP11) Rectangle grow_in_x_from_center(t delta) const Z_NOTHROW
{return Rectangle(point.x - delta / t(2), point.y, size.x + delta, size.y);}
Z_CT(CPP11) Rectangle grow_in_x_from_left(t delta) const Z_NOTHROW
{return Rectangle(point, size.x + delta, size.y);}
Z_CT(CPP11) Rectangle grow_in_x_from_right(t delta) const Z_NOTHROW
{return Rectangle(point.x - delta, point.y, size.x + delta, size.y);}
Z_CT(CPP11) Rectangle grow_in_y_from_bottom(t delta) const Z_NOTHROW
{return Rectangle(point, size.x, size.y + delta);}
Z_CT(CPP11) Rectangle grow_in_y_from_center(t delta) const Z_NOTHROW
{return Rectangle(point.x, point.y - delta / t(2), size.x, size.y + delta);}
Z_CT(CPP11) Rectangle grow_in_y_from_top(t delta) const Z_NOTHROW
{return Rectangle(point.x, point.y - delta, size.x, size.y + delta);}
Z_CT(CPP11) Boolean intersects(const Rectangle &other) const Z_NOTHROW
{
return !size.has_zero() &&
!other.size.has_zero() &&
other.point + other.size > point &&
other.point < point + size;
}
Z_CT(CPP11) Boolean is_zero() const Z_NOTHROW
{return point.is_zero() && size.is_zero();}
Z_CT(CPP11) Rectangle left_half () const Z_NOTHROW
{return Rectangle(point, size.x / t(2), size.y);}
Z_CT(CPP11) t maximum_x() const Z_NOTHROW {return point.x + size.x;}
Z_CT(CPP11) t maximum_y() const Z_NOTHROW {return point.y + size.y;}
Z_CT(CPP11) t middle_x () const Z_NOTHROW {return point.x + size.x / t(2);}
Z_CT(CPP11) t middle_y () const Z_NOTHROW {return point.y + size.y / t(2);}
Z_CT(CPP11) t minimum_x() const Z_NOTHROW {return point.x;}
Z_CT(CPP11) t minimum_y() const Z_NOTHROW {return point.y;}
Z_CT(CPP11) Rectangle shrink_from_bottom_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x + delta.x / t(2), point.y, size - delta);}
Z_CT(CPP11) Rectangle shrink_from_bottom_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point, size - delta);}
Z_CT(CPP11) Rectangle shrink_from_bottom_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x + delta.x, point.y, size - delta);}
Z_CT(CPP11) Rectangle shrink_from_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point + delta / t(2), size - delta);}
Z_CT(CPP11) Rectangle shrink_from_center_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x, point.y + delta.y / t(2), size - delta);}
Z_CT(CPP11) Rectangle shrink_from_center_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x + delta.x, point.y + delta.y / t(2), size - delta);}
Z_CT(CPP11) Rectangle shrink_from_top_center(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x + delta.x / t(2), point.y + delta.y, size - delta);}
Z_CT(CPP11) Rectangle shrink_from_top_left(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point.x, point.y + delta.y, size - delta);}
Z_CT(CPP11) Rectangle shrink_from_top_right(const XY<t> &delta) const Z_NOTHROW
{return Rectangle(point + delta, size - delta);}
Z_CT(CPP11) Rectangle shrink_in_x_from_center(t delta) const Z_NOTHROW
{return Rectangle(point.x + delta / t(2), point.y, size.x - delta, size.y);}
Z_CT(CPP11) Rectangle shrink_in_x_from_left(t delta) const Z_NOTHROW
{return Rectangle(point, size.x - delta, size.y);}
Z_CT(CPP11) Rectangle shrink_in_x_from_right(t delta) const Z_NOTHROW
{return Rectangle(point.x + delta, point.y, size.x - delta, size.y);}
Z_CT(CPP11) Rectangle shrink_in_y_from_bottom(t delta) const Z_NOTHROW
{return Rectangle(point, size.x, size.y - delta);}
Z_CT(CPP11) Rectangle shrink_in_y_from_center(t delta) const Z_NOTHROW
{return Rectangle(point.x, point.y + delta / t(2), size.x, size.y - delta);}
Z_CT(CPP11) Rectangle shrink_in_y_from_top(t delta) const Z_NOTHROW
{return Rectangle(point.x, point.y + delta, size.x, size.y - delta);}
Z_CT(CPP11) XY<t> absolute_point_to_unit(const XY<t> &point_) const Z_NOTHROW
{return (point_ - point) / size;}
Z_CT(CPP11) Rectangle bottom_right_quarter() const Z_NOTHROW
{return Rectangle(point.x + size.x / t(2), point.y, size / t(2));}
Z_CT(CPP11) Rectangle right_half() const Z_NOTHROW
{return Rectangle(point.x + size.x / t(2), point.y, size.x / t(2), size.y);}
Z_CT(CPP11) Rectangle top_half() const Z_NOTHROW
{return Rectangle(point.x, point.y + size.y / t(2), size.x, size.y / t(2));}
Z_CT(CPP11) Rectangle top_left_quarter() const Z_NOTHROW
{return Rectangle(point.x, point.y + size.y / t(2), size / t(2));}
Z_CT(CPP11) Rectangle top_right_quarter() const Z_NOTHROW
{return Rectangle(point + size / t(2), size / t(2));}
Z_CT(CPP11) XY<t> unit_point_to_absolute(const XY<t> &point_) const Z_NOTHROW
{return point + point_ * size;}
# ifdef Z_WITH_COCOS2D_X
Z_INLINE Rectangle(const cocos2d::Rect &rectangle)
: point(rectangle.origin), size(rectangle.size) {}
Z_INLINE operator cocos2d::Rect() const
{return cocos2d::Rect(float(point.x), float(point.y), float(size.x), float(size.y));}
# endif
# if defined(Z_WITH_CG_GEOMETRY) || defined(Z_WITH_NS_GEOMETRY)
# define Z__APPLE_CONSTRUCTORS(Prefix) \
\
Z_CT(CPP11) Rectangle(const Prefix##Rect &rectangle) \
: point(rectangle.origin), size(rectangle.size) {} \
\
\
Z_CT(CPP11) Rectangle(const Prefix##Point &point_) \
: point(t(0)), size(point_) {} \
\
\
Z_CT(CPP11) Rectangle(const Prefix##Size &size_) \
: point(t(0)), size(size_) {}
# if Z_DIALECT_HAS(CPP11, COPY_LIST_INITIALIZATION)
# define Z__APPLE_OPERATORS(Prefix) \
\
Z_CT(CPP11) operator Prefix##Rect() const \
{ \
return {{CGFloat(point.x), CGFloat(point.y)}, \
{CGFloat(size.x), CGFloat(size.y)}}; \
}
# else
# define Z__APPLE_OPERATORS(Prefix) \
\
Z_CT(CPP14) operator Prefix##Rect() const \
{ \
CGRect result = { \
{CGFloat(point.x), CGFloat(point.y)}, \
{CGFloat(size.x), CGFloat(size.y)} \
}; \
\
return result; \
}
# endif
# ifdef Z_WITH_CG_GEOMETRY
Z__APPLE_CONSTRUCTORS(CG)
Z__APPLE_OPERATORS (CG)
# endif
# if defined(Z_WITH_NS_GEOMETRY) && \
Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP) && \
(!defined(Z_WITH_CG_GEOMETRY) || \
!defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES) || \
!NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
Z__APPLE_CONSTRUCTORS(NS)
Z__APPLE_OPERATORS (NS)
# endif
# undef Z__APPLE_CONSTRUCTORS
# undef Z__APPLE_OPERATORS
# endif
# ifdef Z_WITH_QT
Z_CT(CPP11) Rectangle(const QRect &rectangle) Z_NOTHROW
: point(rectangle.topLeft()), size(rectangle.size()) {}
Z_CT(CPP11) Rectangle(const QPoint &point_) Z_NOTHROW
: point(t(0)), size(point) {}
Z_CT(CPP11) Rectangle(const QSize &size_) Z_NOTHROW
: point(t(0)), size(size_) {}
Z_CT(CPP11) operator QRect() const Z_NOTHROW
{return QRect(int(point.x), int(point.y), int(size.x), int(size.y));}
# endif
};}
#endif // Z_classes_Rectangle_HPP

View File

@@ -0,0 +1,39 @@
/* Zeta API - Z/classes/Reference.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Reference_HPP
#define Z_classes_Reference_HPP
#include <Z/macros/language.hpp>
namespace Zeta {template <class t> struct Reference {
typedef t type;
t *value;
Z_CT(CPP11) Reference(t &value_) Z_NOTHROW
: value(&value_) {}
# if Z_DIALECT_HAS(CPP11, DELETED_FUNCTION)
Z_CT(CPP11) Reference(t &&value_) = delete;
# endif
Z_CT(CPP11) operator t &() const Z_NOTHROW
{return *value;}
Z_CT(CPP11) t &get() const Z_NOTHROW
{return *value;}
};}
#endif // Z_classes_Span_HPP

View File

@@ -0,0 +1,128 @@
/* Zeta API - Z/classes/Selector.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Selector_HPP
#define Z_classes_Selector_HPP
#include <Z/inspection/language.h>
#if Z_DIALECT_HAS(CPP98, SFINAE) && \
Z_DIALECT_HAS(CPP11, VARIADIC_TEMPLATE) && \
Z_DIALECT_HAS(CPP11, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
# include <Z/traits/type.hpp>
# include <Z/functions/Objective-C.hpp>
# if Z_DIALECT_HAS(CPP11, RVALUE_REFERENCE)
# include <Z/functions/casting.hpp>
# endif
# define Z_HAS_Selector TRUE
namespace Zeta {
template <class f> struct Selector;
template <class r, class... p>
struct Selector<r(p...)> {
typedef r (* Send )(id, SEL, p...);
typedef r (* SendSuper)(objc_super *, SEL, p...);
SEL selector;
Z_INLINE Selector()
Z_DEFAULTED({})
Z_INLINE Selector(SEL selector_)
: selector(selector_) {}
Z_INLINE operator SEL() const Z_NOTHROW
{return selector;}
Z_INLINE r operator ()(id object, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
return (Send(ObjectiveC::send<r>()))
(object, selector, arguments...);
}
Z_INLINE r super(id object, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
objc_super object_super = {object, class_getSuperclass(object_getClass(object))};
return (SendSuper(ObjectiveC::send_super<r>()))
(&object_super, selector, arguments...);
}
Z_INLINE r super(const objc_super &object_super, typename Type<p>::to_forwardable... arguments) const Z_NOTHROW
{
return (SendSuper(ObjectiveC::send_super<r>()))
(const_cast<objc_super *>(&object_super), selector, arguments...);
}
};
# if Z_DIALECT_HAS(CPP11, RVALUE_REFERENCE)
template <class r, class... p>
struct Selector<r(p..., ...)> {
typedef r (* Send )(id, SEL, p..., ...);
typedef r (* SendSuper)(objc_super *, SEL, p..., ...);
SEL selector;
Z_INLINE Selector()
Z_DEFAULTED({})
Z_INLINE Selector(SEL selector)
: selector(selector) {}
Z_INLINE operator SEL() const Z_NOTHROW
{return selector;}
template <class... pp>
Z_INLINE r operator ()(id object, pp&&... arguments) const Z_NOTHROW
{
return (Send(ObjectiveC::send<r>()))
(object, selector, forwardable<pp>(arguments)...);
}
template <class... pp>
Z_INLINE r super(id object, pp&&... arguments) const Z_NOTHROW
{
objc_super object_super = {object, class_getSuperclass(object_getClass(object))};
return (SendSuper(ObjectiveC::send_super<r>()))
(&object_super, selector, forwardable<pp>(arguments)...);
}
template <class... pp>
Z_INLINE r super(const objc_super &object_super, pp&&... arguments) const Z_NOTHROW
{
return (SendSuper(ObjectiveC::send_super<r>()))
(const_cast<objc_super *>(&object_super), selector, forwardable<pp>(arguments)...);
}
};
# endif
}
#endif
#endif // Z_classes_Selector_HPP

View File

@@ -0,0 +1,175 @@
/* Zeta API - Z/classes/Shared.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Shared_HPP
#define Z_classes_Shared_HPP
#include <Z/constants/pointer.h>
#include <Z/macros/language.hpp>
#include <Z/types/integral.hpp>
#include <Z/types/pointer.hpp>
namespace Zeta {template <class t> struct Shared {
struct Owned {
t* data;
USize owner_count;
Z_INLINE Owned(t *data) Z_NOTHROW
: data(data), owner_count(1) {}
Z_INLINE ~Owned()
{delete data;}
} *owned;
Z_CT(CPP11) Shared() Z_NOTHROW
: owned(Z_NULL) {}
Z_INLINE Shared(const Shared &other) Z_NOTHROW
{if ((owned = other.owned)) owned->owner_count++;}
Z_INLINE Shared(t *data) Z_NOTHROW
{owned = data ? new Owned(data) : Z_NULL;}
Z_INLINE ~Shared()
{if (owned && !--owned->owner_count) delete owned;}
Z_INLINE operator Boolean() const Z_NOTHROW
{return Boolean(owned);}
Z_INLINE Shared &operator =(const Shared &rhs)
{
if (owned != rhs.owned)
{
if (owned && !--owned->owner_count) delete owned;
if ((owned = rhs.owned)) owned->owner_count++;
}
return *this;
}
Z_INLINE Shared &operator =(t *rhs)
{
if (owned)
{
if (owned->data == rhs) return *this;
if (!--owned->owner_count) delete owned;
}
owned = rhs ? new Owned(rhs) : Z_NULL;
return *this;
}
friend Z_INLINE Boolean operator ==(const Shared &lhs, const Shared &rhs) Z_NOTHROW
{return lhs.owned == rhs.owned;}
friend Z_INLINE Boolean operator !=(const Shared &lhs, const Shared &rhs) Z_NOTHROW
{return lhs.owned != rhs.owned;}
Z_INLINE t &operator *() const Z_NOTHROW
{return *owned->data;}
Z_INLINE t *operator ->() const Z_NOTHROW
{return owned->data;}
Z_INLINE t *get() const Z_NOTHROW
{return owned ? owned->data : Z_NULL;}
Z_INLINE USize owner_count() const Z_NOTHROW
{return owned->owner_count;}
Z_INLINE void reset()
{
if (owned && !--owned->owner_count) delete owned;
owned = Z_NULL;
}
Z_INLINE void swap(Shared &other) Z_NOTHROW
{
Owned *ex = owned;
owned = other.owned;
other.owned = ex;
}
# ifdef Z_NULLPTR
Z_CT(CPP11) Shared(NullPtr) Z_NOTHROW
: owned(nullptr) {}
Z_INLINE Shared &operator =(NullPtr)
{
if (owned && !--owned->owner_count) delete owned;
owned = nullptr;
return *this;
}
friend Z_INLINE Boolean operator ==(const Shared &lhs, NullPtr) Z_NOTHROW
{return !lhs.owned;}
friend Z_INLINE Boolean operator ==(NullPtr, const Shared &rhs) Z_NOTHROW
{return !rhs.owned;}
friend Z_INLINE Boolean operator !=(const Shared &lhs, NullPtr) Z_NOTHROW
{return !!lhs.owned;}
friend Z_INLINE Boolean operator !=(NullPtr, const Shared &rhs) Z_NOTHROW
{return !!rhs.owned;}
# endif
# if Z_DIALECT_HAS(CPP11, RVALUE_REFERENCE)
Z_INLINE Shared(Shared &&other) Z_NOTHROW
: owned(other.owned)
{other.owned = Z_NULL;}
Z_INLINE Shared &operator =(Shared &&rhs)
{
if (owned != rhs.owned)
{
if (owned && !--owned->owner_count) delete owned;
owned = rhs.owned;
rhs.owned = Z_NULL;
}
return *this;
}
# endif
};}
#endif // Z_classes_Shared_HPP

View File

@@ -0,0 +1,55 @@
/* Zeta API - Z/classes/SizedString.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_SizedString_HPP
#define Z_classes_SizedString_HPP
#include <Z/classes/StringView.hpp>
#include <utility>
namespace Zeta{namespace ZetaDetail {
template <class t, USize s, class = std::make_index_sequence<s - 1> > struct SizedString;
template <class t, USize s, std::size_t... i>
struct SizedString<t, s, std::index_sequence<i...> > {
t data[s];
Z_CT(CPP11) SizedString(const t (&string)[s]) Z_NOTHROW
: data{string[i]..., 0} {}
Z_CT(CPP11) SizedString(const StringView<t> &string_view) Z_NOTHROW
: data{string_view.data[i]..., 0} {}
};
}}
namespace Zeta{template <class t, USize s> struct SizedString : ZetaDetail::SizedString<t, s> {
Z_CT(CPP11) SizedString(const t (&string)[s]) Z_NOTHROW
: ZetaDetail::SizedString<t, s>(string) {}
Z_CT(CPP11) SizedString(const StringView<t> &string_view) Z_NOTHROW
: ZetaDetail::SizedString<t, s>(string_view) {}
Z_CT(CPP11) operator const t *() const Z_NOTHROW
{return this->data;}
Z_CT(CPP11) const t &operator [](USize index) const Z_NOTHROW
{return this->data[index];}
};}
#endif // Z_classes_SizedString_HPP

View File

@@ -0,0 +1,78 @@
/* Zeta API - Z/classes/Span.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Span_HPP
#define Z_classes_Span_HPP
#include <Z/constants/pointer.h>
#include <Z/classes/Range.hpp>
#include <Z/classes/Iterator.hpp>
namespace Zeta {template <class t> struct Span {
typedef const t* const_pointer;
typedef const t& const_reference;
typedef PtrDiff difference_type;
typedef t element_type;
// typedef Iterator<Span> iterator;
typedef t* pointer;
typedef t& reference;
// typedef Iterator<t*> reverse_iterator;
typedef USize size_type;
typedef typename Type<t>::remove_const_volatile value_type;
t* data;
USize size;
Z_CT(CPP11) Span(t *first, USize size_) Z_NOTHROW
: data(first), size(size_) {}
Z_CT(CPP11) Span(t *first, t *last) Z_NOTHROW
: data(first), size(last - first) {}
Z_CT(CPP11) t &operator [](USize index) const Z_NOTHROW
{return data[index];}
Z_CT(CPP11) t &first() const Z_NOTHROW
{return data[0];}
Z_CT(CPP11) t &last() const Z_NOTHROW
{return data[size - 1];}
Z_CT(CPP11) Span head(USize head_size) const Z_NOTHROW
{return Span(data, head_size);}
Z_CT(CPP11) Span tail(USize tail_size) const Z_NOTHROW
{return Span(&data[size - tail_size], tail_size);}
Z_CT(CPP11) Span range(USize range_index, USize range_size) const Z_NOTHROW
{return Span(&data[range_index], range_size);}
Z_CT(CPP11) Span range(const Range<USize> &range) const Z_NOTHROW
{return Span(&data[range.index], range.size);}
/* Z_CT(CPP11) Iterator<Span> begin() const Z_NOTHROW
{return Iterator<Span>(*this, 0);}
Z_CT(CPP11) Iterator<Span> end() const Z_NOTHROW
{return Iterator<Span>(*this, size);}*/
};}
#endif // Z_classes_Span_HPP

View File

@@ -0,0 +1,115 @@
/* Zeta API - Z/classes/Status.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Status_HPP
#define Z_classes_Status_HPP
#include <Z/keys/status.h>
#include <Z/macros/language.hpp>
#include <Z/types/integral.hpp>
namespace Zeta {struct Status {
enum {OK = Z_OK};
struct Error {enum {
Unknown = Z_ERROR_UNKNOWN,
AlreadyExists = Z_ERROR_ALREADY_EXISTS,
AlreadyInUse = Z_ERROR_ALREADY_IN_USE,
AlreadyOpen = Z_ERROR_ALREADY_OPEN,
AlreadyRunning = Z_ERROR_ALREADY_RUNNING,
Busy = Z_ERROR_BUSY,
Closed = Z_ERROR_CLOSED,
ClosedByPeer = Z_ERROR_CLOSED_BY_PEER,
Empty = Z_ERROR_EMPTY,
Exception = Z_ERROR_EXCEPTION,
Full = Z_ERROR_FULL,
LimitReached = Z_ERROR_LIMIT_REACHED,
Locked = Z_ERROR_LOCKED,
Loop = Z_ERROR_LOOP,
InvalidAddress = Z_ERROR_INVALID_ADDRESS,
InvalidArgument = Z_ERROR_INVALID_ARGUMENT,
InvalidData = Z_ERROR_INVALID_DATA,
InvalidFormat = Z_ERROR_INVALID_FORMAT,
InvalidIndex = Z_ERROR_INVALID_INDEX,
InvalidInterval = Z_ERROR_INVALID_INTERVAL,
InvalidIO = Z_ERROR_INVALID_IO,
InvalidProtocol = Z_ERROR_INVALID_PROTOCOL,
InvalidRange = Z_ERROR_INVALID_RANGE,
InvalidRatio = Z_ERROR_INVALID_RATIO,
InvalidSize = Z_ERROR_INVALID_SIZE,
InvalidType = Z_ERROR_INVALID_TYPE,
InvalidValue = Z_ERROR_INVALID_VALUE,
NotAvailable = Z_ERROR_NOT_AVAILABLE,
NotEnoughMemory = Z_ERROR_NOT_ENOUGH_MEMORY,
NotEnoughSpace = Z_ERROR_NOT_ENOUGH_SPACE,
NotEnoughResources = Z_ERROR_NOT_ENOUGH_RESOURCES,
NotExecutable = Z_ERROR_NOT_EXECUTABLE,
NotFinalized = Z_ERROR_NOT_FINALIZED,
NotFound = Z_ERROR_NOT_FOUND,
NotInitialized = Z_ERROR_NOT_INITIALIZED,
NotReadable = Z_ERROR_NOT_READABLE,
NotWritable = Z_ERROR_NOT_WRITABLE,
NotSupported = Z_ERROR_NOT_SUPPORTED,
RaceCondition = Z_ERROR_RACE_CONDITION,
Rejected = Z_ERROR_REJECTED,
StackOverflow = Z_ERROR_STACK_OVERFLOW,
Stalled = Z_ERROR_STALLED,
Terminated = Z_ERROR_TERMINATED,
TimeOut = Z_ERROR_TIME_OUT,
TooBig = Z_ERROR_TOO_BIG,
TooSmall = Z_ERROR_TOO_SMALL,
Unauthorized = Z_ERROR_UNAUTHORIZED,
Unreachable = Z_ERROR_UNREACHABLE
};};
SInt code;
Z_INLINE Status() Z_NOTHROW
Z_DEFAULTED({})
Z_CT(CPP11) Status(SInt status) Z_NOTHROW
: code(status) {}
Z_CT(CPP11) operator SInt() const Z_NOTHROW
{return code;}
friend Z_CT(CPP11) Boolean operator ==(const Status &lhs, const Status &rhs) Z_NOTHROW
{return lhs.code == rhs.code;}
friend Z_CT(CPP11) Boolean operator ==(const Status &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.code == rhs;}
friend Z_CT(CPP11) Boolean operator ==(UInt64 lhs, const Status &rhs) Z_NOTHROW
{return lhs == rhs.code;}
friend Z_CT(CPP11) Boolean operator !=(const Status &lhs, const Status &rhs) Z_NOTHROW
{return lhs.code != rhs.code;}
friend Z_CT(CPP11) Boolean operator !=(const Status &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.code != rhs;}
friend Z_CT(CPP11) Boolean operator !=(UInt64 lhs, const Status &rhs) Z_NOTHROW
{return lhs != rhs.code;}
Z_CT(CPP11) Boolean is_error() const Z_NOTHROW
{return code < 0;}
};}
#endif // Z_classes_Status_HPP

View File

@@ -0,0 +1,60 @@
/* Zeta API - Z/classes/Strid.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Strid_HPP
#define Z_classes_Strid_HPP
#include <Z/functions/hash.hpp>
namespace Zeta {struct Strid {
UInt64 hash;
Z_INLINE Strid() Z_NOTHROW
Z_DEFAULTED({})
Z_CT(CPP11) Strid(UInt64 hash_) Z_NOTHROW
: hash(hash_) {}
Z_CT(CPP14) Strid(const Char *string) Z_NOTHROW
: hash(fnv1a_64(string)) {}
Z_CT(CPP11) operator UInt64() const Z_NOTHROW
{return hash;}
friend Z_CT(CPP11) Boolean operator ==(const Strid &lhs, const Strid &rhs) Z_NOTHROW
{return lhs.hash == rhs.hash;}
friend Z_CT(CPP11) Boolean operator ==(const Strid &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.hash == rhs;}
friend Z_CT(CPP11) Boolean operator ==(UInt64 lhs, const Strid &rhs) Z_NOTHROW
{return lhs == rhs.hash;}
friend Z_CT(CPP11) Boolean operator !=(const Strid &lhs, const Strid &rhs) Z_NOTHROW
{return lhs.hash != rhs.hash;}
friend Z_CT(CPP11) Boolean operator !=(const Strid &lhs, UInt64 rhs) Z_NOTHROW
{return lhs.hash != rhs;}
friend Z_CT(CPP11) Boolean operator !=(UInt64 lhs, const Strid &rhs) Z_NOTHROW
{return lhs != rhs.hash;}
};}
#endif // Z_classes_Strid_HPP

View File

@@ -0,0 +1,89 @@
/* Zeta API - Z/classes/StringView.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_StringView_HPP
#define Z_classes_StringView_HPP
#include <Z/constants/pointer.h>
#include <Z/macros/language.hpp>
#include <Z/types/integral.hpp>
#include <Z/classes/Iterator.hpp>
#ifdef Z_WITH_STDCPP
# include <cstring>
#endif
namespace Zeta {template <class t> struct StringView {
// typedef Iterator<t*> const_iterator;
// typedef Iterator<t*> const_reverse_iterator;
typedef const t* const_pointer;
typedef const t& const_reference;
typedef PtrDiff difference_type;
// typedef Iterator<t*> iterator;
typedef t* pointer;
typedef t& reference;
// typedef Iterator<t*> reverse_iterator;
typedef USize size_type;
typedef t value_type;
const t* data;
USize size;
Z_CT(CPP11) StringView() Z_NOTHROW
: data(Z_NULL), size(0) {}
Z_CT(CPP11) StringView(const t *data_, USize size_) Z_NOTHROW
: data(data_), size(size_) {}
Z_CT(CPP11) const t &operator [](USize index) const Z_NOTHROW
{return data[index];}
/* Z_CT(CPP11) iterator begin() const Z_NOTHROW
{}
Z_CT(CPP11) iterator end() const Z_NOTHROW
{}*/
# ifdef Z_WITH_STDCPP
friend Z_INLINE Boolean operator ==(const StringView &lhs, const StringView &rhs) Z_NOTHROW
{return lhs.size == rhs.size && !std::memcmp(lhs.data, rhs.data, lhs.size * sizeof(t));}
friend Z_INLINE Boolean operator !=(const StringView &lhs, const StringView &rhs) Z_NOTHROW
{return lhs.size != rhs.size || std::memcmp(lhs.data, rhs.data, lhs.size * sizeof(t));}
template <USize s>
friend Z_INLINE Boolean operator ==(const StringView &lhs, const t (&rhs)[s]) Z_NOTHROW
{return lhs.size == (s - 1) && !std::memcmp(lhs.data, rhs, (s - 1) * sizeof(t));}
template <USize s>
friend Z_INLINE Boolean operator !=(const StringView &lhs, const t (&rhs)[s]) Z_NOTHROW
{return lhs.size != (s - 1) || std::memcmp(lhs.data, rhs, (s - 1) * sizeof(t));}
friend Z_INLINE Boolean operator ==(const StringView &lhs, const t *rhs) Z_NOTHROW
{return lhs.size * sizeof(t) == std::strlen(rhs) && !std::memcmp(lhs.data, rhs, lhs.size * sizeof(t));}
friend Z_INLINE Boolean operator !=(const StringView &lhs, const t *rhs) Z_NOTHROW
{return lhs.size * sizeof(t) != std::strlen(rhs) || std::memcmp(lhs.data, rhs, lhs.size * sizeof(t));}
# endif
};}
#endif // Z_classes_StringView_HPP

View File

@@ -0,0 +1,96 @@
/* Zeta API - Z/classes/TripleBuffer.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_TripleBuffer_HPP
#define Z_classes_TripleBuffer_HPP
#include <Z/constants/pointer.h>
#include <Z/macros/language.hpp>
#include <Z/types/buffer.h>
#include <Z/types/integral.hpp>
#include <Z/functions/atomic.h>
namespace Zeta {struct TripleBuffer : ZTripleBuffer {
Z_INLINE TripleBuffer() Z_NOTHROW
Z_DEFAULTED({})
Z_INLINE TripleBuffer(void *data_, USize slot_size) Z_NOTHROW
{initialize(data_, slot_size);}
/// @brief Initializes the object.
///
/// @param data_ A pointer to a buffer.
/// @param slot_size The size of the slot.
Z_INLINE void initialize(void *data_, USize slot_size) Z_NOTHROW
{
data[0] = data_;
data[1] = reinterpret_cast<Char *>(data_) + slot_size;
data[2] = reinterpret_cast<Char *>(data_) + slot_size * 2;
flags = 6;
}
/// @brief Gets a pointer to the production slot.
///
/// @return A pointer to the current production slot.
Z_INLINE void *production_slot() const Z_NOTHROW
{return data[(flags & 48) >> 4];}
/// @brief Gets a pointer to the consumption slot.
///
/// @return A pointer to the current consumption slot.
Z_INLINE void *consumption_slot() const Z_NOTHROW
{return data[flags & 3];}
/// @brief Marks the the current production slot as produced.
///
/// @return A pointer to the new production slot.
Z_INLINE void *produce() Z_NOTHROW
{
UChar flags, new_flags;
do {
flags = this->flags;
new_flags = UChar(64 | ((flags & 12) << 2) | ((flags & 48) >> 2) | (flags & 3));
}
while (!z_type_atomic_set_if_equal(UCHAR)(&this->flags, flags, new_flags));
return data[(new_flags & 48) >> 4];
}
/// @brief Marks the current consumption slot as consumed.
///
/// @return A pointer to the new consumption slot.
Z_INLINE void *consume() Z_NOTHROW
{
UChar flags, new_flags;
do {
if (!((flags = this->flags) & 64)) return Z_NULL;
new_flags = UChar((flags & 48) | ((flags & 3) << 2) | ((flags & 12) >> 2));
}
while (!z_type_atomic_set_if_equal(UCHAR)(&this->flags, flags, new_flags));
return data[new_flags & 3];
}
};}
#endif // Z_classes_TripleBuffer_HPP

View File

@@ -0,0 +1,140 @@
/* Zeta API - Z/classes/Tuple.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Tuple_HPP
#define Z_classes_Tuple_HPP
#include <Z/inspection/language.h>
#if Z_DIALECT_HAS(CPP11, EXTENDED_VARIADIC_TEMPLATE_TEMPLATE_PARAMETERS) /* ¿No es necesario, basta con VARIADIC_TEMPLATE? */
# include <Z/traits/type.hpp>
# define Z_HAS_Tuple TRUE
namespace Zeta {namespace ZetaDetail {namespace Tuple {
template <class type_list> struct Element;
template <class... t> struct Super {
typedef Element<typename TypeListRotateRight<TypeList<t...>, 1>::type> type;
};
template <class t0>
struct Element<TypeList<t0> > {
typedef t0 type;
type value;
Z_INLINE Element()
Z_DEFAULTED({})
Z_CT(CPP11) Element(typename Zeta::Type<t0>::to_forwardable value)
: value(value) {}
};
template <class tn, class... t>
struct Element<TypeList<tn, t...> > : Super<t...>::type {
typedef tn type;
type value;
Z_INLINE Element()
Z_DEFAULTED({})
Z_CT(CPP11) Element(
typename Zeta::Type<t >::to_forwardable... previous,
typename Zeta::Type<tn>::to_forwardable value
) : Super<t...>::type(previous...), value(value) {}
};
}}}
namespace Zeta {template <class... t> class Tuple : public ZetaDetail::Tuple::Super<t...>::type {
private:
typedef typename ZetaDetail::Tuple::Super<t...>::type Super;
public:
template <UInt i> class At {
private:
enum {tail_size = TypeCount<t...>::value - (i + 1)};
public:
typedef ZetaDetail::Tuple::Element<typename TypeListRotateRight<
typename TypeListRemoveTail<TypeList<t...>, tail_size>::type, 1
>::type> Element;
typedef typename Element::type type;
};
# if !Z_DIALECT_HAS(CPP11, INHERITING_CONSTRUCTORS)
using Super::Super;
# else
Z_INLINE Tuple()
Z_DEFAULTED({})
Z_CT(CPP11) Tuple(typename Type<t>::to_forwardable... values)
: Super(values...) {}
# endif
template <UInt index>
Z_INLINE typename At<index>::type &at() Z_NOTHROW
{return At<index>::Element::value;}
template <UInt index>
Z_CT(CPP11) typename Type<typename At<index>::type>::to_forwardable get() const Z_NOTHROW
{return At<index>::Element::value;}
template <UInt index>
Z_INLINE Tuple &set(typename Type<typename At<index>::type>::to_forwardable value)
{
At<index>::Element::value = value;
return *this;
}
};}
# if defined(Z_WITH_STD) && Z_DIALECT_HAS(CPP17, STRUCTURED_BINDING) && defined(__has_include) && __has_include(<tuple>)
# include <tuple>
# define Z__IMPLEMENTATION(qualifiers) \
\
template <class... t> \
struct std::tuple_size<qualifiers Zeta::Tuple<t...> > { \
enum {value = sizeof...(t)}; \
}; \
\
template <std::size_t i, class... t> \
struct std::tuple_element<i, qualifiers Zeta::Tuple<t...> > { \
typedef typename Zeta::Type<typename Zeta::Tuple<t...>::template At<i>::type>::add_const type; \
};
Z__IMPLEMENTATION(Z_EMPTY )
Z__IMPLEMENTATION(const )
Z__IMPLEMENTATION(const volatile)
Z__IMPLEMENTATION( volatile)
# undef Z__IMPLEMENTATION
# endif
#endif
#endif // Z_classes_Tuple_HPP

View File

@@ -0,0 +1,13 @@
/* Zeta API - Z/classes/Unique.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_Unique_HPP
#define Z_classes_Unique_HPP
#endif // Z_classes_Unique_HPP

View File

@@ -0,0 +1,501 @@
/* Zeta API - Z/classes/XY.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_XY_HPP
#define Z_classes_XY_HPP
#include <Z/functions/math.hpp>
#ifdef Z_WITH_CG_GEOMETRY
# include <CoreGraphics/CGGeometry.h>
#endif
#if defined(Z_WITH_NS_GEOMETRY) && Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
# import <Foundation/NSGeometry.h>
#endif
#ifdef Z_WITH_COCOS2D_X
# include "cocos2d.h"
#endif
#ifdef Z_WITH_QT
# include <QPoint>
# include <QSize>
# include <QRect>
#endif
namespace Zeta {template <class t> struct XYZ;}
namespace Zeta {template <class t> struct XY {
t x, y;
Z_INLINE XY() Z_NOTHROW Z_DEFAULTED({})
Z_CT(CPP11) XY(t x_, t y_) Z_NOTHROW
: x(x_), y(y_) {}
Z_CT(CPP11) XY(t xy) Z_NOTHROW
: x(xy), y(xy) {}
Z_CT(CPP11) XY(const XYZ<t> &xy) Z_NOTHROW
: x(xy.x), y(xy.y) {}
# if Z_DIALECT_HAS(CPP98, SFINAE) && \
Z_DIALECT_HAS(CPP11, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
template <class other_t, class e = typename TypeIf<!TypeIsSame<t, other_t>::value>::type>
Z_CT(CPP11) XY(const XY<other_t> &other) Z_NOTHROW
: x(t(other.x)), y(t(other.y)) {}
# endif
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return x != t(0) || y != t(0);}
friend Z_CT(CPP11) Boolean operator ==(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x == rhs.x && lhs.y == rhs.y;}
friend Z_CT(CPP11) Boolean operator !=(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x != rhs.x || lhs.y != rhs.y;}
friend Z_CT(CPP11) Boolean operator >=(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x >= rhs.x && lhs.y >= rhs.y;}
friend Z_CT(CPP11) Boolean operator <=(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x <= rhs.x && lhs.y <= rhs.y;}
friend Z_CT(CPP11) Boolean operator >(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x > rhs.x && lhs.y > rhs.y;}
friend Z_CT(CPP11) Boolean operator <(const XY &lhs, const XY &rhs) Z_NOTHROW
{return lhs.x < rhs.x && lhs.y < rhs.y;}
friend Z_CT(CPP11) XY operator +(const XY &lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs.x + rhs.x, lhs.y + rhs.y);}
friend Z_CT(CPP11) XY operator -(const XY &lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs.x - rhs.x, lhs.y - rhs.y);}
friend Z_CT(CPP11) XY operator *(const XY &lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs.x * rhs.x, lhs.y * rhs.y);}
friend Z_CT(CPP11) XY operator /(const XY &lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs.x / rhs.x, lhs.y / rhs.y);}
friend Z_CT(CPP11) Boolean operator ==(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x == rhs && lhs.y == rhs;}
friend Z_CT(CPP11) Boolean operator !=(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x != rhs || lhs.y != rhs;}
friend Z_CT(CPP11) Boolean operator >=(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x >= rhs && lhs.y >= rhs;}
friend Z_CT(CPP11) Boolean operator <=(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x <= rhs && lhs.y <= rhs;}
friend Z_CT(CPP11) Boolean operator >(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x > rhs && lhs.y > rhs;}
friend Z_CT(CPP11) Boolean operator <(const XY &lhs, t rhs) Z_NOTHROW
{return lhs.x < rhs && lhs.y < rhs;}
friend Z_CT(CPP11) XY operator +(const XY &lhs, t rhs) Z_NOTHROW
{return XY(lhs.x + rhs, lhs.y + rhs);}
friend Z_CT(CPP11) XY operator -(const XY &lhs, t rhs) Z_NOTHROW
{return XY(lhs.x - rhs, lhs.y - rhs);}
friend Z_CT(CPP11) XY operator *(const XY &lhs, t rhs) Z_NOTHROW
{return XY(lhs.x * rhs, lhs.y * rhs);}
friend Z_CT(CPP11) XY operator /(const XY &lhs, t rhs) Z_NOTHROW
{return XY(lhs.x / rhs, lhs.y / rhs);}
friend Z_CT(CPP11) Boolean operator ==(t lhs, const XY &rhs) Z_NOTHROW
{return lhs == rhs.x && lhs == rhs.y;}
friend Z_CT(CPP11) Boolean operator !=(t lhs, const XY &rhs) Z_NOTHROW
{return lhs != rhs.x || lhs != rhs.y;}
friend Z_CT(CPP11) Boolean operator >=(t lhs, const XY &rhs) Z_NOTHROW
{return lhs >= rhs.x && lhs >= rhs.y;}
friend Z_CT(CPP11) Boolean operator <=(t lhs, const XY &rhs) Z_NOTHROW
{return lhs <= rhs.x && lhs <= rhs.y;}
friend Z_CT(CPP11) Boolean operator >(t lhs, const XY &rhs) Z_NOTHROW
{return lhs > rhs.x && lhs > rhs.y;}
friend Z_CT(CPP11) Boolean operator <(t lhs, const XY &rhs) Z_NOTHROW
{return lhs < rhs.x && lhs < rhs.y;}
friend Z_CT(CPP11) XY operator +(t lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs + rhs.x, lhs + rhs.y);}
friend Z_CT(CPP11) XY operator *(t lhs, const XY &rhs) Z_NOTHROW
{return XY(lhs * rhs.x, lhs * rhs.y);}
Z_INLINE XY &operator +=(const XY &rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE XY &operator -=(const XY &rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE XY &operator *=(const XY &rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE XY &operator /=(const XY &rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_INLINE XY &operator +=(t rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE XY &operator -=(t rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE XY &operator *=(t rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE XY &operator /=(t rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_INLINE t operator [](UInt index) const Z_NOTHROW {return ((t *)this)[index];}
Z_INLINE t &operator [](UInt index) Z_NOTHROW {return ((t *)this)[index];}
Z_CT(CPP11) XY yx () const Z_NOTHROW {return XY(y, x);}
Z_CT(CPP11) XYZ<t> nxy(t n) const Z_NOTHROW {return XYZ<t>(n, x, y);}
Z_CT(CPP11) XYZ<t> nyx(t n) const Z_NOTHROW {return XYZ<t>(n, y, x);}
Z_CT(CPP11) XYZ<t> xny(t n) const Z_NOTHROW {return XYZ<t>(x, n, y);}
Z_CT(CPP11) XYZ<t> xyn(t n) const Z_NOTHROW {return XYZ<t>(x, y, n);}
Z_CT(CPP11) XYZ<t> ynx(t n) const Z_NOTHROW {return XYZ<t>(y, n, x);}
Z_CT(CPP11) XYZ<t> yxn(t n) const Z_NOTHROW {return XYZ<t>(y, x, n);}
Z_INLINE XY apply(t (* function)(t)) const Z_NOTHROW
{return XY(function(x), function(y));}
Z_CT(CPP11) XY clamp(const XY &minimum, const XY &maximum) const Z_NOTHROW
{
return XY(
Zeta::clamp<t>(x, minimum.x, maximum.x),
Zeta::clamp<t>(y, minimum.y, maximum.y));
}
Z_CT(CPP11) XY clamp(t minimum, t maximum) const Z_NOTHROW
{
return XY(
Zeta::clamp<t>(x, minimum, maximum),
Zeta::clamp<t>(y, minimum, maximum));
}
Z_CT(CPP11) t cross_product(const XY &other) const Z_NOTHROW
{return x * other.y - y * other.x;}
Z_CT(CPP11) t dot_product(const XY &other) const Z_NOTHROW
{return x * other.x + y * other.y;}
Z_CT(CPP11) XY fit(const XY &other) const Z_NOTHROW
{
return y / x > other.y / other.x
? XY(x * other.y / y, other.y)
: XY(other.x, y * other.x / x);
}
Z_CT(CPP11) Boolean has_zero() const Z_NOTHROW
{return x == t(0) || y == t(0);}
Z_CT(CPP11) t inner_maximum() const Z_NOTHROW
{return Zeta::maximum<t>(x, y);}
Z_CT(CPP11) t inner_middle() const Z_NOTHROW
{return (x + y) / t(2);}
Z_CT(CPP11) t inner_minimum() const Z_NOTHROW
{return Zeta::minimum<t>(x, y);}
Z_CT(CPP11) t inner_product() const Z_NOTHROW
{return x * y;}
Z_CT(CPP11) t inner_sum() const Z_NOTHROW
{return x + y;}
Z_CT(CPP11) Boolean is_zero() const Z_NOTHROW
{return x == t(0) && y == t(0);}
Z_CT(CPP11) XY maximum(const XY &other) const Z_NOTHROW
{return XY(Zeta::maximum<t>(x, other.x), Zeta::maximum<t>(y, other.y));}
Z_CT(CPP11) XY middle(const XY &other) const Z_NOTHROW
{return XY((x + other.x) / t(2), (y + other.y) / t(2));}
Z_CT(CPP11) XY minimum(const XY &other) const Z_NOTHROW
{return XY(Zeta::minimum<t>(x, other.x), Zeta::minimum<t>(y, other.y));}
Z_CT(CPP11) t squared_length() const Z_NOTHROW
{return x * x + y * y;}
// MARK: - Signed
Z_CT(CPP11) XY absolute() const Z_NOTHROW
{return XY(Zeta::absolute<t>(x), Zeta::absolute<t>(y));}
Z_CT(CPP11) Boolean has_negative() const Z_NOTHROW
{return x < t(0) || y < t(0);}
Z_CT(CPP11) Boolean is_negative() const Z_NOTHROW
{return x < t(0) && y < t(0);}
Z_CT(CPP11) XY negative() const Z_NOTHROW
{return XY(-x, -y);}
// MARK: - Integer
// Z_CT(CPP11) Boolean is_perpendicular(const XY &other) const Z_NOTHROW
// {return !Zeta::absolute<t>(dot_product(other));}
// MARK: - Real
Z_CT(CPP11) XY clamp_01() const Z_NOTHROW
{return XY(Zeta::clamp_01<t>(x), Zeta::clamp_01<t>(y));}
Z_CT(CPP11) Boolean has_almost_zero() const Z_NOTHROW
{return Zeta::is_almost_zero<t>(x) || Zeta::is_almost_zero<t>(y);}
Z_CT(CPP11) Boolean has_finite() const Z_NOTHROW
{return Zeta::is_finite<t>(x) || Zeta::is_finite<t>(y);}
Z_CT(CPP11) Boolean has_infinity() const Z_NOTHROW
{return Zeta::is_infinity<t>(x) || Zeta::is_infinity<t>(y);}
Z_CT(CPP11) Boolean has_nan() const Z_NOTHROW
{return Zeta::is_nan<t>(x) || Zeta::is_nan<t>(y);}
Z_CT(CPP11) XY inverse_lerp(const XY &other, t v) const Z_NOTHROW
{
return XY(
Zeta::inverse_lerp<t>(x, other.x, v),
Zeta::inverse_lerp<t>(y, other.y, v));
}
Z_CT(CPP11) Boolean is_almost_equal(const XY &other) const Z_NOTHROW
{
return Zeta::are_almost_equal<t>(x, other.x) &&
Zeta::are_almost_equal<t>(y, other.y);
}
Z_CT(CPP11) Boolean is_almost_zero() const Z_NOTHROW
{return Zeta::is_almost_zero<t>(x) && Zeta::is_almost_zero<t>(y);}
Z_CT(CPP11) Boolean is_finite() const Z_NOTHROW
{return Zeta::is_finite<t>(x) && Zeta::is_finite<t>(y);}
Z_CT(CPP11) Boolean is_infinity() const Z_NOTHROW
{return Zeta::is_infinity<t>(x) && Zeta::is_infinity<t>(y);}
Z_CT(CPP11) Boolean is_nan() const Z_NOTHROW
{return Zeta::is_nan<t>(x) && Zeta::is_nan<t>(y);}
Z_CT(CPP11) Boolean is_perpendicular(const XY &other) const Z_NOTHROW
{return Zeta::absolute<t>(dot_product(other)) <= Type<t>::epsilon();}
Z_CT(CPP11) XY lerp(const XY &other, t v) const Z_NOTHROW
{
return XY(
Zeta::lerp<t>(x, other.x, v),
Zeta::lerp<t>(y, other.y, v));
}
Z_CT(CPP11) XY reciprocal() const Z_NOTHROW
{return XY(t(1) / x, t(1) / y);}
# if defined(Z_WITH_CG_GEOMETRY) || defined(Z_WITH_NS_GEOMETRY)
# define Z__APPLE_CONSTRUCTORS(Prefix) \
\
Z_CT(CPP11) XY(const Prefix##Point &point) Z_NOTHROW \
: x(point.x), y(point.y) {} \
\
\
Z_CT(CPP11) XY(const Prefix##Size &size) Z_NOTHROW \
: x(size.width), y(size.height) {}
# if Z_DIALECT_HAS(CPP11, COPY_LIST_INITIALIZATION)
# define Z__APPLE_OPERATORS(Prefix) \
\
Z_CT(CPP11) operator Prefix##Point() const Z_NOTHROW \
{return {CGFloat(x), CGFloat(y)};} \
\
\
Z_CT(CPP11) operator Prefix##Size() const Z_NOTHROW \
{return {CGFloat(x), CGFloat(y)};} \
\
\
Z_CT(CPP11) operator Prefix##Rect() const Z_NOTHROW \
{return {{0.0, 0.0}, {CGFloat(x), CGFloat(y)}};}
# else
# define Z__APPLE_OPERATORS(Prefix) \
\
Z_CT(CPP14) operator Prefix##Point() const Z_NOTHROW \
{ \
Prefix##Point result = {CGFloat(x), CGFloat(y)}; \
return result; \
} \
\
\
Z_CT(CPP14) operator Prefix##Size() const Z_NOTHROW \
{ \
Prefix##Size result = {CGFloat(x), CGFloat(y)}; \
return result; \
} \
\
\
Z_CT(CPP14) operator Prefix##Rect() const Z_NOTHROW \
{ \
Prefix##Rect result = {CGFloat(0), CGFloat(0), CGFloat(x), CGFloat(y)}; \
return result; \
}
# endif
# ifdef Z_WITH_CG_GEOMETRY
Z__APPLE_CONSTRUCTORS(CG)
Z__APPLE_OPERATORS (CG)
# endif
# if defined(Z_WITH_NS_GEOMETRY) && \
Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP) && \
(!defined(Z_WITH_CG_GEOMETRY) || \
!defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES) || \
!NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
Z__APPLE_CONSTRUCTORS(NS)
Z__APPLE_OPERATORS (NS)
# endif
# undef Z__APPLE_CONSTRUCTORS
# undef Z__APPLE_OPERATORS
# endif
# ifdef Z_WITH_COCOS2D_X
Z_CT(CPP11) XY(const cocos2d::Vec2 &point) Z_NOTHROW
: x(point.x), y(point.y) {}
Z_CT(CPP11) XY(const cocos2d::Size &size) Z_NOTHROW
: x(size.width), y(size.height) {}
Z_INLINE operator cocos2d::Vec2() const Z_NOTHROW
{return cocos2d::Vec2(float(x), float(y));}
Z_INLINE operator cocos2d::Size() const Z_NOTHROW
{return cocos2d::Size(float(x), float(y));}
Z_INLINE operator cocos2d::Rect() const Z_NOTHROW
{return cocos2d::Rect(0.0f, 0.0f, float(x), float(y));}
# endif
# ifdef Z_WITH_QT
Z_CT(CPP11) XY(const QPoint &point) Z_NOTHROW
: x(t(point.x())), y(t(point.y())) {}
Z_CT(CPP11) XY(const QSize &size) Z_NOTHROW
: x(t(size.width())), y(t(size.height())) {}
Z_CT(CPP11) operator QPoint() const Z_NOTHROW
{return QPoint(int(x), int(y));}
Z_CT(CPP11) operator QSize() const Z_NOTHROW
{return QSize(int(x), int(y));}
Z_CT(CPP11) operator QRect() const Z_NOTHROW
{return QRect(0, 0, int(x), int(y));}
# endif
};}
#ifndef Z_classes_XYZ_HPP
# include <Z/classes/XYZ.hpp>
#endif
#endif // Z_classes_XY_HPP

View File

@@ -0,0 +1,522 @@
/* Zeta API - Z/classes/XYZ.hpp
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_classes_XYZ_HPP
#define Z_classes_XYZ_HPP
#ifndef Z_classes_XY_HPP
# include <Z/classes/XY.hpp>
#endif
namespace Zeta {template <class t> struct XYZ {
t x, y, z;
Z_INLINE XYZ() Z_NOTHROW Z_DEFAULTED({})
Z_CT(CPP11) XYZ(t x_, t y_, t z_) Z_NOTHROW
: x(x_), y(y_), z(z_) {}
Z_CT(CPP11) XYZ(t x_, t y_) Z_NOTHROW
: x(x_), y(y_), z(t(0)) {}
Z_CT(CPP11) XYZ(t xyz) Z_NOTHROW
: x(xyz), y(xyz) {}
Z_CT(CPP11) XYZ(const XY<t> &xy) Z_NOTHROW
: x(xy.x), y(xy.y), z(t(0)) {}
Z_CT(CPP11) XYZ(const XY<t> &xy, t z_) Z_NOTHROW
: x(xy.x), y(xy.y), z(z_) {}
Z_CT(CPP11) XYZ(t x_, const XY<t> &yz) Z_NOTHROW
: x(x_), y(yz.x), z(yz.y) {}
# if Z_DIALECT_HAS(CPP98, SFINAE) && \
Z_DIALECT_HAS(CPP11, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
template <class other_t, class e = typename TypeIf<!TypeIsSame<t, other_t>::value>::type>
Z_CT(CPP11) XYZ(const XYZ<other_t> &other) Z_NOTHROW
: x(t(other.x)), y(t(other.y), x(t(other.z))) {}
# endif
Z_CT(CPP11) operator Boolean() const Z_NOTHROW
{return x != t(0) || y != t(0) || z != t(0);}
friend Z_CT(CPP11) Boolean operator ==(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z;}
friend Z_CT(CPP11) Boolean operator !=(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x != rhs.x || lhs.y != rhs.y || lhs.z != rhs.z;}
friend Z_CT(CPP11) Boolean operator >=(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x >= rhs.x && lhs.y >= rhs.y && lhs.z >= rhs.z;}
friend Z_CT(CPP11) Boolean operator <=(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x <= rhs.x && lhs.y <= rhs.y && lhs.z <= rhs.z;}
friend Z_CT(CPP11) Boolean operator >(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x > rhs.x && lhs.y > rhs.y && lhs.z > rhs.z;}
friend Z_CT(CPP11) Boolean operator <(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x < rhs.x && lhs.y < rhs.y && lhs.z < rhs.z;}
friend Z_CT(CPP11) XYZ operator +(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z);}
friend Z_CT(CPP11) XYZ operator -(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);}
friend Z_CT(CPP11) XYZ operator *(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z);}
friend Z_CT(CPP11) XYZ operator /(const XYZ &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x / rhs.x, lhs.y / rhs.y, lhs.z / rhs.z);}
friend Z_CT(CPP11) Boolean operator ==(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x == rhs && lhs.y == rhs && lhs.z == rhs;}
friend Z_CT(CPP11) Boolean operator !=(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x != rhs || lhs.y != rhs || lhs.z != rhs;}
friend Z_CT(CPP11) Boolean operator >=(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x >= rhs && lhs.y >= rhs && lhs.z >= rhs;}
friend Z_CT(CPP11) Boolean operator <=(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x <= rhs && lhs.y <= rhs && lhs.z <= rhs;}
friend Z_CT(CPP11) Boolean operator >(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x > rhs && lhs.y > rhs && lhs.z > rhs;}
friend Z_CT(CPP11) Boolean operator <(const XYZ &lhs, t rhs) Z_NOTHROW
{return lhs.x < rhs && lhs.y < rhs && lhs.z < rhs;}
friend Z_CT(CPP11) XYZ operator +(const XYZ &lhs, t rhs) Z_NOTHROW
{return XYZ(lhs.x + rhs, lhs.y + rhs, lhs.z + rhs);}
friend Z_CT(CPP11) XYZ operator -(const XYZ &lhs, t rhs) Z_NOTHROW
{return XYZ(lhs.x - rhs, lhs.y - rhs, lhs.z - rhs);}
friend Z_CT(CPP11) XYZ operator *(const XYZ &lhs, t rhs) Z_NOTHROW
{return XYZ(lhs.x * rhs, lhs.y * rhs, lhs.z * rhs);}
friend Z_CT(CPP11) XYZ operator /(const XYZ &lhs, t rhs) Z_NOTHROW
{return XYZ(lhs.x / rhs, lhs.y / rhs, lhs.z / rhs);}
friend Z_CT(CPP11) Boolean operator ==(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs == rhs.x && lhs == rhs.y && lhs == rhs.z;}
friend Z_CT(CPP11) Boolean operator !=(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs != rhs.x || lhs != rhs.y || lhs != rhs.y;}
friend Z_CT(CPP11) Boolean operator >=(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs >= rhs.x && lhs >= rhs.y && lhs >= rhs.z;}
friend Z_CT(CPP11) Boolean operator <=(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs <= rhs.x && lhs <= rhs.y && lhs <= rhs.z;}
friend Z_CT(CPP11) Boolean operator >(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs > rhs.x && lhs > rhs.y && lhs > rhs.z;}
friend Z_CT(CPP11) Boolean operator <(t lhs, const XYZ &rhs) Z_NOTHROW
{return lhs < rhs.x && lhs < rhs.y && lhs < rhs.z;}
friend Z_CT(CPP11) XYZ operator +(t lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs + rhs.x, lhs + rhs.y, lhs + rhs.z);}
friend Z_CT(CPP11) XYZ operator *(t lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs * rhs.x, lhs * rhs.y, lhs * rhs.z);}
friend Z_CT(CPP11) Boolean operator ==(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == t(0);}
friend Z_CT(CPP11) Boolean operator !=(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x != rhs.x || lhs.y != rhs.y || lhs.z != t(0);}
friend Z_CT(CPP11) Boolean operator >=(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x >= rhs.x && lhs.y >= rhs.y && lhs.z >= t(0);}
friend Z_CT(CPP11) Boolean operator <=(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x <= rhs.x && lhs.y <= rhs.y && lhs.z <= t(0);}
friend Z_CT(CPP11) Boolean operator >(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x > rhs.x && lhs.y > rhs.y && lhs.z > t(0);}
friend Z_CT(CPP11) Boolean operator <(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return lhs.x < rhs.x && lhs.y < rhs.y && lhs.z < t(0);}
friend Z_CT(CPP11) XYZ operator +(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return XYZ(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z);}
friend Z_CT(CPP11) XYZ operator -(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return XYZ(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z);}
friend Z_CT(CPP11) XYZ operator *(const XYZ &lhs, const XY<t> &rhs) Z_NOTHROW
{return XYZ(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z, t(0));}
friend Z_CT(CPP11) Boolean operator ==(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x == rhs.x && lhs.y == rhs.y && rhs.z == t(0);}
friend Z_CT(CPP11) Boolean operator !=(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x != rhs.x || lhs.y != rhs.y || rhs.z != t(0);}
friend Z_CT(CPP11) Boolean operator >=(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x >= rhs.x && lhs.y >= rhs.y && t(0) >= rhs.z;}
friend Z_CT(CPP11) Boolean operator <=(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x <= rhs.x && lhs.y <= rhs.y && t(0) <= rhs.z;}
friend Z_CT(CPP11) Boolean operator >(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x > rhs.x && lhs.y > rhs.y && t(0) > rhs.z;}
friend Z_CT(CPP11) Boolean operator <(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return lhs.x < rhs.x && lhs.y < rhs.y && t(0) < rhs.z;}
friend Z_CT(CPP11) XYZ operator +(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x + rhs.x, lhs.y + rhs.y, rhs.z);}
friend Z_CT(CPP11) XYZ operator *(const XY<t> &lhs, const XYZ &rhs) Z_NOTHROW
{return XYZ(lhs.x + rhs.x, lhs.y + rhs.y, rhs.z, t(0));}
Z_INLINE XYZ &operator +=(const XYZ &rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE XYZ &operator -=(const XYZ &rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE XYZ &operator *=(const XYZ &rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE XYZ &operator /=(const XYZ &rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_INLINE XYZ &operator +=(t rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE XYZ &operator -=(t rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE XYZ &operator *=(t rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE XYZ &operator /=(t rhs) Z_NOTHROW {return *this = *this / rhs;}
Z_INLINE XY<t> &operator +=(XY<t> rhs) Z_NOTHROW {return *this = *this + rhs;}
Z_INLINE XY<t> &operator -=(XY<t> rhs) Z_NOTHROW {return *this = *this - rhs;}
Z_INLINE XY<t> &operator *=(XY<t> rhs) Z_NOTHROW {return *this = *this * rhs;}
Z_INLINE t operator [](UInt index) const Z_NOTHROW {return ((t *)this)[index];}
Z_INLINE t &operator [](UInt index) Z_NOTHROW {return ((t *)this)[index];}
Z_CT(CPP11) XY<t> xy () const Z_NOTHROW {return XY<t>(x, y);}
Z_CT(CPP11) XY<t> xz () const Z_NOTHROW {return XY<t>(x, z);}
Z_CT(CPP11) XY<t> yx () const Z_NOTHROW {return XY<t>(y, x);}
Z_CT(CPP11) XY<t> yz () const Z_NOTHROW {return XY<t>(y, z);}
Z_CT(CPP11) XY<t> zx () const Z_NOTHROW {return XY<t>(z, x);}
Z_CT(CPP11) XY<t> zy () const Z_NOTHROW {return XY<t>(z, y);}
Z_CT(CPP11) XYZ xzy() const Z_NOTHROW {return XYZ(x, z, y);}
Z_CT(CPP11) XYZ yxz() const Z_NOTHROW {return XYZ(y, x, z);}
Z_CT(CPP11) XYZ yzx() const Z_NOTHROW {return XYZ(y, z, x);}
Z_CT(CPP11) XYZ zxy() const Z_NOTHROW {return XYZ(z, x, y);}
Z_CT(CPP11) XYZ zyx() const Z_NOTHROW {return XYZ(z, y, x);}
Z_INLINE XYZ apply(t (* function)(t)) const Z_NOTHROW
{return XYZ(function(x), function(y), function(z));}
Z_CT(CPP11) XYZ clamp(const XYZ &minimum, const XYZ &maximum) const Z_NOTHROW
{
return XYZ(
Zeta::clamp<t>(x, minimum.x, maximum.x),
Zeta::clamp<t>(y, minimum.y, maximum.y),
Zeta::clamp<t>(z, minimum.z, maximum.z));
}
Z_CT(CPP11) XYZ clamp(t minimum, t maximum) const Z_NOTHROW
{
return XYZ(
Zeta::clamp<t>(x, minimum, maximum),
Zeta::clamp<t>(y, minimum, maximum),
Zeta::clamp<t>(z, minimum, maximum));
}
Z_CT(CPP11) XYZ cross_product(const XYZ &other) const Z_NOTHROW
{
return XYZ(
y * other.z - z * other.y,
z * other.x - x * other.z,
x * other.y - y * other.x);
}
Z_CT(CPP11) t dot_product(const XYZ &other) const Z_NOTHROW
{return x * other.x + y * other.y + z * other.z;}
Z_CT(CPP11) XYZ fit(const XYZ &other) const Z_NOTHROW
{return XYZ(t(0));} /* TODO */
Z_CT(CPP11) Boolean has_zero() const Z_NOTHROW
{return x == t(0) || y == t(0) || z == t(0);}
Z_CT(CPP11) t inner_maximum() const Z_NOTHROW
{return Zeta::maximum<t>(Zeta::maximum<t>(x, y), z);}
Z_CT(CPP11) t inner_middle() const Z_NOTHROW
{return (x + y + z) / t(3);}
Z_CT(CPP11) t inner_minimum() const Z_NOTHROW
{return Zeta::minimum<t>(Zeta::minimum<t>(x, y), z);}
Z_CT(CPP11) t inner_product() const Z_NOTHROW
{return x * y * z;}
Z_CT(CPP11) t inner_sum() const Z_NOTHROW
{return x + y + z;}
Z_CT(CPP11) Boolean is_zero() const Z_NOTHROW
{return x == t(0) && y == t(0) && z == t(0);}
Z_CT(CPP11) XYZ maximum(const XYZ &other) const Z_NOTHROW
{
return XYZ(
Zeta::maximum<t>(x, other.x),
Zeta::maximum<t>(y, other.y),
Zeta::maximum<t>(z, other.z));
}
Z_CT(CPP11) XYZ middle(const XYZ &other) const Z_NOTHROW
{
return XYZ(
(x + other.x) / t(2),
(y + other.y) / t(2),
(z + other.z) / t(2));
}
Z_CT(CPP11) XYZ minimum(const XYZ &other) const Z_NOTHROW
{
return XYZ(
Zeta::minimum<t>(x, other.x),
Zeta::minimum<t>(y, other.y),
Zeta::minimum<t>(z, other.z));
}
/*Z_INLINE XYZ rotate_as_axes(XYZ<SInt8> rotation) const Z_NOTHROW
{
XYZ result = *this;
if ((rotation.x % 4) & 1) Zeta::swap<t>(&result.y, &result.z);
if ((rotation.y % 4) & 1) Zeta::swap<t>(&result.x, &result.z);
if ((rotation.z % 4) & 1) Zeta::swap<t>(&result.x, &result.y);
return result;
}*/
Z_CT(CPP11) t squared_length() const Z_NOTHROW
{return x * x + y * y + z * z;}
// MARK: - Signed
Z_CT(CPP11) XYZ absolute() const Z_NOTHROW
{
return XYZ(
Zeta::absolute<t>(x),
Zeta::absolute<t>(y),
Zeta::absolute<t>(z));
}
Z_CT(CPP11) Boolean has_negative() const Z_NOTHROW
{return x < t(0) || y < t(0) || z < t(0);}
Z_CT(CPP11) Boolean is_negative() const Z_NOTHROW
{return x < t(0) && y < t(0) && z < t(0);}
Z_CT(CPP11) XYZ negative() const Z_NOTHROW
{return XYZ(-x, -y, -z);}
// MARK: - Integer
//Z_CT(CPP11) Boolean is_perpendicular(const XYZ &other) const
// {return !Zeta::absolute<t>(dot_product(other));}
// MARK: - Real
Z_CT(CPP11) XYZ clamp_01() const Z_NOTHROW
{
return XYZ(
Zeta::clamp_01<t>(x),
Zeta::clamp_01<t>(y),
Zeta::clamp_01<t>(z));
}
Z_CT(CPP11) Boolean has_almost_zero() const Z_NOTHROW
{
return Zeta::is_almost_zero<t>(x) ||
Zeta::is_almost_zero<t>(y) ||
Zeta::is_almost_zero<t>(z);
}
Z_CT(CPP11) Boolean has_finite() const Z_NOTHROW
{
return Zeta::is_finite<t>(x) ||
Zeta::is_finite<t>(y) ||
Zeta::is_finite<t>(z);
}
Z_CT(CPP11) Boolean has_infinity() const Z_NOTHROW
{
return Zeta::is_infinity<t>(x) ||
Zeta::is_infinity<t>(y) ||
Zeta::is_infinity<t>(z);
}
Z_CT(CPP11) Boolean has_nan() const Z_NOTHROW
{
return Zeta::is_nan<t>(x) ||
Zeta::is_nan<t>(y) ||
Zeta::is_nan<t>(z);
}
Z_CT(CPP11) XYZ inverse_lerp(const XYZ &other, t v) const Z_NOTHROW
{
return XYZ(
Zeta::inverse_lerp<t>(x, other.x, v),
Zeta::inverse_lerp<t>(y, other.y, v),
Zeta::inverse_lerp<t>(z, other.z, v));
}
Z_CT(CPP11) Boolean is_almost_equal(const XYZ &other) const Z_NOTHROW
{
return Zeta::are_almost_equal<t>(x, other.x) &&
Zeta::are_almost_equal<t>(y, other.y) &&
Zeta::are_almost_equal<t>(z, other.z);
}
Z_CT(CPP11) Boolean is_almost_zero() const Z_NOTHROW
{
return Zeta::is_almost_zero<t>(x) &&
Zeta::is_almost_zero<t>(y) &&
Zeta::is_almost_zero<t>(z);
}
Z_CT(CPP11) Boolean is_finite() const Z_NOTHROW
{
return Zeta::is_finite<t>(x) &&
Zeta::is_finite<t>(y) &&
Zeta::is_finite<t>(z);
}
Z_CT(CPP11) Boolean is_infinity() const Z_NOTHROW
{
return Zeta::is_infinity<t>(x) &&
Zeta::is_infinity<t>(y) &&
Zeta::is_infinity<t>(z);
}
Z_CT(CPP11) Boolean is_nan() const Z_NOTHROW
{
return Zeta::is_nan<t>(x) &&
Zeta::is_nan<t>(y) &&
Zeta::is_nan<t>(z);
}
Z_CT(CPP11) Boolean is_perpendicular(const XYZ &other) const Z_NOTHROW
{return Zeta::absolute<t>(dot_product(other)) <= Type<t>::epsilon();}
Z_CT(CPP11) XYZ lerp(const XYZ &other, t v) const Z_NOTHROW
{
return XYZ(
Zeta::lerp<t>(x, other.x, v),
Zeta::lerp<t>(y, other.y, v),
Zeta::lerp<t>(z, other.z, v));
}
Z_CT(CPP11) XYZ reciprocal() const Z_NOTHROW
{return XYZ(t(1) / x, t(1) / y, t(1) / z);}
};
}
#endif // Z_classes_XYZ_HPP

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/constants/boolean.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_constants_boolean_H
#define Z_constants_boolean_H
#ifndef TRUE
# define TRUE 1
#endif
#ifndef FALSE
# define FALSE 0
#endif
#endif /* Z_constants_boolean_H */

View File

@@ -0,0 +1,47 @@
/* Zeta API - Z/constants/build.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_constants_build_HPP
#define Z_constants_build_HPP
#include <Z/inspection/language.h>
#if Z_DIALECT_HAS_SPECIFIER(CPP11, CONSTEXPR)
namespace Zeta {enum {
build_year = (__DATE__[7] - '0') * 1000 + (__DATE__[ 8] - '0') * 100 +
(__DATE__[9] - '0') * 10 + (__DATE__[10] - '0'),
build_month = __DATE__[0] == 'J'
? (__DATE__[1] == 'a'
? 1
: (__DATE__[2] == 'n' ? 6 : 7))
: (__DATE__[0] == 'F'
? 2
: (__DATE__[0] == 'M'
? (__DATE__[2] == 'r' ? 3 : 5)
: (__DATE__[0] == 'A'
? (__DATE__[1] == 'p' ? 4 : 8)
: (__DATE__[0] == 'S'
? 9
: (__DATE__[0] == 'O'
? 10
: (__DATE__[0] == 'N' ? 11 : 12)))))),
build_day = (__DATE__[4] == ' '
? 0
: __DATE__[4] - '0') * 10 + (__DATE__[5] - '0'),
build_hour = (__TIME__[0] - '0') * 10 + (__TIME__[1] - '0'),
build_minutes = (__TIME__[3] - '0') * 10 + (__TIME__[4] - '0'),
build_seconds = (__TIME__[6] - '0') * 10 + (__TIME__[7] - '0')
};}
#endif
#endif /* Z_constants_build_HPP */

View File

@@ -0,0 +1,968 @@
/* Zeta API - Z/constants/numbers.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_constants_numbers_H
#define Z_constants_numbers_H
/* MARK: - Irrational numbers */
#define Z_ALPHA /* α ~ Feigenbaum's α Constant */ 2.\
5029078750958928222839028732182157863812713767271499773361920567\
7923546317959020670329964974643383412959523186999585472394218237\
7785445179272863314993372578112163594879503744781260997380598671\
2397117373289276654044010306698313834600094139322364490657889951\
2205843172507873377463087853424285351988587500042358246918740820\
4281700901714823051821621619413199856066129382742649709844084470\
1008054549677936760888126446406885181552709324007542506497157047\
0475419932831783645332562415378693957125097066387979492654623137\
6745918909813116752434221110130913127837160951158341230841503716\
4997020224681219644081216686527458043026245782561067150138521821\
6449532543349873487413352795815351016583605455763513276501810781\
1948369459574850237398235452625632779475397269902012891516645793\
9420198920248803394051699686551494477396533876979741232354061781\
9896112494095990353128997733611849847377946108428833293833903950\
9008914086351525626803381414669279913310743349705143545201344643\
4264752001621384610729922641994332772918977769053802596851
#define Z_DELTA /* δ ~ Feigenbaum's δ Constant */ 4.\
6692016091029906718532038204662016172581855774757686327456513430\
0413433021131473713868974402394801381716598485518981513440862714\
2027932522312442988890890859944935463236713411532481714219947455\
6443658237932020095610583305754586176522220703854106467494942849\
8145339172620056875566595233987560382563722564800409510712838906\
1184470277585428541980111344017500242858538249833571552205223608\
7250291678860362674527213399057131606875345083433934446103706309\
4520191158769724322735898389037949462572512890979489867683346116\
2688911656312347446057517953912204556247280709520219819909455858\
1946136877445617396074115614074243754435499204869180982648652368\
4387027996490173977934251347238087371362116018601281861020563818\
1835409759847796417390032893617143215987824078977661439139576403\
7760537119096932066998361984288981837003229412030210655743295550\
3888458497370347275321219257069584140746618419819610061296401614\
8771294441590140546794180019813325337859249336588307045999993837\
5411726563553016862529032210862320550634510679399023341675
#define Z_DELTA_S /* δs ~ Silver Ratio */ 2.\
4142135623730950488016887242096980785696718753769480731766797379\
9073247846210703885038753432764157
#define Z_E /* e ~ Euler's Number */ 2.\
7182818284590452353602874713526624977572470936999595749669676277\
2407663035354759457138217852516642742746639193200305992181741359\
6629043572900334295260595630738132328627943490763233829880753195\
2510190115738341879307021540891499348841675092447614606680822648\
0016847741185374234544243710753907774499206955170276183860626133\
1384583000752044933826560297606737113200709328709127443747047230\
6969772093101416928368190255151086574637721112523897844250569536\
9677078544996996794686445490598793163688923009879312773617821542\
4999229576351482208269895193668033182528869398496465105820939239\
8294887933203625094431173012381970684161403970198376793206832823\
7646480429531180232878250981945581530175671736133206981125099618\
1881593041690351598888519345807273866738589422879228499892086805\
8257492796104841984443634632449684875602336248270419786232090021\
6099023530436994184914631409343173814364054625315209618369088870\
7016768396424378140592714563549061303107208510383750510115747704\
1718986106873969655212671546889570350354021234078498193343210681
#define Z_G /* G ~ Catalan's Constant */ 0.\
9159655941772190150546035149323841107741493742816721342664981196\
21763019776254769479356512926115106248574
#define Z_GAMMA /* γ ~ EulerMascheroni Constant */ 0.\
5772156649015328606065120900824024310421593359399235988057672348\
8486772677766467093694706329174674951463144724980708248096050401\
4486542836224173997644923536253500333742937337737673942792595258\
2470949160087352039481656708532331517766115286211995015079847937\
4508570574002992135478614669402960432542151905877553526733139925\
4012967420513754139549111685102807984234877587205038431093997361\
3725530608893312676001724795378367592713515772261027349291394079\
8430103417771778088154957066107501016191663340152278935867965497\
2520362128792265559536696281763887927268013243101047650596370394\
7394957638906572967929601009015125195950922243501409349871228247\
9497471956469763185066761290638110518241974448678363808617494551\
6989279230187739107294578155431600500218284409605377243420328547\
8367015177394398700302370339518328690001558193988042707411542227\
8197165230110735658339673487176504919418123000406546931429992977\
7956930310050308630341856980323108369164002589297089098548682577\
73642882539549258736295961332985747393023734388470703702844129
#define Z_OMEGA /* Ω ~ W(1) */ 0.\
5671432904097838729999686622103555497538157871865125081351310792\
2304579308668456669321944696175229455763802497286678978545235846\
5940072995608516439289994614311571492959803594376698474635606134\
2268461356989570453977624855707865877337063566333012384304556354\
2978608509015429081920856055752374819658465950807273089050157336\
1831596070667108039283918360149499646349348448317465915933636893\
3680971490856983717510093546792166747552889731475588925030572822\
4604865124854109688318448770433467727016574464765200627013360494\
8057883875774914635983034808686985627342099151198306130250270223\
7292838727216542426572698430693890685874829642167823425504200307\
1966795220895590936913343950051154949542716768789494702443830337\
8784002606637609098563645828787818795338304237475555696975428665\
6135480540090110477123732473016808842009334259193374301935466235\
3076567270975761218841385994442828002635250684447525596225061138\
7848128978427693880472920268889238516484753423844953902789609971\
1060547842212061361983111973376227976096491011771088137407049732
#define Z_P2 /* P₂ ~ Universal Parabolic Constant */ 2.\
2955871493926380740342980491894903875978322036385834839299753466\
4410966268413312668409442623789761559175
#define Z_PHI /* φ ~ Divine Proportion, Golden Ratio */ 1.\
6180339887498948482045868343656381177203091798057628621354486227\
0526046281890244970720720418939113748475408807538689175212663386\
2223536931793180060766726354433389086595939582905638322661319928\
2902678806752087668925017116962070322210432162695486262963136144\
3814975870122034080588795445474924618569536486444924104432077134\
4947049565846788509874339442212544877066478091588460749988712400\
7652170575179788341662562494075890697040002812104276217711177780\
5315317141011704666599146697987317613560067087480710131795236894\
2752194843530567830022878569978297783478458782289110976250030269\
6156170025046433824377648610283831268330372429267526311653392473\
1671112115881863851331620384005222165791286675294654906811317159\
9343235973494985090409476213222981017261070596116456299098162905\
5520852479035240602017279974717534277759277862561943208275051312\
1815628551222480939471234145170223735805772786160086883829523045\
9264787801788992199027077690389532196819861514378031499741106926\
0886742962267575605231727775203536139362107673893764556060605921
#define Z_PI /* π */ 3.\
1415926535897932384626433832795028841971693993751058209749445923\
0781640628620899862803482534211706798214808651328230664709384460\
9550582231725359408128481117450284102701938521105559644622948954\
9303819644288109756659334461284756482337867831652712019091456485\
6692346034861045432664821339360726024914127372458700660631558817\
4881520920962829254091715364367892590360011330530548820466521384\
1469519415116094330572703657595919530921861173819326117931051185\
4807446237996274956735188575272489122793818301194912983367336244\
0656643086021394946395224737190702179860943702770539217176293176\
7523846748184676694051320005681271452635608277857713427577896091\
7363717872146844090122495343014654958537105079227968925892354201\
9956112129021960864034418159813629774771309960518707211349999998\
3729780499510597317328160963185950244594553469083026425223082533\
4468503526193118817101000313783875288658753320838142061717766914\
7303598253490428755468731159562863882353787593751957781857780532\
1712268066130019278766111959092164201989380952572010654858632788
#define Z_RHO /* ρ ~ Plastic Number */ 1.\
3247179572447460259609088544780973407344040569017333645340150503\
0282785124554759405469934798178728032991092099474220742510890263\
9045897795594314757096723471754166839038867418751736931584253549\
9082466223545337273504589879909568150627745509802486213012169894\
1575245745486250756265246103689389048399322699520749759628288685\
5690815070451369610985335257728158603344114192782827376529603299\
3584674231028483241695239006108543338218508398101808957353870473\
9313439673137676460210316527688939639353259439924831031095839537\
7519426028877409271862033892820161525553218270947061305676123988\
9204637306571962977716886308761533248001117680731166845322774315\
6628996072663835722103634707098383715980223371021309824684908631\
2969366344392445007154150429000819030670589845339053468872874066\
1957756261670617642889193912308379183117162296038861476358807306\
3150974837675824592702890131950955155601228003859576154017842151\
7618
#define Z_TAU /* τ ~ ProuhetThueMorse Constant */ 0.\
412454033640107597783361
#define Z_ZETA_3 /* ζ(3) ~ Apéry's Constant */ 1.\
2020569031595942853997381615114499907649862923404988817922715553\
4183820578631309018645587360933525814619915779526071941849199599\
8673283213776396837207900161453941782949360066719191575522242494\
2439615639096641032911590957809655146512799184051057152559880154\
3710978110203982753256678760352233698494166181105701471577863949\
9737523785277937030956025701853182790003076547107563048843320869\
7115737423807934450316076253177145354444118311781822497185263570\
9182448998796203508335756172022603393785870328131267807990054177\
3486911525370656237057440966221712902627320732361492242913040528\
5553723410330775777980642420243048828152100091460265382206962715\
5202082274335001015294801198690117625951676366998171835575234880\
7037195557423472940835952088616662025728537558130792825864872821\
7370556619689895266201877681062920081779233813587682842641243243\
1480282173674506720693507626895304345939375032966363775750624733\
2399234828831077339052768020075798435679371150509005027366047114\
0085335034364672248565315181177661810922279191022488396800266606
#define Z_APERY_CONSTANT Z_ZETA_3
/* Bernstein's Constant */
#define Z_BERNSTEIN_CONSTANT 0.\
28016949902386913303643649123067200004248213981236
/* Cahen's constant */
#define Z_CAHEN_CONSTANT 0.\
6434105462883380261822543077575647632865878602682395059870309203\
0749277646183261084844089555046343195405372900995969467846947098\
1802430097780147073963456948247668586823491596555581306050580602\
6256306777475500425607601960884398861769982603193090004364305280\
6567338111342478976190975546079525373761160043883391348037160666\
7849974184079776825402840257413825951159592097430630557408812114\
4696101394340462070490073318995421946198637524805100624978738532\
6841116944408820095760047244297718746082273520598185316636923727\
6790472958772175441607432838562778155230454121621791172401531531\
8883239557424569302059076729469550847427091071937146523382004276\
6671376387740391112213044251840172373010457848486880087124078290\
1457449877274770249676563130590862156100889975149986642474501700\
5581154212587814616117557775789114686770822872829465693504467164\
0959525956030861979618867444196869756004609746414038853402815847\
5936540509205782123128626092476347619412226683926102068711744992\
8500177376751575327731991603831036751803975694669235336301908766
/* Conway's Constant */
#define Z_CONWAY_CONSTANT 1.\
3035772690342963912570991121525518907307025046594048757548613906\
2855088785246155712681576686442522555347139304709490268396284989\
3551554347375824856691088977770216576006666613618195758149971416\
2117477679231324299325720143046277132953880169252753163112124160\
2789744556311221192891765945442844221050348398443048435036597886\
1636568696122933005217967812127420727428338418585389780462975362\
1113325713155961142841646364930650685182742924915750807604716554\
8732899031406796262775210982301850098048676804171127036928277045\
5569925410472532552960023967416151761300757699523941470920962729\
7796525283812895292399842146646970063628087185984737643242596375\
3778614871491804177943882564549629612672676317034139989238683800\
1749933916383255041973874337640464423096341637734299996402795347\
7812315036938111361969193101105512224328065334872949851635350180\
0086189800442695696203908949639604105938945262628974848057200498\
9520589408315451152746418415125180247302001937967778366214066091\
1047529322875883638588769569619942051649976764376226646605546524
/* CopelandErdős Constant */
#define Z_COPELAND_ERDOS_CONSTANT 0.\
2357111317192329313741434753596167717379838997101103107109113127\
1311371391491511571631671731791811911931971992112232272292332392\
4125125726326927127728128329330731131331733133734734935335936737\
3379383389397401409419421431433439443449457461463467479487491499\
5035095215235415475575635695715775875935996016076136176196316416\
4364765365966167367768369170170971972773373974375175776176977378\
7797809811821823827829839853857859863877881883887907911919929937\
9419479539679719779839919971009101310191021103110331039104910511\
0611063106910871091109310971103110911171123112911511153116311711\
1811187119312011213121712231229123112371249125912771279128312891\
2911297130113031307131913211327136113671373138113991409142314271\
4291433143914471451145314591471148114831487148914931499151115231\
5311543154915531559156715711579158315971601160716091613161916211\
6271637165716631667166916931697169917091721172317331741174717531\
7591777178317871789180118111823183118471861186718711873187718791\
8891901190719131931193319491951197319791987199319971999200320112
/* Dubois-Raymond Constant */
#define Z_DUBOIS_RAYMOND_CONSTANT 0.\
1945280494653251136152137302875039065901577852759236620435639112\
6128689803952888169215624253956089738687658063273943306194230184\
6390636687239196106699038887450061447803705376851195665473775341\
0432909101348239341042021104911276174378712312707073399640646659\
4403538165050966894987036499348004765165375766040941184234739651\
4956779385722841561961636382301294169998230606424642604839452569\
4123319935614068634305323678131896475911139214742172930676438469\
3349287600077498007403753598564668470942599861444131812798597054\
7933095739935752164198846632305117558156194995005256891703382249\
3319463428079109321077886242460055967658105859758658736348984146\
7259992527092431598567842973511456278699178055257489684072513882\
2403821492552091058527972095893841735642638248904856731252070117\
6210793704693341271357851963226482022753143890006555463250692416\
7265132318157078023594405882897139317429953835226355968647936199\
7993536655407480626554885296765049525164840537710545438813154286\
2425019139361380724333725282493692938578755281217194719835697214
/* FransénRobinson Constant */
#define Z_FRANSEN_ROBINSON_CONSTANT 2.\
8077702420285193652215011865577729323080859209301982912200548095\
9710088912190166551018530816819663814187416434292647678607356834\
7830897012446742487764751667549180849932709220052990094447342952\
0658351475152131155061828050485818763476748076712998234216343271\
32839553888361830581061735321115429359987705
/* Froda Constant */
#define Z_FRODA_CONSTANT 6.\
5808859910179209708515424038864864915730774383480740051215126610\
3130504039582040980102991492610759196856156668455125548138339170\
3289202458856954899842363505373271623341799384794496221955199521\
9817257192218388867595645961802004143922594049488307254920458946\
8453227772258857709537332768570509596095271117425536510662899569\
7277185088450012821602790991199992049536662057550853887690385613\
7002632531317153051100200863766096686558637839580581513980142957\
7334256389687241990566392949483335138446018013413478388302980462\
1310697071249342564168139126312706622063772884318204059466632628\
8699565585079898698033973449949718559489634828335307265242104748\
2135319342734258054306012628140042042969387544936469490135496070\
6954953488235435685881195896105422830179666394139001710669418514\
8764432569707997421913960662789237104829140068449429415344843421\
6682628035399961925125252573981078131758341309762667123525922193\
5544343127146165493705806126785444366179457823420514254471624604\
1373218142284623260713740224396531435039076042586205557463472653
/* Gauss-Kuzmin-Wirsing Constant */
#define Z_GAUSS_KUZMIN_WIRSING_CONSTANT 0.\
3036630028987326585974481219015562331108773522536578951882454814\
6722699529424691098434081193436363681109827226371061693847461485\
9745801316065265381818237879132446139896476429740950446293759490\
4870297728772511058335175922044472408659119650778105589295791867\
1475292565364259184412178423449205725529426910040657788006767324\
30364396401389692767134073782286711534915435462112848419717968
/* Glaisher-Kinkelin Constant */
#define Z_GLAISHER_KINKELIN_CONSTANT 1.\
2824271291006226368753425688697917277676889273250011920637400217\
4040630885882646112973649195820237439420646120399000748933157791\
3627752804041590725738617275221433432714343978733506791525736685\
6907876561146686449997784962754518174312394652761282138081802192\
6451685154614391990108357373070350490388812341881367497813305093\
7708336822224941158748373480643999788300701255670012869941577054\
3205392758540581731588155481762970384743250467775147374600031616\
0230466132963429915580958792933634388728870198895346072523318470\
2489001091776941712153569193674967261270398013526526688689782188\
9740172937584075016747211489528881599666874316451389030696264559\
8704695437402530996068008424474175540614901894441393861960891296\
8217352879862988434220366989900606980888785849587494085307347117\
0901326675675033105234052210541417677615630819191999718523704776\
1312315374135304725819814797451761027540834943143849652341394533\
7306583232567395495760169225642773692635882169215987077585827469\
575162841550648585890834128227556209758
/* GolombDickman Constant */
#define Z_GOLOMB_DICKMAN_CONSTANT 0.\
6243299885435508709929363831008372441796426201805292869735519024\
9563808885511325446246027619553986886914041039406274314156555911\
8325420596284465847978987572474465109280189639441135184902499148\
4947232561121165840654419399681097868927028519012517369465
/* Khinchin-Lévy Constant */
#define Z_KHINCHIN_LEVY_CONSTANT 1.\
1865691104156254528217229759472371205683565364720543359542542986\
5280963205625444330034830110848687594663926374717514798866899462\
8858792892048589683500305263953652862648543238996756950630481767\
7137897971160075137260514827163656857323386723372834729020622716\
7397717492785936707669402534024864255657756897536580928012999629\
8097683768221776246950334807687137738646291848495287534547268657\
5981454718758041876163312814165488785235808196886092272054841330\
0497613271141838825016107202035985960092613178946519602806110533\
1471179799737169111649605099218023355663781315651819442304413647\
1107321421137880088845327720664931005413077138234468810688679034\
4040265903168814806991853006483510887007401837153184162772458809\
9463237501503333492577302701015075319588656808653915811854702488\
5109994793687122151974779482404010825711270498595566342029575930\
5048539691167157693662265797795733855688822243559909166408814653\
6378563759581862456361968781886906440464238011566830343822036684\
767237417945240901293641495989710341133651272953540904463262571
/* Lehmer's Constant */
#define Z_LEHMER_CONSTANT 0.\
5926327182016361971040786049957014690842754071971610710995626081\
5824735236416000851066478429710125705118718346542386963492602972\
0676068278560798719794374872514034030005836924869155386406146603\
4856682341215484563644664283093780498006899118318496569617201211\
3759470623436986514577152028677342172295805168234444776889445080\
5416320615585123236230643791702235207816036696392763427125248854\
5674262839723419486114155544111865660734792387798043466342553169\
2753922997364863485871218333767125332765552976528666126066185788\
7136229494030890319843139079584054789895099470074892500536563296\
9001766440856359838520947830182186895213784898496770578735653738\
5497593520672298603936207528576177510978795686629351912784453933\
5684548746146679936886718357439373791659084376165704157947507762\
0030956011574042760302493993921496419367417172065429695390317552\
6951535843439567271915190168880981717597249067581873559990538542\
6905758956901623071748479727018609084969996895767596082849838196\
9270404195036511309800972643309599823665
/* Lemniscate Constant */
#define Z_LEMNISCATE_CONSTANT 2.\
6220575542921198104648395898911194136827549514316231628168217038\
0079058707041425023029553296142909344613575267178321805560895690\
1393935694701119434775235840422641497164906951936899979932146072\
3831213908102062218974296008565545397723053695497102888883255264\
8702132901209754083312856851172975222921429669243051396845645553\
9432881415381331735108409226312132476667633414509988603429421479\
2247144879639078725641895218110272525166299643333846606793336350\
9313980852623773940914262648984803480457254147704617542125634212\
9955863129980224054609012091499139897885645312480971101149665075\
0605420938417238869000402747853896254830305803039463247832195583\
2552297303719134191898359219991422953667256910686113093813498072\
5552913015093730332611087045814240765781886530766932476940761626\
7216362495494800667609613881223224769255910187057757436146489128\
7983268666203073137331356210761263637924578580178136410536130609\
3563472025022592312041202668270457723044608378953311357002940577\
442011806826257962983642671092116198595
/* Lévy's Constant */
#define Z_LEVY_CONSTANT 3.\
2758229187218111597876818824538438636084755259823741494051989241\
9072321564496035518127754047917452949269852624340163332818980851\
1503417099708230466465646703708071290224186139594237720129817924\
2510876976149300288068249261705940412908086970544412349223798884\
4270897269164098355358548048374785828762526918445007643383703876\
7418844594203517000037321222306241936013409165748043544702217325\
9938222983822632339151552857798612046849447252148722901480936120\
8904543420920995199781624005150390513815387714754291393073946178\
0455278382777274148472215134988266729112154482704520186334876500\
1974618041826296536528801168151105751350871152301630294274883364\
6260993628966063363776317216508834801936111756326698411146757164\
6737885366090624367033259688737535781426541959925075527820545637\
1594070177616321153570559233923794384292709017743923016374406041\
2678496160747830990299680560833690479092323361110349271473790052\
5389549165714734199722931676646307641198327646538816962046346297\
332994286181358520050377154266892424005731518557308952871781294
/* Magata's Constant */
#define Z_MAGATA_CONSTANT 3.\
4070691656272561422194582628271806535540344380150321161910338275\
729699387
/* Mills' Constant */
#define Z_MILLS_CONSTANT 1.\
3063778838630806904686144926026057129167845851567136443680537599\
66434
/* Alfréd Rényi's Parking Constant */
#define Z_PARKING_CONSTANT 0.\
7475979202534114351787309438301781730247862640742283766042291634\
2516788160295440431243085036931411115
/* Porter's Constant */
#define Z_PORTER_CONSTANT 1.\
4670780794339754728977984847072299534499033224148877773996858176\
1660674432904480843036932751117401521266484679045379512110834380\
0963912989965561898768045389373100175492129255790244549548891509\
825064836565770339644748288818978123102459699275573160698353198
/* Wilbraham-Gibbs Constant */
#define Z_WILBRAHAM_GIBBS_CONSTANT 1.\
8519370519824661703610533701579913633458097289811549098047837818\
7698189016634835853271033650295475770168436164800715700937245079\
9901963934227232241416503636507478802775776040700542538704594703\
7548070012549126196000327078575312602462781280151598692712625156\
6580378191706570498191117142153830172868690950027668919698378356\
4878693375929431917536185883987328136153711174160053365028598892\
8906414670095488877382247112955736673406636533206353917604135172\
0391124030289113514513183861349292577441824075264760309052792077\
8214856022187181490425447150146363584277794711774661377560583998\
0813601589774035700341407559120370214113987005974964457642432794\
5717202979146195145875005521298368008394022754407873371890776002\
3337859174819734615441535401375520206534953637077479723223530762\
7711101354680926841172462714308267187960091741576168508046447756\
2945596278463818094505702063151083460862967611583842446423313950\
2651856882443995288504068180671418260092625808323715322324469000\
4091924289785349238396416174935955727240494968269552946845809079
/* MARK: - Irrational numbers (square roots) */
#define Z_SQUARE_ROOT_2 /* Pythagoras's Constant */ 1.\
4142135623730950488016887242096980785696718753769480731766797379\
9073247846210703885038753432764157273501384623091229702492483605\
5850737212644121497099935831413222665927505592755799950501152782\
0605714701095599716059702745345968620147285174186408891986095523\
2923048430871432145083976260362799525140798968725339654633180882\
9640620615258352395054745750287759961729835575220337531857011354\
3746034084988471603868999706990048150305440277903164542478230684\
9293691862158057846311159666871301301561856898723723528850926486\
1249497715421833420428568606014682472077143585487415565706967765\
3720226485447015858801620758474922657226002085584466521458398893\
9443709265918003113882464681570826301005948587040031864803421948\
9727829064104507263688131373985525611732204024509122770022694112\
7573627280495738108967504018369868368450725799364729060762996941\
3804756548237289971803268024744206292691248590521810044598421505\
9112024944134172853147810580360337107730918286931471017111168391\
6581726889419758716582152128229518488472089694633862891562882765
#define Z_SQUARE_ROOT_3 /* Theodorus' Constant */ 1.\
7320508075688772935274463415058723669428052538103806280558069794\
5193301690880003708114618675724857567562614141540670302996994509\
4998952478811655512094373648528093231902305582067974820101084674\
9232650153123432669033228866506722546689218379712270471316603678\
6158801904998653737985938946765034750657605075661834812960610094\
7602187190325083145829523959832997789824508288714463832917347224\
1639845878553976679580638183536661108431737808943783161020883055\
2490167002352071114428869599095636579708716849807289949329648428\
3020786408603988738697537582317317831395992983007838702877053913\
3695633121037072640192491067682311992883756411414220167427521023\
7299427083105989845947598766428889779614783795839022885485290357\
6033852808064381972344661059689722872865264153822664698420021195\
4841552784411812865345070351916500166892944154808460712771439997\
6292683462957743836189511012714863874697654598245178855097537901\
3880664961911962222957110555242923723192197738262561631468842032\
8537166829386496119170497388363954959381457576718533736331259108
#define Z_SQUARE_ROOT_5 2.\
2360679774997896964091736687312762354406183596115257242708972454\
1052092563780489941441440837878227496950817615077378350425326772\
4447073863586360121533452708866778173191879165811276645322639856\
5805357613504175337850034233924140644420864325390972525926272288\
7629951740244068161177590890949849237139072972889848208864154268\
9894099131693577019748678884425089754132956183176921499977424801\
5304341150359576683325124988151781394080005624208552435422355561\
0630634282023409333198293395974635227120134174961420263590473788\
5504389687061135660045757139956595566956917564578221952500060539\
2312340050092867648755297220567662536660744858535052623306784946\
3342224231763727702663240768010444331582573350589309813622634319\
8686471946989970180818952426445962034522141192232912598196325811\
1041704958070481204034559949435068555518555725123886416550102624\
3631257102444961878942468290340447471611545572320173767659046091\
8529575603577984398054155380779064393639723028756062999482213852\
1773485924535151210463455550407072278724215347787529112121211843
#define Z_SQUARE_ROOT_6 2.\
4494897427831780981972840747058913919659474806566701284326925672\
5096037745731502653985943310464023481859460122661418912485886545\
9837757341625783951237278552828912747527676571247630105270911770\
2234813106789866908536324433525456040338088089393745855678465747\
2436130414427027021617420183830008158980783801308970072869399363\
0837158094400800443738687549164514653939145012044726448133316293\
5109447418135132854950444661717266314254976483181245040115660453\
6459009343586167931983665666266909131906535863766105258156179366\
2361791102946720883545755128835529898324100558690205006415466124\
1173533994104310579928984673395325527873604182965517183039103678\
0038362316629732330282904977391047426360070512637697546888677006\
4099295592571732846450288809151442574630260295296323707552503422\
7559915454262812980030646720799424253022878426205340679478600465\
9693997993559754061671358654653456248208256276886369280941306372\
4335088648015724846337232447379545488144384793363700919741014778\
5232875591063159846078310367009535324726423167141887586237415065
#define Z_SQUARE_ROOT_7 2.\
6457513110645905905016157536392604257102591830824501803683344592\
0106882323028362776039288647454361061506457833849746309574352988\
8627214784427390555880107722717150729728323892299689594865087260\
7009780542037238280237159411003419391160015785255963059457410351\
5239680271640737379907404158151990440347431945367139973059700505\
1399692237545616097119027378154991633288287704000657570674651963\
4977520837938181146130908764737865956243305799479812816323070548\
3650107715617946361191553454536477494820593090494849834033989002\
1047861667332795036939246225717053716492578754832290732492671346\
9802989499080377482511092278955688979198088148340908316852513353\
5829539172211770714414974576907081989444441458972284741400303502\
3532037194870738262931851936409083228059646278376102195979419708\
9096354695861341181793067816213608491016778353212556334634900218\
9814604225592950366956241869273732771502208752309966469813203212\
8189454785680209506359624466285500761905041393504474371234885223\
3277362510045059621080672334698120004300514490251206257311759115
#define Z_SQUARE_ROOT_8 2.\
8284271247461900976033774484193961571393437507538961463533594759\
8146495692421407770077506865528314547002769246182459404984967211\
1701474425288242994199871662826445331855011185511599901002305564\
1211429402191199432119405490691937240294570348372817783972191046\
5846096861742864290167952520725599050281597937450679309266361765\
9281241230516704790109491500575519923459671150440675063714022708\
7492068169976943207737999413980096300610880555806329084956461369\
8587383724316115692622319333742602603123713797447447057701852972\
2498995430843666840857137212029364944154287170974831131413935530\
7440452970894031717603241516949845314452004171168933042916797787\
8887418531836006227764929363141652602011897174080063729606843897\
9455658128209014527376262747971051223464408049018245540045388225\
5147254560991476217935008036739736736901451598729458121525993882\
7609513096474579943606536049488412585382497181043620089196843011\
8224049888268345706295621160720674215461836573862942034222336783\
3163453778839517433164304256459036976944179389267725783125765531
#define Z_SQUARE_ROOT_10 3.\
1622776601683793319988935444327185337195551393252168268575048527\
9259443863923822134424810837930029518734728415284005514854885603\
0453880014690519596700153903344921657179259940659150153474113339\
4841240853169295770904715764610443692578790620378086099418283717\
1154840632855299911859682456420332696160469131433612894979189026\
6529543612676178781350061388186278580463683134952478031143769334\
6719738195131856784032312417954022183080458728446146002535775797\
0282864402902440797789603454398916334922265261206779265167603104\
8436697793756926155720500369894909469421850007358348844643882731\
1092891090423480542356534039072740197865437259396417260013069900\
0095578446310962679069441833613018130289454170331580773162638639\
5193793704654765220632063686587197822049312426053454111609356979\
8281324522970007988835237595853285792513629646865114976752171234\
5955923803937562512536985519495532509994703884399033646616547064\
7234999796132343403021857052187836676345789510732982875157945215\
7716521396263244383990184845609357626020316768042407958946934247
#define Z_SQUARE_ROOT_11 3.\
3166247903553998491149327366706866839270885455893535970586821461\
1648464260904384670884339912829065090701255784952745659227543978\
4857547479779324933044728847302873974828655682577394444612098044\
4771931123571441329715210988326604957100372485207381068208074875\
8396589499452515931529840068271971051828955724842455676637002050\
8129842236770597842039737427437130311226448688072317190977752062\
9616099310799036448345876084690325051455517093627372268267160321\
0207901919996927385750204334035187564780307139686203097819560584\
3725362410405466369580534808247443172811968386717118059036597033\
7448997202863169540371541080201902845827165665889629545544234863\
9548140847137804628618335608388738384826935918833704592147012515\
8427710904925025882797138714982167119273365512547126431962404617\
2648548926892536495944124838553075458386858642464148905256510508\
2976405813698950347726301882000479106251003209582933018375612614\
1859454774457145379132752736187749409863990889436652633890856923\
9596152811690656996164370695457708259448190021400820246857635105
#define Z_SQUARE_ROOT_12 3.\
4641016151377545870548926830117447338856105076207612561116139589\
0386603381760007416229237351449715135125228283081340605993989018\
9997904957623311024188747297056186463804611164135949640202169349\
8465300306246865338066457733013445093378436759424540942633207357\
2317603809997307475971877893530069501315210151323669625921220189\
5204374380650166291659047919665995579649016577428927665834694448\
3279691757107953359161276367073322216863475617887566322041766110\
4980334004704142228857739198191273159417433699614579898659296856\
6041572817207977477395075164634635662791985966015677405754107826\
7391266242074145280384982135364623985767512822828440334855042047\
4598854166211979691895197532857779559229567591678045770970580715\
2067705616128763944689322119379445745730528307645329396840042390\
9683105568823625730690140703833000333785888309616921425542879995\
2585366925915487672379022025429727749395309196490357710195075802\
7761329923823924445914221110485847446384395476525123262937684065\
7074333658772992238340994776727909918762915153437067472662518217
#define Z_SQUARE_ROOT_13 3.\
6055512754639892931192212674704959462512965738452462127104530562\
2716694829301044520461908201849071767351418202406354037603067826\
4697807705163017166892709757742690564274152633233830394962346944\
7962732299962880032688564272130721127331690722052975017855588384\
4481465386892107539539248256331024468283663873252869681018926331\
3049835539921621174410861805701512768903102881214399483179868380\
9191329034353620627951223336511358206979573836238526577606890679\
2609603184500630561512640198380725552254880439995068063909609144\
6317976289163564544719685392169068915669891846759739035394769849\
9962247909644289010644441276675481640212983715961814894472819793\
8173214447846457811396497056952460736874807030279572211614048803\
2881716595571961517619126745071133538732853360545103521380556650\
2555494587073292081260347734391582994367395751429587741287176131\
4898328491367481982288670670500887357298564518320813595755837452\
8748997770498225074491739486122149917346314129778530567936583385\
9084923735540651072975297023582252157988378502698942824546906255
#define Z_SQUARE_ROOT_14 3.\
7416573867739413855837487323165493017560198077787269463037454673\
2003515630693902797680989519437957150099108872775197754550656536\
8164242592660042052551835117407401124474858631911100015230402627\
9990638550213390300377330889721284945398105001694377593170299544\
7319506049992643849467871984350198478834312631025757959589728144\
9423640188510302034929081127343124602795306338103482722099939933\
1632325073523166184196678410645529042707896011422412228117857535\
3666229821592216114192712401401062892124966991333243644395454349\
5761495087928623919979989096898963145846865535325529594557326107\
0496315592433061044542370501975004465989191778372841899586982015\
8709794801887759510441696284709199101022413286189989722195565414\
2721715251914875629353000674583453673567421640048791525684582413\
4590381859339872060995709667653664064804204506068932544077875384\
0945992448071804734066289369704503299185073788343176149673387719\
4520482494319253841618179781624882985315814656755067051262017785\
5028030354711313419236714908509541918604246710579888794708646720
#define Z_SQUARE_ROOT_15 3.\
8729833462074168851792653997823996108329217052915908265875737661\
1348309193697903351928737685867351791630220686094964701318954043\
9163649615679891746121203511068754791013493581283919531228889292\
5658464170280625091931734126598648184554646285513159402626176726\
4050864630045057781063197288093978192518830035530153001074835443\
8098719014432460775585023104811717090606284157397581582901013330\
3274447305580667026371791243800477125912479424727638166001355365\
2722953567945703078465466105357724026016703376374906204296078718\
7206146764349685215198853426648827511094432134918227578894674852\
0940721921133583223212180500077532431298433832388736330198673631\
2508581503502850494110642412413006178631087545427595823501050197\
6880877132399945421214298433563187193571267457433965110883897630\
1514122678489583087574339802329960288316221061594612915860282464\
6477150647269610878726287509531568836209909087170850054933375711\
4169765329150875277299737911463436952970866868642440087090506787\
5857643721298543747329634589332214829062724155722750086355049105
#define Z_SQUARE_ROOT_17 4.\
1231056256176605498214098559740770251471992253736204343986335730\
9495434633762159358786365081068429668454404093921414161530142084\
0415868363079548145746906977677023266436240863087790567572385708\
2255213807325630838603091427498046719135293221479787181678157964\
7590608056549697390076672138368921210670892102900552026497699722\
7788461399259924591373145657819254743622377232515783073400662476\
8914608949933141024362794433862805526374750609050808692574826754\
0375757692746463166635103309681712291987419586443197105470595848\
5725931943603620656058152613585046428067872150064104914222367522\
2434867372580470377712749985665712185704321003036026065064871546\
9069828154684645956450344184993059763950907861995904333420778303\
6732466105002383305603648597891517738125149725101393295630516977\
3961561344837040214695495172837747751283320867754324793019645038\
5894596773652195702235648129282323237309165004475570946016572174\
9143175547451122718361635317492475624065195560022755934398822460\
4515186239457694121228445234277642559126704332598083584929486998
#define Z_SQUARE_ROOT_18 4.\
2426406871192851464050661726290942357090156261308442195300392139\
7219743538632111655116260298292471820504153869273689107477450816\
7552211637932364491299807494239667997782516778267399851503458346\
1817144103286799148179108236037905860441855522559226675958286569\
8769145292614296435251928781088398575422396906176018963899542648\
8921861845775057185164237250863279885189506725661012595571034063\
1238102254965414811606999120970144450916320833709493627434692054\
7881075586474173538933479000613903904685570696171170586552779458\
3748493146265500261285705818044047416231430756462246697120903296\
1160679456341047576404862275424767971678006256753399564375196681\
8331127797754009341647394044712478903017845761120095594410265846\
9183487192313521791064394121956576835196612073527368310068082338\
2720881841487214326902512055109605105352177398094187182288990824\
1414269644711869915409804074232618878073745771565430133795264517\
7336074832402518559443431741081011323192754860794413051333505174\
9745180668259276149746456384688555465416269083901588674688648297
#define Z_SQUARE_ROOT_19 4.\
3588989435406735522369819838596156591370039252324449368903441381\
5955732820315808565615915585194452690565862129827421362958399278\
3826117012156560836417469900977752918879405890061996715663120740\
2231024023243567359810484091999315007271878765601001355045664223\
6597215798755072654740213348140339529383325316877083080148213289\
2551238612636799418213993270206440885128549665158595212562962839\
7050658074438389410005683926884800608708853847459490888521365568\
2897687595213123671741821514292631858005215674427058607461711815\
5313027391249683899068318958451783502733357016401652084179746424\
9119887199195969203059693282567695404609647987775117895043783641\
5092493623204442923896243349974708299840429604797134370576918442\
5627972643810658724900993631178508595844998222091790883188614272\
7181833978529354535768671044286487630521371921331655648231766597\
9345008389213635130240253829821964016254338391921650785627655996\
5090650060052816150475689600376677031529536405227933016338897672\
3371709651582983076636407988920374740815704060472903563584299215
#define Z_SQUARE_ROOT_20 0.4\
4721359549995793928183473374625524708812367192230514485417944908\
2104185127560979882882881675756454993901635230154756700850653544\
8894147727172720243066905417733556346383758331622553290645279713\
1610715227008350675700068467848281288841728650781945051852544577\
5259903480488136322355181781899698474278145945779696417728308537\
9788198263387154039497357768850179508265912366353842999954849603\
0608682300719153366650249976303562788160011248417104870844711122\
1261268564046818666396586791949270454240268349922840527180947577\
1008779374122271320091514279913191133913835129156443905000121078\
4624680100185735297510594441135325073321489717070105246613569892\
6684448463527455405326481536020888663165146701178619627245268639\
7372943893979940361637904852891924069044282384465825196392651622\
2083409916140962408069119898870137111037111450247772833100205248\
7262514204889923757884936580680894943223091144640347535318092183\
7059151207155968796108310761558128787279446057512125998964427704\
3546971849070302420926911100814144557448430695575058224242423686
#define Z_SQUARE_ROOT_21 4.\
5825756949558400065880471937280084889844565767679719026072421239\
0686842554777088660436155949344503267760090539758574087331189917\
0755601963573863362344755370281722824427798191940596904914344920\
0907589407063891768364965598654748231477641506627774586518102302\
3617481540081394241092573936592199391754224118467149808042185260\
7864914105576957812554767761302518635256936196112241897810062910\
4930136394500794769783448686170875778719949754100133598746930349\
7232710675634826547407841963209655321589895494373754264061908665\
0298094580890976956617810617911595220000768142485134230665143669\
5554446605650313382719148849087683899267628798139136482473790088\
8189170796483375176737417000297190682904936268171676523400834394\
2339309104876265524351270370284614919106272664101521171992383656\
8917367993395211009062164895819102794521088994407788913640625972\
4578658417328751486109851757581404328234441664632974490001787377\
2961869702397214029105976389008894920760202937832728984606379406\
5965444919348178013459962365934780900907742704128997390722047147
#define Z_SQUARE_ROOT_22 4.\
6904157598234295545656301135444662805882283534117371536057018910\
1702463275323972148211559606154313535459589666150860748165195244\
0782925621666958709181664447500641262161250754928188331862529999\
9547606735605004577761471186401246176232605036362090494527493856\
8281756795270303532693227571317120606062561691541530323494743550\
5309200200713172534601558297417528194918298027430089141037481791\
4120990984295018191164831945523178805176328354177778500806080498\
3518565354318050021673153166262609016615771045384513239925669691\
2783671255846108434988804201553172568680512142690822589008911929\
7301919366967756643487865411179999979426852739982780774547630300\
0579761472344263648399737905839299334981849660115492759940947126\
7706320024001816123943437823342252060261602573061333660063214842\
6550799462989785932504639612108923454456269629026365378382391889\
5594959128764376806042909687553399184617386068557664784079261917\
5504341699503617915696514044517092560612721096824920432766881292\
5020851744085369494907976490160054424569362473428698311315235875
#define Z_SQUARE_ROOT_23 4.\
7958315233127195415974380641626939199967070419041293464853091144\
4825723590746408249219144643691886061747456324573686513392890392\
1230265488845783794334079664727569671653494343978434561416798721\
3151199128895631880449641132459392571845949603945392600435614646\
0202152486503532934363086274731937668011877025054737708513330390\
3772090443266178015016833535830415070486401794767454104791880465\
7855465617661756852445057646538971125395858740433006194113747360\
9109976350633040762876386724156939220008934770208711136596906907\
1990861472258832971773823771307619381379694156308798460488452356\
9769990440305484325289322905572397161711567767993108038428496669\
0265902454607543365705389368190995394922917929701618373910486985\
6969068133822070893274626509746898482482517803749584860075661414\
0813637335815377083815895114543027468556805151334525399288480358\
2656451880775953716880018678299314916241332339317904053586692241\
7622541983641096572858498556893157253685192802209028187428956944\
4281562508597976297795059510410340787752350836307895023173926977
#define Z_SQUARE_ROOT_24 4.\
8989794855663561963945681494117827839318949613133402568653851345\
0192075491463005307971886620928046963718920245322837824971773091\
9675514683251567902474557105657825495055353142495260210541823540\
4469626213579733817072648867050912080676176178787491711356931494\
4872260828854054043234840367660016317961567602617940145738798726\
1674316188801600887477375098329029307878290024089452896266632587\
0218894836270265709900889323434532628509952966362490080231320907\
2918018687172335863967331332533818263813071727532210516312358732\
4723582205893441767091510257671059796648201117380410012830932248\
2347067988208621159857969346790651055747208365931034366078207356\
0076724633259464660565809954782094852720141025275395093777354012\
8198591185143465692900577618302885149260520590592647415105006845\
5119830908525625960061293441598848506045756852410681358957200931\
9387995987119508123342717309306912496416512553772738561882612744\
8670177296031449692674464894759090976288769586727401839482029557\
0465751182126319692156620734019070649452846334283775172474830130
#define Z_SQUARE_ROOT_26 5.\
0990195135927848300282241090227819895637709460995964075849708044\
2593363206222419558834885109393200836119025824103991066143177934\
1121536299802772626119936813352008233924081586515180609436925028\
7447030884686971127028666876703708002538306916010980296796499813\
3725782012085081891373043872791237919529532543918015594903365133\
4616416621229877754192034707329287784925030350480663776842369164\
2206608812846886072692694659774903784270665608067219846088576469\
8177000874159382968970286250298437303308342881274293440653810033\
7555839668996596880738823334427411886019717837418375236363862704\
9538870426232971817793074424158421655398904669052096083958472252\
7934332766274069417122115976356457683023641465745914071502665841\
3008179744209425479832568063295040590668891451247346186873076700\
8181285605275121624649596800874882281186312691873623153426977207\
0381441088553192015422188300606801606467615769284725052746178827\
1991760051314186821205851032521784571148355455157794144107701300\
0658025436220535414630301094467472349730560558777566650504471075
#define Z_SQUARE_ROOT_27 5.\
1961524227066318805823390245176171008284157614311418841674209383\
5579905072640011124343856027174572702687842424622010908990983528\
4996857436434966536283120945584279695706916746203924460303254024\
7697950459370298007099686599520167640067655139136811413949811035\
8476405714995961213957816840295104251972815226985504438881830284\
2806561570975249437488571879498993369473524866143391498752041672\
4919537635661930038741914550609983325295213426831349483062649165\
7470501007056213343286608797286909739126150549421869847988945284\
9062359225811966216092612746951953494187978949023516108631161740\
1086899363111217920577473203046935978651269234242660502282563071\
1898281249317969537842796299286669338844351387517068656455871072\
8101558424193145917033983179069168618595792461467994095260063586\
4524658353235438596035211055749500500678832464425382138314319992\
8878050388873231508568533038144591624092963794735536565292613704\
1641994885735886668871331665728771169576593214787684894406526098\
5611500488159488357511492165091864878144372730155601208993777326
#define Z_SQUARE_ROOT_28 5.\
2915026221291811810032315072785208514205183661649003607366689184\
0213764646056725552078577294908722123012915667699492619148705977\
7254429568854781111760215445434301459456647784599379189730174521\
4019561084074476560474318822006838782320031570511926118914820703\
0479360543281474759814808316303980880694863890734279946119401010\
2799384475091232194238054756309983266576575408001315141349303926\
9955041675876362292261817529475731912486611598959625632646141096\
7300215431235892722383106909072954989641186180989699668067978004\
2095723334665590073878492451434107432985157509664581464985342693\
9605978998160754965022184557911377958396176296681816633705026707\
1659078344423541428829949153814163978888882917944569482800607004\
7064074389741476525863703872818166456119292556752204391958839417\
8192709391722682363586135632427216982033556706425112669269800437\
9629208451185900733912483738547465543004417504619932939626406425\
6378909571360419012719248932571001523810082787008948742469770446\
6554725020090119242161344669396240008601028980502412514623518230
#define Z_SQUARE_ROOT_29 5.\
3851648071345040312507104915403295562951201616447888376803886700\
1664596282765869287663378167983548441870482179394576060768862140\
1981555626953216728208924528671722526185214681235990013052448016\
2903887045278269438713694073940103168871959102567772596508381141\
9495584193980826348969417532613403641636123108887427654955512364\
7940365882555182273444125300757917124198604125931023584561198054\
4795418813126253107293509901068873371670605812467416799303885413\
8123742479087954547432014922688011360464232071011737861539855585\
7102081717617603810395080111264836278444280815314492214121131843\
6341076396213737228822837938481149242915346920084913077991373969\
7089097190833461405997944064288657397292411152297722381325560371\
7907312501357326363233051587278665098784329901442053725629656985\
9172449839218439790049969327370087099206683073256802774244092317\
5715419607139287353485337048180789528095729186886136682895069025\
3666940455803261056985599438152074440985243814914009730255209859\
5681681929637748409740639130952795240525758914068872104537046989
#define Z_SQUARE_ROOT_E 1.\
64872127070012814684865078781416357165377610071014801157507
#define Z_SQUARE_ROOT_PI 1.\
7724538509055160272981674833411451827975494561223871282138077898\
5291128459103218137495065673854466541622682362428257066623615286\
5724422602525093709602787068462037698653105122849925173028950826\
2289320953792679628001746390153514797205167001901852340185854469\
7449491264031392177552590621640541933250090639840761373347747515\
3433667989789365851836408795451165161738760059067393431791332809\
8548462481849020546548521956132515616474675150427387610561079961\
2710721006037204448367236529661370809432349883166842421384570960\
9120420427785778068694766570005218305685125413396636944654181510\
7166938833219429293570622688652244205421499480499207564863988748\
3850593064021821402928581123306497894520362114907896228738940324\
5978198513134871266512506293260044656382109675026812496930595420\
4615607619522173915250702077927580990543329006622230676144696612\
4818874306997883520506146444385418530797357425717918563595974995\
9952263849242203889103966406447293972841345043002140564233433039\
26175613417633632001703765416347632066927654181283576249032690
/* MARK: - Irrational numbers (cube roots) */
#define Z_CUBE_ROOT_2 1.\
2599210498948731647672106072782283505702514647015079800819751121\
5529967651395948372939656243625509415431025603561566525939902404\
0613737228459110304269355246960642616625000977474526565480306867\
1854055186892458725167641993737096950983827831613991551293136953\
6618394746344857657030311909589598474110598116290705359081647801\
1473521325484771297880242208582053257972526662202669005665608199\
4715628176405060664826773572670419486207621442965694205079319172\
4414809204482328401274703219642820812019057141889964599983175038\
0188868959420205592202115472997384880260736369741788779215798467\
5099539630078260959624203483238660139857363433909737126527995991\
9699683779131681681544288502796515292781076797140020406056748039\
3856125171835700690798499634197629147404483454026971547622851317\
8020643878047649322579052898467085805286258130005429388560720609\
7472230406313572349364584065759169169167270601244028967000010690\
8103531385290270041508423233623988938649678219414983802707295717\
6812879001445746227147702348357151905506722084818485009287239209
#define Z_CUBE_ROOT_3 1.\
4422495703074083823216383107801095883918692534993505775464161945\
4168759682999733985475547970564525668683508085448954996642542394\
6110259714868950157185237227090332023847598445061085540027260088\
1454988727513673553524678660747156884392233189182017038998238223\
3212961663550852626734913350166545489578817585527417559336313187\
4146720060463846664756937436419755574942490682081094267123590626\
5763689646373616178216558425874823856595235871903196104071395306\
0281028535084436380351945501338091522239078498975091939480365311\
9674345706233811941118355657692483200123107015915332930042827066\
6394443820480019012241818057851180278635499201489352352796818010\
9006236835327970373724614565173415353390990467105304156937690305\
1494958995216166591166333801954227266482814311818441716553576688\
1832140589503272799127928026983572135676304667631409826930968622\
4764941404644842887133087994684187000204561876902750330462036656\
4440717909119698039747478883802670722844748159482087239611601227\
1067171066612781813201108139530097227226661910705939909901191206
/* MARK: - Irrational numbers (other roots) */
#define Z_12TH_ROOT_2 1.\
0594630943592952645618252949463417007792043174941856285592084314\
5876164606325572238376837686394556900774076432638281736624173752\
0827851039644723985114271115432990470239714933804165425687642097\
6329379895947129709947064800938991173847686705520689400326781575\
1383303231319955390959014587484595500681806521772802362810455571\
3869553201754802640057179595879584537567829830020977379250053687\
4403398881937606323435254399006328830846125529480888721482330441\
4074184893108198509249979986687035709497917584337029863023761262\
5173981919008919366931298054535197982705358773565786048226460447\
3090968624372596272293682528044863570700171131799931049836732088\
9886403556920267157664120910549625751449398108864973818515174409\
2025177988784831666892332928201939743642078982338822600070557879\
0103964696887044937701555993149379866153352257152374614051434715\
9095506342399653920121443555462612297570882130516983593531956991\
7044
/* MARK: - Integer numbers */
#define Z_CARMACK_NUMBER 0x5F3759DF
#define Z_LOMONT_NUMBER 0x5F375A86
#endif /* Z_constants_numbers_H */

View File

@@ -0,0 +1,29 @@
/* Zeta API - Z/constants/pointer.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_constants_pointer_H
#define Z_constants_pointer_H
#ifdef Z_NULL /* defined by zlib */
# undef Z_NULL
#endif
#ifdef __cplusplus
# include <Z/inspection/language.h>
# if Z_DIALECT_HAS_LITERAL(CPP11, NULLPTR)
# define Z_NULL nullptr
# else
# define Z_NULL 0
# endif
#else
# define Z_NULL ((void *)0)
#endif
#endif /* Z_constants_pointer_H */

View File

@@ -0,0 +1,59 @@
/* Zeta API - Z/formats/archive/TAR.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_archive_TAR_H
#define Z_formats_archive_TAR_H
#include <Z/macros/language.h>
#include <Z/types/integral.h>
/* http://www.gnu.org/software/tar/manual/html_node/Standard.html */
#define Z_TAR_BLOCK_SIZE 512
Z_DEFINE_PACKED_STRUCTURE ({ /* byte offset */
zuint8 name[100]; /* 0 */
zuint8 mode[8]; /* 100 */
zuint8 uid[8]; /* 108 */
zuint8 gid[8]; /* 116 */
zuint8 size[12]; /* 124 */
zuint8 mtime[12]; /* 136 */
zuint8 checksum[8]; /* 148 */
zuint8 item_type; /* 156 */
zuint8 link_name[100]; /* 157 */
zuint8 magic[6]; /* 257 */
zuint8 version[2]; /* 263 */
zuint8 uname[32]; /* 265 */
zuint8 gname[32]; /* 297 */
zuint8 device_major[8]; /* 329 */
zuint8 device_minor[8]; /* 337 */
zuint8 prefix[155]; /* 345 */
/* 500 */
}, Z_TARPOSIXHeader);
typedef Z_TARPOSIXHeader Z_TARHeader;
#define Z_TAR_ITEM_TYPE_OLD_REGULAR_FILE 0
#define Z_TAR_ITEM_TYPE_REGULAR_FILE 0x30
#define Z_TAR_ITEM_TYPE_LINK 0x31
#define Z_TAR_ITEM_TYPE_SYMBOLIC_LINK 0x32
#define Z_TAR_ITEM_TYPE_CHARACTER_DEVICE 0x33
#define Z_TAR_ITEM_TYPE_BLOCK_DEVICE 0x34
#define Z_TAR_ITEM_TYPE_DIRECTORY 0x35
#define Z_TAR_ITEM_TYPE_FIFO 0x36
#define Z_TAR_ITEM_TYPE_CONTIGUOUS_FILE 0x37
#define Z_TAR_ITEM_TYPE_GNU_DIRECTORY_DUMP 'D' /* file names from dumped directory */
#define Z_TAR_ITEM_TYPE_GNU_LONG_LINK 'K' /* long link name */
#define Z_TAR_ITEM_TYPE_GNU_LONG_NAME 'L' /* long file name */
#define Z_TAR_ITEM_TYPE_GNU_MULTIVOLUME 'M' /* continuation of file from another volume */
#define Z_TAR_ITEM_TYPE_GNU_NAMES 'N' /* file name that does not fit into main hdr */
#define Z_TAR_ITEM_TYPE_GNU_SPARSE 'S' /* sparse file */
#define Z_TAR_ITEM_TYPE_GNU_VOLUME_HEADER 'V' /* tape/volume header */
#endif /* Z_formats_archive_TAR_H */

View File

@@ -0,0 +1,14 @@
/* Zeta API - Z/formats/archive/ZIP.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_archive_ZIP_H
#define Z_formats_archive_ZIP_H
#endif /* Z_formats_archive_ZIP_H */

View File

@@ -0,0 +1,141 @@
/* Zeta API - Z/formats/character set/ASCII.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_ASCII_H
#define Z_formats_character_set_ASCII_H
#define Z_ASCII_NULL 0x00
#define Z_ASCII_START_OF_HEADING 0x01
#define Z_ASCII_START_OF_TEXT 0x02
#define Z_ASCII_END_OF_TEXT 0x03
#define Z_ASCII_END_OF_TRANSMISSION 0x04
#define Z_ASCII_ENQUIRY 0x05
#define Z_ASCII_ACKNOWLEDGE 0x06
#define Z_ASCII_BELL 0x07
#define Z_ASCII_BACKSPACE 0x08
#define Z_ASCII_CHARACTER_TABULATION 0x09
#define Z_ASCII_LINE_FEED 0x0A
#define Z_ASCII_LINE_TABULATION 0x0B
#define Z_ASCII_FORM_FEED 0x0C
#define Z_ASCII_CARRIAGE_RETURN 0x0D
#define Z_ASCII_SHIFT_OUT 0x0E
#define Z_ASCII_SHIFT_IN 0x0F
#define Z_ASCII_DATA_LINK_ESCAPE 0x10
#define Z_ASCII_DEVICE_CONTROL_ONE 0x11
#define Z_ASCII_DEVICE_CONTROL_TWO 0x12
#define Z_ASCII_DEVICE_CONTROL_THREE 0x13
#define Z_ASCII_DEVICE_CONTROL_FOUR 0x14
#define Z_ASCII_NEGATIVE_ACKNOWLEDGE 0x15
#define Z_ASCII_SYNCHRONOUS_IDLE 0x16
#define Z_ASCII_END_OF_TRANSMISSION_BLOCK 0x17
#define Z_ASCII_CANCEL 0x18
#define Z_ASCII_END_OF_MEDIUM 0x19
#define Z_ASCII_SUBSTITUTE 0x1A
#define Z_ASCII_ESCAPE 0x1B
#define Z_ASCII_INFO_SEPARATOR_FOUR 0x1C
#define Z_ASCII_INFO_SEPARATOR_THREE 0x1D
#define Z_ASCII_INFO_SEPARATOR_TWO 0x1E
#define Z_ASCII_INFO_SEPARATOR_ONE 0x1F
#define Z_ASCII_SPACE 0x20
#define Z_ASCII_EXCLAMATION_MARK 0x21
#define Z_ASCII_QUOTATION_MARK 0x22
#define Z_ASCII_NUMBER_SIGN 0x23
#define Z_ASCII_DOLLAR_SIGN 0x24
#define Z_ASCII_PERCENT_SIGN 0x25
#define Z_ASCII_AMPERSAND 0x26
#define Z_ASCII_APOSTROPHE 0x27
#define Z_ASCII_LEFT_PARENTHESIS 0x28
#define Z_ASCII_RIGHT_PARENTHESIS 0x29
#define Z_ASCII_ASTERISK 0x2A
#define Z_ASCII_PLUS_SIGN 0x2B
#define Z_ASCII_COMMA 0x2C
#define Z_ASCII_HYPHEN_MINUS 0x2D
#define Z_ASCII_FULL_STOP 0x2E
#define Z_ASCII_SOLIDUS 0x2F
#define Z_ASCII_DIGIT_ZERO 0x30
#define Z_ASCII_DIGIT_ONE 0x31
#define Z_ASCII_DIGIT_TWO 0x32
#define Z_ASCII_DIGIT_THREE 0x33
#define Z_ASCII_DIGIT_FOUR 0x34
#define Z_ASCII_DIGIT_FIVE 0x35
#define Z_ASCII_DIGIT_SIX 0x36
#define Z_ASCII_DIGIT_SEVEN 0x37
#define Z_ASCII_DIGIT_EIGHT 0x38
#define Z_ASCII_DIGIT_NINE 0x39
#define Z_ASCII_COLON 0x3A
#define Z_ASCII_SEMICOLON 0x3B
#define Z_ASCII_LESS_THAN_SIGN 0x3C
#define Z_ASCII_EQUALS_SIGN 0x3D
#define Z_ASCII_GREATER_THAN_SIGN 0x3E
#define Z_ASCII_QUESTION_MARK 0x3F
#define Z_ASCII_COMMERCIAL_AT 0x40
#define Z_ASCII_LATIN_CAPITAL_LETTER_A 0x41
#define Z_ASCII_LATIN_CAPITAL_LETTER_B 0x42
#define Z_ASCII_LATIN_CAPITAL_LETTER_C 0x43
#define Z_ASCII_LATIN_CAPITAL_LETTER_D 0x44
#define Z_ASCII_LATIN_CAPITAL_LETTER_E 0x45
#define Z_ASCII_LATIN_CAPITAL_LETTER_F 0x46
#define Z_ASCII_LATIN_CAPITAL_LETTER_G 0x47
#define Z_ASCII_LATIN_CAPITAL_LETTER_H 0x48
#define Z_ASCII_LATIN_CAPITAL_LETTER_I 0x49
#define Z_ASCII_LATIN_CAPITAL_LETTER_J 0x4A
#define Z_ASCII_LATIN_CAPITAL_LETTER_K 0x4B
#define Z_ASCII_LATIN_CAPITAL_LETTER_L 0x4C
#define Z_ASCII_LATIN_CAPITAL_LETTER_M 0x4D
#define Z_ASCII_LATIN_CAPITAL_LETTER_N 0x4E
#define Z_ASCII_LATIN_CAPITAL_LETTER_O 0x4F
#define Z_ASCII_LATIN_CAPITAL_LETTER_P 0x50
#define Z_ASCII_LATIN_CAPITAL_LETTER_Q 0x51
#define Z_ASCII_LATIN_CAPITAL_LETTER_R 0x52
#define Z_ASCII_LATIN_CAPITAL_LETTER_S 0x53
#define Z_ASCII_LATIN_CAPITAL_LETTER_T 0x54
#define Z_ASCII_LATIN_CAPITAL_LETTER_U 0x55
#define Z_ASCII_LATIN_CAPITAL_LETTER_V 0x56
#define Z_ASCII_LATIN_CAPITAL_LETTER_W 0x57
#define Z_ASCII_LATIN_CAPITAL_LETTER_X 0x58
#define Z_ASCII_LATIN_CAPITAL_LETTER_Y 0x59
#define Z_ASCII_LATIN_CAPITAL_LETTER_Z 0x5A
#define Z_ASCII_LEFT_SQUARE_BRACKET 0x5B
#define Z_ASCII_REVERSE_SOLIDUS 0x5C
#define Z_ASCII_RIGHT_SQUARE_BRACKET 0x5D
#define Z_ASCII_CIRCUMFLEX_ACCENT 0x5E
#define Z_ASCII_LOW_LINE 0x5F
#define Z_ASCII_GRAVE_ACCENT 0x60
#define Z_ASCII_LATIN_SMALL_LETTER_A 0x61
#define Z_ASCII_LATIN_SMALL_LETTER_B 0x62
#define Z_ASCII_LATIN_SMALL_LETTER_C 0x63
#define Z_ASCII_LATIN_SMALL_LETTER_D 0x64
#define Z_ASCII_LATIN_SMALL_LETTER_E 0x65
#define Z_ASCII_LATIN_SMALL_LETTER_F 0x66
#define Z_ASCII_LATIN_SMALL_LETTER_G 0x67
#define Z_ASCII_LATIN_SMALL_LETTER_H 0x68
#define Z_ASCII_LATIN_SMALL_LETTER_I 0x69
#define Z_ASCII_LATIN_SMALL_LETTER_J 0x6A
#define Z_ASCII_LATIN_SMALL_LETTER_K 0x6B
#define Z_ASCII_LATIN_SMALL_LETTER_L 0x6C
#define Z_ASCII_LATIN_SMALL_LETTER_M 0x6D
#define Z_ASCII_LATIN_SMALL_LETTER_N 0x6E
#define Z_ASCII_LATIN_SMALL_LETTER_O 0x6F
#define Z_ASCII_LATIN_SMALL_LETTER_P 0x70
#define Z_ASCII_LATIN_SMALL_LETTER_Q 0x71
#define Z_ASCII_LATIN_SMALL_LETTER_R 0x72
#define Z_ASCII_LATIN_SMALL_LETTER_S 0x73
#define Z_ASCII_LATIN_SMALL_LETTER_T 0x74
#define Z_ASCII_LATIN_SMALL_LETTER_U 0x75
#define Z_ASCII_LATIN_SMALL_LETTER_V 0x76
#define Z_ASCII_LATIN_SMALL_LETTER_W 0x77
#define Z_ASCII_LATIN_SMALL_LETTER_X 0x78
#define Z_ASCII_LATIN_SMALL_LETTER_Y 0x79
#define Z_ASCII_LATIN_SMALL_LETTER_Z 0x7A
#define Z_ASCII_LEFT_CURLY_BRACKET 0x7B
#define Z_ASCII_VERTICAL_LINE 0x7C
#define Z_ASCII_RIGHT_CURLY_BRACKET 0x7D
#define Z_ASCII_TILDE 0x7E
#define Z_ASCII_DELETE 0x7F
#endif /* Z_formats_character_set_ASCII_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP437.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP437_H
#define Z_formats_character_set_DOS_CP437_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP437_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP437_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP437_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP437_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x8D
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP437_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP437_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x98
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP437_CENT_SIGN 0x9B
#define Z_DOS_CP437_POUND_SIGN 0x9C
#define Z_DOS_CP437_YEN_SIGN 0x9D
#define Z_DOS_CP437_PESETA_SIGN 0x9E
#define Z_DOS_CP437_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP437_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP437_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP437_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP437_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP437_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP437_REVERSED_NOT_SIGN 0xA9
#define Z_DOS_CP437_NOT_SIGN 0xAA
#define Z_DOS_CP437_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP437_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP437_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP437_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP437_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP437_LIGHT_SHADE 0xB0
#define Z_DOS_CP437_MEDIUM_SHADE 0xB1
#define Z_DOS_CP437_DARK_SHADE 0xB2
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP437_FULL_BLOCK 0xDB
#define Z_DOS_CP437_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP437_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP437_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP437_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP437_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP437_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP437_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP437_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP437_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP437_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP437_MICRO_SIGN 0xE6
#define Z_DOS_CP437_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP437_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP437_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP437_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP437_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP437_INFINITY 0xEC
#define Z_DOS_CP437_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP437_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP437_INTERSECTION 0xEF
#define Z_DOS_CP437_IDENTICAL_TO 0xF0
#define Z_DOS_CP437_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP437_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP437_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP437_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP437_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP437_DIVISION_SIGN 0xF6
#define Z_DOS_CP437_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP437_DEGREE_SIGN 0xF8
#define Z_DOS_CP437_BULLET_OPERATOR 0xF9
#define Z_DOS_CP437_MIDDLE_DOT 0xFA
#define Z_DOS_CP437_SQUARE_ROOT 0xFB
#define Z_DOS_CP437_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP437_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP437_BLACK_SQUARE 0xFE
#define Z_DOS_CP437_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP437_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(00EC), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00F2), _(00FB), _(00F9), \
_(00FF), _(00D6), _(00DC), _(00A2), _(00A3), _(00A5), _(20A7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(2310), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP437_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP737.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP737_H
#define Z_formats_character_set_DOS_CP737_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_ALPHA 0x80
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_BETA 0x81
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_GAMMA 0x82
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_DELTA 0x83
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_EPSILON 0x84
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_ZETA 0x85
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_ETA 0x86
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_THETA 0x87
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_IOTA 0x88
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_KAPPA 0x89
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_LAMDA 0x8A
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_MU 0x8B
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_NU 0x8C
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_XI 0x8D
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_OMICRON 0x8E
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_PI 0x8F
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_RHO 0x90
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_SIGMA 0x91
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_TAU 0x92
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_UPSILON 0x93
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_PHI 0x94
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_CHI 0x95
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_PSI 0x96
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_OMEGA 0x97
#define Z_DOS_CP737_GREEK_SMALL_LETTER_ALPHA 0x98
#define Z_DOS_CP737_GREEK_SMALL_LETTER_BETA 0x99
#define Z_DOS_CP737_GREEK_SMALL_LETTER_GAMMA 0x9A
#define Z_DOS_CP737_GREEK_SMALL_LETTER_DELTA 0x9B
#define Z_DOS_CP737_GREEK_SMALL_LETTER_EPSILON 0x9C
#define Z_DOS_CP737_GREEK_SMALL_LETTER_ZETA 0x9D
#define Z_DOS_CP737_GREEK_SMALL_LETTER_ETA 0x9E
#define Z_DOS_CP737_GREEK_SMALL_LETTER_THETA 0x9F
#define Z_DOS_CP737_GREEK_SMALL_LETTER_IOTA 0xA0
#define Z_DOS_CP737_GREEK_SMALL_LETTER_KAPPA 0xA1
#define Z_DOS_CP737_GREEK_SMALL_LETTER_LAMDA 0xA2
#define Z_DOS_CP737_GREEK_SMALL_LETTER_MU 0xA3
#define Z_DOS_CP737_GREEK_SMALL_LETTER_NU 0xA4
#define Z_DOS_CP737_GREEK_SMALL_LETTER_XI 0xA5
#define Z_DOS_CP737_GREEK_SMALL_LETTER_OMICRON 0xA6
#define Z_DOS_CP737_GREEK_SMALL_LETTER_PI 0xA7
#define Z_DOS_CP737_GREEK_SMALL_LETTER_RHO 0xA8
#define Z_DOS_CP737_GREEK_SMALL_LETTER_SIGMA 0xA9
#define Z_DOS_CP737_GREEK_SMALL_LETTER_FINAL_SIGMA 0xAA
#define Z_DOS_CP737_GREEK_SMALL_LETTER_TAU 0xAB
#define Z_DOS_CP737_GREEK_SMALL_LETTER_UPSILON 0xAC
#define Z_DOS_CP737_GREEK_SMALL_LETTER_PHI 0xAD
#define Z_DOS_CP737_GREEK_SMALL_LETTER_CHI 0xAE
#define Z_DOS_CP737_GREEK_SMALL_LETTER_PSI 0xAF
#define Z_DOS_CP737_LIGHT_SHADE 0xB0
#define Z_DOS_CP737_MEDIUM_SHADE 0xB1
#define Z_DOS_CP737_DARK_SHADE 0xB2
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP737_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP737_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP737_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP737_FULL_BLOCK 0xDB
#define Z_DOS_CP737_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP737_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP737_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP737_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP737_GREEK_SMALL_LETTER_OMEGA 0xE0
#define Z_DOS_CP737_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0xE1
#define Z_DOS_CP737_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0xE2
#define Z_DOS_CP737_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0xE3
#define Z_DOS_CP737_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0xE4
#define Z_DOS_CP737_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0xE5
#define Z_DOS_CP737_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0xE6
#define Z_DOS_CP737_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0xE7
#define Z_DOS_CP737_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0xE8
#define Z_DOS_CP737_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0xE9
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0xEA
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0xEB
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0xEC
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0xED
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0xEE
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0xEF
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0xF0
#define Z_DOS_CP737_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP737_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP737_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0xF4
#define Z_DOS_CP737_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0xF5
#define Z_DOS_CP737_DIVISION_SIGN 0xF6
#define Z_DOS_CP737_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP737_DEGREE_SIGN 0xF8
#define Z_DOS_CP737_BULLET_OPERATOR 0xF9
#define Z_DOS_CP737_MIDDLE_DOT 0xFA
#define Z_DOS_CP737_SQUARE_ROOT 0xFB
#define Z_DOS_CP737_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP737_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP737_BLACK_SQUARE 0xFE
#define Z_DOS_CP737_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP737_TO_UNICODE(_) \
_(0391), _(0392), _(0393), _(0394), _(0395), _(0396), _(0397), _(0398), \
_(0399), _(039A), _(039B), _(039C), _(039D), _(039E), _(039F), _(03A0), \
_(03A1), _(03A3), _(03A4), _(03A5), _(03A6), _(03A7), _(03A8), _(03A9), \
_(03B1), _(03B2), _(03B3), _(03B4), _(03B5), _(03B6), _(03B7), _(03B8), \
_(03B9), _(03BA), _(03BB), _(03BC), _(03BD), _(03BE), _(03BF), _(03C0), \
_(03C1), _(03C3), _(03C2), _(03C4), _(03C5), _(03C6), _(03C7), _(03C8), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03C9), _(03AC), _(03AD), _(03AE), _(03CA), _(03AF), _(03CC), _(03CD), \
_(03CB), _(03CE), _(0386), _(0388), _(0389), _(038A), _(038C), _(038E), \
_(038F), _(00B1), _(2265), _(2264), _(03AA), _(03AB), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP737_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP775.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP775_H
#define Z_formats_character_set_DOS_CP775_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x80
#define Z_DOS_CP775_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP775_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP775_LATIN_SMALL_LETTER_A_WITH_MACRON 0x83
#define Z_DOS_CP775_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP775_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x85
#define Z_DOS_CP775_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP775_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x87
#define Z_DOS_CP775_LATIN_SMALL_LETTER_L_WITH_STROKE 0x88
#define Z_DOS_CP775_LATIN_SMALL_LETTER_E_WITH_MACRON 0x89
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x8A
#define Z_DOS_CP775_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x8B
#define Z_DOS_CP775_LATIN_SMALL_LETTER_I_WITH_MACRON 0x8C
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x8D
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP775_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP775_LATIN_SMALL_LETTER_O_WITH_MACRON 0x93
#define Z_DOS_CP775_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x95
#define Z_DOS_CP775_CENT_SIGN 0x96
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x97
#define Z_DOS_CP775_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x98
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP775_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP775_POUND_SIGN 0x9C
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP775_MULTIPLICATION_SIGN 0x9E
#define Z_DOS_CP775_CURRENCY_SIGN 0x9F
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0xA0
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0xA1
#define Z_DOS_CP775_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0xA3
#define Z_DOS_CP775_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0xA4
#define Z_DOS_CP775_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0xA5
#define Z_DOS_CP775_RIGHT_DOUBLE_QUOTATION_MARK 0xA6
#define Z_DOS_CP775_BROKEN_BAR 0xA7
#define Z_DOS_CP775_COPYRIGHT_SIGN 0xA8
#define Z_DOS_CP775_REGISTERED_SIGN 0xA9
#define Z_DOS_CP775_NOT_SIGN 0xAA
#define Z_DOS_CP775_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP775_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0xAD
#define Z_DOS_CP775_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP775_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP775_LIGHT_SHADE 0xB0
#define Z_DOS_CP775_MEDIUM_SHADE 0xB1
#define Z_DOS_CP775_DARK_SHADE 0xB2
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0xB5
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_C_WITH_CARON 0xB6
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0xB7
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0xB8
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0xBD
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_S_WITH_CARON 0xBE
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0xC6
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0xC7
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0xCF
#define Z_DOS_CP775_LATIN_SMALL_LETTER_A_WITH_OGONEK 0xD0
#define Z_DOS_CP775_LATIN_SMALL_LETTER_C_WITH_CARON 0xD1
#define Z_DOS_CP775_LATIN_SMALL_LETTER_E_WITH_OGONEK 0xD2
#define Z_DOS_CP775_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0xD3
#define Z_DOS_CP775_LATIN_SMALL_LETTER_I_WITH_OGONEK 0xD4
#define Z_DOS_CP775_LATIN_SMALL_LETTER_S_WITH_CARON 0xD5
#define Z_DOS_CP775_LATIN_SMALL_LETTER_U_WITH_OGONEK 0xD6
#define Z_DOS_CP775_LATIN_SMALL_LETTER_U_WITH_MACRON 0xD7
#define Z_DOS_CP775_LATIN_SMALL_LETTER_Z_WITH_CARON 0xD8
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP775_FULL_BLOCK 0xDB
#define Z_DOS_CP775_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP775_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP775_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP775_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xE0
#define Z_DOS_CP775_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0xE2
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0xE3
#define Z_DOS_CP775_LATIN_SMALL_LETTER_O_WITH_TILDE 0xE4
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0xE5
#define Z_DOS_CP775_MICRO_SIGN 0xE6
#define Z_DOS_CP775_LATIN_SMALL_LETTER_N_WITH_ACUTE 0xE7
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0xE8
#define Z_DOS_CP775_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0xE9
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0xEA
#define Z_DOS_CP775_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0xEB
#define Z_DOS_CP775_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0xEC
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0xED
#define Z_DOS_CP775_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0xEE
#define Z_DOS_CP775_RIGHT_SINGLE_QUOTATION_MARK 0xEF
#define Z_DOS_CP775_SOFT_HYPHEN 0xF0
#define Z_DOS_CP775_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP775_LEFT_DOUBLE_QUOTATION_MARK 0xF2
#define Z_DOS_CP775_VULGAR_FRACTION_THREE_QUARTERS 0xF3
#define Z_DOS_CP775_PILCROW_SIGN 0xF4
#define Z_DOS_CP775_SECTION_SIGN 0xF5
#define Z_DOS_CP775_DIVISION_SIGN 0xF6
#define Z_DOS_CP775_DOUBLE_LOW_9_QUOTATION_MARK 0xF7
#define Z_DOS_CP775_DEGREE_SIGN 0xF8
#define Z_DOS_CP775_BULLET_OPERATOR 0xF9
#define Z_DOS_CP775_MIDDLE_DOT 0xFA
#define Z_DOS_CP775_SUPERSCRIPT_ONE 0xFB
#define Z_DOS_CP775_SUPERSCRIPT_THREE 0xFC
#define Z_DOS_CP775_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP775_BLACK_SQUARE 0xFE
#define Z_DOS_CP775_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP775_TO_UNICODE(_) \
_(0106), _(00FC), _(00E9), _(0101), _(00E4), _(0123), _(00E5), _(0107), \
_(0142), _(0113), _(0156), _(0157), _(012B), _(0179), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(014D), _(00F6), _(0122), _(00A2), _(015A), \
_(015B), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(00D7), _(00A4), \
_(0100), _(012A), _(00F3), _(017B), _(017C), _(017A), _(201D), _(00A6), \
_(00A9), _(00AE), _(00AC), _(00BD), _(00BC), _(0141), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(0104), _(010C), _(0118), \
_(0116), _(2563), _(2551), _(2557), _(255D), _(012E), _(0160), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(0172), _(016A), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(017D), \
_(0105), _(010D), _(0119), _(0117), _(012F), _(0161), _(0173), _(016B), \
_(017E), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(00D3), _(00DF), _(014C), _(0143), _(00F5), _(00D5), _(00B5), _(0144), \
_(0136), _(0137), _(013B), _(013C), _(0146), _(0112), _(0145), _(2019), \
_(00AD), _(00B1), _(201C), _(00BE), _(00B6), _(00A7), _(00F7), _(201E), \
_(00B0), _(2219), _(00B7), _(00B9), _(00B3), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP775_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP850.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP850_H
#define Z_formats_character_set_DOS_CP850_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP850_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP850_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP850_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP850_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP850_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP850_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP850_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP850_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP850_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x8D
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP850_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP850_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP850_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP850_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x98
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP850_POUND_SIGN 0x9C
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP850_MULTIPLICATION_SIGN 0x9E
#define Z_DOS_CP850_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP850_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP850_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP850_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP850_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP850_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP850_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP850_REGISTERED_SIGN 0xA9
#define Z_DOS_CP850_NOT_SIGN 0xAA
#define Z_DOS_CP850_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP850_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP850_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP850_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP850_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP850_LIGHT_SHADE 0xB0
#define Z_DOS_CP850_MEDIUM_SHADE 0xB1
#define Z_DOS_CP850_DARK_SHADE 0xB2
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0xB5
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0xB6
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0xB7
#define Z_DOS_CP850_COPYRIGHT_SIGN 0xB8
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP850_CENT_SIGN 0xBD
#define Z_DOS_CP850_YEN_SIGN 0xBE
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP850_LATIN_SMALL_LETTER_A_WITH_TILDE 0xC6
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0xC7
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP850_CURRENCY_SIGN 0xCF
#define Z_DOS_CP850_LATIN_SMALL_LETTER_ETH 0xD0
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_ETH 0xD1
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0xD2
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0xD3
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0xD4
#define Z_DOS_CP850_LATIN_SMALL_LETTER_DOTLESS_I 0xD5
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0xD6
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0xD7
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0xD8
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP850_FULL_BLOCK 0xDB
#define Z_DOS_CP850_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP850_BROKEN_BAR 0xDD
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0xDE
#define Z_DOS_CP850_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xE0
#define Z_DOS_CP850_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0xE2
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0xE3
#define Z_DOS_CP850_LATIN_SMALL_LETTER_O_WITH_TILDE 0xE4
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0xE5
#define Z_DOS_CP850_MICRO_SIGN 0xE6
#define Z_DOS_CP850_LATIN_SMALL_LETTER_THORN 0xE7
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_THORN 0xE8
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0xE9
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0xEA
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0xEB
#define Z_DOS_CP850_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0xEC
#define Z_DOS_CP850_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0xED
#define Z_DOS_CP850_MACRON 0xEE
#define Z_DOS_CP850_ACUTE_ACCENT 0xEF
#define Z_DOS_CP850_SOFT_HYPHEN 0xF0
#define Z_DOS_CP850_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP850_DOUBLE_LOW_LINE 0xF2
#define Z_DOS_CP850_VULGAR_FRACTION_THREE_QUARTERS 0xF3
#define Z_DOS_CP850_PILCROW_SIGN 0xF4
#define Z_DOS_CP850_SECTION_SIGN 0xF5
#define Z_DOS_CP850_DIVISION_SIGN 0xF6
#define Z_DOS_CP850_CEDILLA 0xF7
#define Z_DOS_CP850_DEGREE_SIGN 0xF8
#define Z_DOS_CP850_DIAERESIS 0xF9
#define Z_DOS_CP850_MIDDLE_DOT 0xFA
#define Z_DOS_CP850_SUPERSCRIPT_ONE 0xFB
#define Z_DOS_CP850_SUPERSCRIPT_THREE 0xFC
#define Z_DOS_CP850_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP850_BLACK_SQUARE 0xFE
#define Z_DOS_CP850_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP850_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(00EC), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00F2), _(00FB), _(00F9), \
_(00FF), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(00D7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(00AE), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(00C1), _(00C2), _(00C0), \
_(00A9), _(2563), _(2551), _(2557), _(255D), _(00A2), _(00A5), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(00E3), _(00C3), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(00A4), \
_(00F0), _(00D0), _(00CA), _(00CB), _(00C8), _(0131), _(00CD), _(00CE), \
_(00CF), _(2518), _(250C), _(2588), _(2584), _(00A6), _(00CC), _(2580), \
_(00D3), _(00DF), _(00D4), _(00D2), _(00F5), _(00D5), _(00B5), _(00FE), \
_(00DE), _(00DA), _(00DB), _(00D9), _(00FD), _(00DD), _(00AF), _(00B4), \
_(00AD), _(00B1), _(2017), _(00BE), _(00B6), _(00A7), _(00F7), _(00B8), \
_(00B0), _(00A8), _(00B7), _(00B9), _(00B3), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP850_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP852.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP852_H
#define Z_formats_character_set_DOS_CP852_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP852_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP852_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP852_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP852_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP852_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x85
#define Z_DOS_CP852_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x86
#define Z_DOS_CP852_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP852_LATIN_SMALL_LETTER_L_WITH_STROKE 0x88
#define Z_DOS_CP852_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x8A
#define Z_DOS_CP852_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x8B
#define Z_DOS_CP852_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x8D
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x8F
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x91
#define Z_DOS_CP852_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x92
#define Z_DOS_CP852_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP852_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x95
#define Z_DOS_CP852_LATIN_SMALL_LETTER_L_WITH_CARON 0x96
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x97
#define Z_DOS_CP852_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x98
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x9B
#define Z_DOS_CP852_LATIN_SMALL_LETTER_T_WITH_CARON 0x9C
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x9D
#define Z_DOS_CP852_MULTIPLICATION_SIGN 0x9E
#define Z_DOS_CP852_LATIN_SMALL_LETTER_C_WITH_CARON 0x9F
#define Z_DOS_CP852_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP852_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP852_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP852_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0xA4
#define Z_DOS_CP852_LATIN_SMALL_LETTER_A_WITH_OGONEK 0xA5
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0xA6
#define Z_DOS_CP852_LATIN_SMALL_LETTER_Z_WITH_CARON 0xA7
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0xA8
#define Z_DOS_CP852_LATIN_SMALL_LETTER_E_WITH_OGONEK 0xA9
#define Z_DOS_CP852_NOT_SIGN 0xAA
#define Z_DOS_CP852_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0xAB
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_C_WITH_CARON 0xAC
#define Z_DOS_CP852_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0xAD
#define Z_DOS_CP852_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP852_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP852_LIGHT_SHADE 0xB0
#define Z_DOS_CP852_MEDIUM_SHADE 0xB1
#define Z_DOS_CP852_DARK_SHADE 0xB2
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0xB5
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0xB6
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_E_WITH_CARON 0xB7
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0xB8
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0xBD
#define Z_DOS_CP852_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0xBE
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0xC6
#define Z_DOS_CP852_LATIN_SMALL_LETTER_A_WITH_BREVE 0xC7
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP852_CURRENCY_SIGN 0xCF
#define Z_DOS_CP852_LATIN_SMALL_LETTER_D_WITH_STROKE 0xD0
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0xD1
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_D_WITH_CARON 0xD2
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0xD3
#define Z_DOS_CP852_LATIN_SMALL_LETTER_D_WITH_CARON 0xD4
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_N_WITH_CARON 0xD5
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0xD6
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0xD7
#define Z_DOS_CP852_LATIN_SMALL_LETTER_E_WITH_CARON 0xD8
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP852_FULL_BLOCK 0xDB
#define Z_DOS_CP852_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0xDD
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0xDE
#define Z_DOS_CP852_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xE0
#define Z_DOS_CP852_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0xE2
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0xE3
#define Z_DOS_CP852_LATIN_SMALL_LETTER_N_WITH_ACUTE 0xE4
#define Z_DOS_CP852_LATIN_SMALL_LETTER_N_WITH_CARON 0xE5
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_S_WITH_CARON 0xE6
#define Z_DOS_CP852_LATIN_SMALL_LETTER_S_WITH_CARON 0xE7
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0xE8
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0xE9
#define Z_DOS_CP852_LATIN_SMALL_LETTER_R_WITH_ACUTE 0xEA
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0xEB
#define Z_DOS_CP852_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0xEC
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0xED
#define Z_DOS_CP852_LATIN_SMALL_LETTER_T_WITH_CEDILLA 0xEE
#define Z_DOS_CP852_ACUTE_ACCENT 0xEF
#define Z_DOS_CP852_SOFT_HYPHEN 0xF0
#define Z_DOS_CP852_DOUBLE_ACUTE_ACCENT 0xF1
#define Z_DOS_CP852_OGONEK 0xF2
#define Z_DOS_CP852_CARON 0xF3
#define Z_DOS_CP852_BREVE 0xF4
#define Z_DOS_CP852_SECTION_SIGN 0xF5
#define Z_DOS_CP852_DIVISION_SIGN 0xF6
#define Z_DOS_CP852_CEDILLA 0xF7
#define Z_DOS_CP852_DEGREE_SIGN 0xF8
#define Z_DOS_CP852_DIAERESIS 0xF9
#define Z_DOS_CP852_DOT_ABOVE 0xFA
#define Z_DOS_CP852_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0xFB
#define Z_DOS_CP852_LATIN_CAPITAL_LETTER_R_WITH_CARON 0xFC
#define Z_DOS_CP852_LATIN_SMALL_LETTER_R_WITH_CARON 0xFD
#define Z_DOS_CP852_BLACK_SQUARE 0xFE
#define Z_DOS_CP852_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP852_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(016F), _(0107), _(00E7), \
_(0142), _(00EB), _(0150), _(0151), _(00EE), _(0179), _(00C4), _(0106), \
_(00C9), _(0139), _(013A), _(00F4), _(00F6), _(013D), _(013E), _(015A), \
_(015B), _(00D6), _(00DC), _(0164), _(0165), _(0141), _(00D7), _(010D), \
_(00E1), _(00ED), _(00F3), _(00FA), _(0104), _(0105), _(017D), _(017E), \
_(0118), _(0119), _(00AC), _(017A), _(010C), _(015F), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(00C1), _(00C2), _(011A), \
_(015E), _(2563), _(2551), _(2557), _(255D), _(017B), _(017C), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(0102), _(0103), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(00A4), \
_(0111), _(0110), _(010E), _(00CB), _(010F), _(0147), _(00CD), _(00CE), \
_(011B), _(2518), _(250C), _(2588), _(2584), _(0162), _(016E), _(2580), \
_(00D3), _(00DF), _(00D4), _(0143), _(0144), _(0148), _(0160), _(0161), \
_(0154), _(00DA), _(0155), _(0170), _(00FD), _(00DD), _(0163), _(00B4), \
_(00AD), _(02DD), _(02DB), _(02C7), _(02D8), _(00A7), _(00F7), _(00B8), \
_(00B0), _(00A8), _(02D9), _(0171), _(0158), _(0159), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP852_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP855.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP855_H
#define Z_formats_character_set_DOS_CP855_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_DJE 0x80
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_DJE 0x81
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_GJE 0x82
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_GJE 0x83
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_IO 0x84
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_IO 0x85
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x86
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x87
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_DZE 0x88
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_DZE 0x89
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x8A
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x8B
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_YI 0x8C
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_YI 0x8D
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_JE 0x8E
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_JE 0x8F
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_LJE 0x90
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_LJE 0x91
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_NJE 0x92
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_NJE 0x93
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_TSHE 0x94
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_TSHE 0x95
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_KJE 0x96
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_KJE 0x97
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_SHORT_U 0x98
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x99
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_DZHE 0x9A
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_DZHE 0x9B
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_YU 0x9C
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_YU 0x9D
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x9E
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x9F
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_A 0xA0
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_A 0xA1
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_BE 0xA2
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_BE 0xA3
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_TSE 0xA4
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_TSE 0xA5
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_DE 0xA6
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_DE 0xA7
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_IE 0xA8
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_IE 0xA9
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_EF 0xAA
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_EF 0xAB
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_GHE 0xAC
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_GHE 0xAD
#define Z_DOS_CP855_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP855_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP855_LIGHT_SHADE 0xB0
#define Z_DOS_CP855_MEDIUM_SHADE 0xB1
#define Z_DOS_CP855_DARK_SHADE 0xB2
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_HA 0xB5
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_HA 0xB6
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_I 0xB7
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_I 0xB8
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_SHORT_I 0xBD
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_SHORT_I 0xBE
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_KA 0xC6
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_KA 0xC7
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP855_CURRENCY_SIGN 0xCF
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_EL 0xD0
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_EL 0xD1
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_EM 0xD2
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_EM 0xD3
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_EN 0xD4
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_EN 0xD5
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_O 0xD6
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_O 0xD7
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_PE 0xD8
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP855_FULL_BLOCK 0xDB
#define Z_DOS_CP855_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_PE 0xDD
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_YA 0xDE
#define Z_DOS_CP855_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_YA 0xE0
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_ER 0xE1
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_ER 0xE2
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_ES 0xE3
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_ES 0xE4
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_TE 0xE5
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_TE 0xE6
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_U 0xE7
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_U 0xE8
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_ZHE 0xE9
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_ZHE 0xEA
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_VE 0xEB
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_VE 0xEC
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0xED
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0xEE
#define Z_DOS_CP855_NUMERO_SIGN 0xEF
#define Z_DOS_CP855_SOFT_HYPHEN 0xF0
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_YERU 0xF1
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_YERU 0xF2
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_ZE 0xF3
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_ZE 0xF4
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_SHA 0xF5
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_SHA 0xF6
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_E 0xF7
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_E 0xF8
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_SHCHA 0xF9
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_SHCHA 0xFA
#define Z_DOS_CP855_CYRILLIC_SMALL_LETTER_CHE 0xFB
#define Z_DOS_CP855_CYRILLIC_CAPITAL_LETTER_CHE 0xFC
#define Z_DOS_CP855_SECTION_SIGN 0xFD
#define Z_DOS_CP855_BLACK_SQUARE 0xFE
#define Z_DOS_CP855_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP855_TO_UNICODE(_) \
_(0452), _(0402), _(0453), _(0403), _(0451), _(0401), _(0454), _(0404), \
_(0455), _(0405), _(0456), _(0406), _(0457), _(0407), _(0458), _(0408), \
_(0459), _(0409), _(045A), _(040A), _(045B), _(040B), _(045C), _(040C), \
_(045E), _(040E), _(045F), _(040F), _(044E), _(042E), _(044A), _(042A), \
_(0430), _(0410), _(0431), _(0411), _(0446), _(0426), _(0434), _(0414), \
_(0435), _(0415), _(0444), _(0424), _(0433), _(0413), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(0445), _(0425), _(0438), \
_(0418), _(2563), _(2551), _(2557), _(255D), _(0439), _(0419), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(043A), _(041A), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(00A4), \
_(043B), _(041B), _(043C), _(041C), _(043D), _(041D), _(043E), _(041E), \
_(043F), _(2518), _(250C), _(2588), _(2584), _(041F), _(044F), _(2580), \
_(042F), _(0440), _(0420), _(0441), _(0421), _(0442), _(0422), _(0443), \
_(0423), _(0436), _(0416), _(0432), _(0412), _(044C), _(042C), _(2116), \
_(00AD), _(044B), _(042B), _(0437), _(0417), _(0448), _(0428), _(044D), \
_(042D), _(0449), _(0429), _(0447), _(0427), _(00A7), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP855_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP857.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP857_H
#define Z_formats_character_set_DOS_CP857_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP857_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP857_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP857_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP857_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP857_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP857_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP857_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP857_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP857_LATIN_SMALL_LETTER_DOTLESS_I 0x8D
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP857_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP857_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP857_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x98
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP857_POUND_SIGN 0x9C
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x9E
#define Z_DOS_CP857_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x9F
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP857_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP857_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP857_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0xA6
#define Z_DOS_CP857_LATIN_SMALL_LETTER_G_WITH_BREVE 0xA7
#define Z_DOS_CP857_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP857_REGISTERED_SIGN 0xA9
#define Z_DOS_CP857_NOT_SIGN 0xAA
#define Z_DOS_CP857_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP857_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP857_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP857_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP857_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP857_LIGHT_SHADE 0xB0
#define Z_DOS_CP857_MEDIUM_SHADE 0xB1
#define Z_DOS_CP857_DARK_SHADE 0xB2
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0xB5
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0xB6
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0xB7
#define Z_DOS_CP857_COPYRIGHT_SIGN 0xB8
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP857_CENT_SIGN 0xBD
#define Z_DOS_CP857_YEN_SIGN 0xBE
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP857_LATIN_SMALL_LETTER_A_WITH_TILDE 0xC6
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0xC7
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP857_CURRENCY_SIGN 0xCF
#define Z_DOS_CP857_MASCULINE_ORDINAL_INDICATOR 0xD0
#define Z_DOS_CP857_FEMININE_ORDINAL_INDICATOR 0xD1
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0xD2
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0xD3
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0xD4
/* D5h undefined */
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0xD6
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0xD7
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0xD8
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP857_FULL_BLOCK 0xDB
#define Z_DOS_CP857_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP857_BROKEN_BAR 0xDD
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0xDE
#define Z_DOS_CP857_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xE0
#define Z_DOS_CP857_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0xE2
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0xE3
#define Z_DOS_CP857_LATIN_SMALL_LETTER_O_WITH_TILDE 0xE4
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0xE5
#define Z_DOS_CP857_MICRO_SIGN 0xE6
/* E7h undefined */
#define Z_DOS_CP857_MULTIPLICATION_SIGN 0xE8
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0xE9
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0xEA
#define Z_DOS_CP857_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0xEB
#define Z_DOS_CP857_LATIN_SMALL_LETTER_I_WITH_GRAVE 0xEC
#define Z_DOS_CP857_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0xED
#define Z_DOS_CP857_MACRON 0xEE
#define Z_DOS_CP857_ACUTE_ACCENT 0xEF
#define Z_DOS_CP857_SOFT_HYPHEN 0xF0
#define Z_DOS_CP857_PLUS_MINUS_SIGN 0xF1
/* F2h undefined */
#define Z_DOS_CP857_VULGAR_FRACTION_THREE_QUARTERS 0xF3
#define Z_DOS_CP857_PILCROW_SIGN 0xF4
#define Z_DOS_CP857_SECTION_SIGN 0xF5
#define Z_DOS_CP857_DIVISION_SIGN 0xF6
#define Z_DOS_CP857_CEDILLA 0xF7
#define Z_DOS_CP857_DEGREE_SIGN 0xF8
#define Z_DOS_CP857_DIAERESIS 0xF9
#define Z_DOS_CP857_MIDDLE_DOT 0xFA
#define Z_DOS_CP857_SUPERSCRIPT_ONE 0xFB
#define Z_DOS_CP857_SUPERSCRIPT_THREE 0xFC
#define Z_DOS_CP857_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP857_BLACK_SQUARE 0xFE
#define Z_DOS_CP857_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP857_TO_UNICODE(_, undefined) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(0131), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00F2), _(00FB), _(00F9), \
_(0130), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(015E), _(015F), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(011E), _(011F), \
_(00BF), _(00AE), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(00C1), _(00C2), _(00C0), \
_(00A9), _(2563), _(2551), _(2557), _(255D), _(00A2), _(00A5), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(00E3), _(00C3), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(00A4), \
_(00BA), _(00AA), _(00CA), _(00CB), _(00C8), undefined, _(00CD), _(00CE), \
_(00CF), _(2518), _(250C), _(2588), _(2584), _(00A6), _(00CC), _(2580), \
_(00D3), _(00DF), _(00D4), _(00D2), _(00F5), _(00D5), _(00B5), undefined, \
_(00D7), _(00DA), _(00DB), _(00D9), _(00EC), _(00FF), _(00AF), _(00B4), \
_(00AD), _(00B1), undefined, _(00BE), _(00B6), _(00A7), _(00F7), _(00B8), \
_(00B0), _(00A8), _(00B7), _(00B9), _(00B3), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP857_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP858.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP858_H
#define Z_formats_character_set_DOS_CP858_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP858_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP858_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP858_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP858_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP858_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP858_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP858_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP858_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP858_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x8D
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP858_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP858_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP858_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP858_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x98
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP858_POUND_SIGN 0x9C
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP858_MULTIPLICATION_SIGN 0x9E
#define Z_DOS_CP858_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP858_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP858_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP858_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP858_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP858_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP858_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP858_REGISTERED_SIGN 0xA9
#define Z_DOS_CP858_NOT_SIGN 0xAA
#define Z_DOS_CP858_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP858_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP858_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP858_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP858_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP858_LIGHT_SHADE 0xB0
#define Z_DOS_CP858_MEDIUM_SHADE 0xB1
#define Z_DOS_CP858_DARK_SHADE 0xB2
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0xB5
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0xB6
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0xB7
#define Z_DOS_CP858_COPYRIGHT_SIGN 0xB8
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP858_CENT_SIGN 0xBD
#define Z_DOS_CP858_YEN_SIGN 0xBE
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP858_LATIN_SMALL_LETTER_A_WITH_TILDE 0xC6
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0xC7
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP858_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP858_CURRENCY_SIGN 0xCF
#define Z_DOS_CP858_LATIN_SMALL_LETTER_ETH 0xD0
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_ETH 0xD1
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0xD2
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0xD3
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0xD4
#define Z_DOS_CP858_EURO_SIGN 0xD5
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0xD6
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0xD7
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0xD8
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP858_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP858_FULL_BLOCK 0xDB
#define Z_DOS_CP858_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP858_BROKEN_BAR 0xDD
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0xDE
#define Z_DOS_CP858_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xE0
#define Z_DOS_CP858_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0xE2
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0xE3
#define Z_DOS_CP858_LATIN_SMALL_LETTER_O_WITH_TILDE 0xE4
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0xE5
#define Z_DOS_CP858_MICRO_SIGN 0xE6
#define Z_DOS_CP858_LATIN_SMALL_LETTER_THORN 0xE7
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_THORN 0xE8
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0xE9
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0xEA
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0xEB
#define Z_DOS_CP858_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0xEC
#define Z_DOS_CP858_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0xED
#define Z_DOS_CP858_MACRON 0xEE
#define Z_DOS_CP858_ACUTE_ACCENT 0xEF
#define Z_DOS_CP858_SOFT_HYPHEN 0xF0
#define Z_DOS_CP858_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP858_DOUBLE_LOW_LINE 0xF2
#define Z_DOS_CP858_VULGAR_FRACTION_THREE_QUARTERS 0xF3
#define Z_DOS_CP858_PILCROW_SIGN 0xF4
#define Z_DOS_CP858_SECTION_SIGN 0xF5
#define Z_DOS_CP858_DIVISION_SIGN 0xF6
#define Z_DOS_CP858_CEDILLA 0xF7
#define Z_DOS_CP858_DEGREE_SIGN 0xF8
#define Z_DOS_CP858_DIAERESIS 0xF9
#define Z_DOS_CP858_MIDDLE_DOT 0xFA
#define Z_DOS_CP858_SUPERSCRIPT_ONE 0xFB
#define Z_DOS_CP858_SUPERSCRIPT_THREE 0xFC
#define Z_DOS_CP858_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP858_BLACK_SQUARE 0xFE
#define Z_DOS_CP858_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP858_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(00EC), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00F2), _(00FB), _(00F9), \
_(00FF), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(00D7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(00AE), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(00C1), _(00C2), _(00C0), \
_(00A9), _(2563), _(2551), _(2557), _(255D), _(00A2), _(00A5), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(00E3), _(00C3), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(00A4), \
_(00F0), _(00D0), _(00CA), _(00CB), _(00C8), _(20AC), _(00CD), _(00CE), \
_(00CF), _(2518), _(250C), _(2588), _(2584), _(00A6), _(00CC), _(2580), \
_(00D3), _(00DF), _(00D4), _(00D2), _(00F5), _(00D5), _(00B5), _(00FE), \
_(00DE), _(00DA), _(00DB), _(00D9), _(00FD), _(00DD), _(00AF), _(00B4), \
_(00AD), _(00B1), _(2017), _(00BE), _(00B6), _(00A7), _(00F7), _(00B8), \
_(00B0), _(00A8), _(00B7), _(00B9), _(00B3), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP858_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP860.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP860_H
#define Z_formats_character_set_DOS_CP860_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP860_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP860_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP860_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP860_LATIN_SMALL_LETTER_A_WITH_TILDE 0x84
#define Z_DOS_CP860_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x86
#define Z_DOS_CP860_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP860_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x89
#define Z_DOS_CP860_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x8B
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP860_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x8D
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x8E
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x8F
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x91
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x92
#define Z_DOS_CP860_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP860_LATIN_SMALL_LETTER_O_WITH_TILDE 0x94
#define Z_DOS_CP860_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x96
#define Z_DOS_CP860_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x98
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x99
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP860_CENT_SIGN 0x9B
#define Z_DOS_CP860_POUND_SIGN 0x9C
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x9D
#define Z_DOS_CP860_PESETA_SIGN 0x9E
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x9F
#define Z_DOS_CP860_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP860_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP860_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP860_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP860_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP860_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP860_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP860_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP860_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0xA9
#define Z_DOS_CP860_NOT_SIGN 0xAA
#define Z_DOS_CP860_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP860_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP860_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP860_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP860_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP860_LIGHT_SHADE 0xB0
#define Z_DOS_CP860_MEDIUM_SHADE 0xB1
#define Z_DOS_CP860_DARK_SHADE 0xB2
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP860_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP860_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP860_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP860_FULL_BLOCK 0xDB
#define Z_DOS_CP860_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP860_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP860_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP860_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP860_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP860_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP860_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP860_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP860_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP860_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP860_MICRO_SIGN 0xE6
#define Z_DOS_CP860_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP860_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP860_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP860_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP860_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP860_INFINITY 0xEC
#define Z_DOS_CP860_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP860_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP860_INTERSECTION 0xEF
#define Z_DOS_CP860_IDENTICAL_TO 0xF0
#define Z_DOS_CP860_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP860_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP860_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP860_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP860_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP860_DIVISION_SIGN 0xF6
#define Z_DOS_CP860_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP860_DEGREE_SIGN 0xF8
#define Z_DOS_CP860_BULLET_OPERATOR 0xF9
#define Z_DOS_CP860_MIDDLE_DOT 0xFA
#define Z_DOS_CP860_SQUARE_ROOT 0xFB
#define Z_DOS_CP860_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP860_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP860_BLACK_SQUARE 0xFE
#define Z_DOS_CP860_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP860_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E3), _(00E0), _(00C1), _(00E7), \
_(00EA), _(00CA), _(00E8), _(00CD), _(00D4), _(00EC), _(00C3), _(00C2), \
_(00C9), _(00C0), _(00C8), _(00F4), _(00F5), _(00F2), _(00DA), _(00F9), \
_(00CC), _(00D5), _(00DC), _(00A2), _(00A3), _(00D9), _(20A7), _(00D3), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(00D2), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP860_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP861.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP861_H
#define Z_formats_character_set_DOS_CP861_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP861_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP861_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP861_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP861_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP861_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP861_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP861_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP861_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP861_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP861_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_ETH 0x8B
#define Z_DOS_CP861_LATIN_SMALL_LETTER_ETH 0x8C
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_THORN 0x8D
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP861_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP861_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP861_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP861_LATIN_SMALL_LETTER_THORN 0x95
#define Z_DOS_CP861_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x97
#define Z_DOS_CP861_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x98
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP861_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP861_POUND_SIGN 0x9C
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP861_PESETA_SIGN 0x9E
#define Z_DOS_CP861_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP861_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP861_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP861_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP861_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0xA4
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0xA5
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0xA6
#define Z_DOS_CP861_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0xA7
#define Z_DOS_CP861_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP861_REVERSED_NOT_SIGN 0xA9
#define Z_DOS_CP861_NOT_SIGN 0xAA
#define Z_DOS_CP861_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP861_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP861_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP861_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP861_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP861_LIGHT_SHADE 0xB0
#define Z_DOS_CP861_MEDIUM_SHADE 0xB1
#define Z_DOS_CP861_DARK_SHADE 0xB2
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP861_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP861_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP861_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP861_FULL_BLOCK 0xDB
#define Z_DOS_CP861_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP861_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP861_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP861_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP861_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP861_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP861_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP861_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP861_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP861_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP861_MICRO_SIGN 0xE6
#define Z_DOS_CP861_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP861_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP861_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP861_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP861_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP861_INFINITY 0xEC
#define Z_DOS_CP861_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP861_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP861_INTERSECTION 0xEF
#define Z_DOS_CP861_IDENTICAL_TO 0xF0
#define Z_DOS_CP861_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP861_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP861_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP861_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP861_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP861_DIVISION_SIGN 0xF6
#define Z_DOS_CP861_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP861_DEGREE_SIGN 0xF8
#define Z_DOS_CP861_BULLET_OPERATOR 0xF9
#define Z_DOS_CP861_MIDDLE_DOT 0xFA
#define Z_DOS_CP861_SQUARE_ROOT 0xFB
#define Z_DOS_CP861_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP861_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP861_BLACK_SQUARE 0xFE
#define Z_DOS_CP861_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP861_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00D0), _(00F0), _(00DE), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00FE), _(00FB), _(00DD), \
_(00FD), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(20A7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00C1), _(00CD), _(00D3), _(00DA), \
_(00BF), _(2310), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP861_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP862.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP862_H
#define Z_formats_character_set_DOS_CP862_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP862_HEBREW_LETTER_ALEF 0x80
#define Z_DOS_CP862_HEBREW_LETTER_BET 0x81
#define Z_DOS_CP862_HEBREW_LETTER_GIMEL 0x82
#define Z_DOS_CP862_HEBREW_LETTER_DALET 0x83
#define Z_DOS_CP862_HEBREW_LETTER_HE 0x84
#define Z_DOS_CP862_HEBREW_LETTER_VAV 0x85
#define Z_DOS_CP862_HEBREW_LETTER_ZAYIN 0x86
#define Z_DOS_CP862_HEBREW_LETTER_HET 0x87
#define Z_DOS_CP862_HEBREW_LETTER_TET 0x88
#define Z_DOS_CP862_HEBREW_LETTER_YOD 0x89
#define Z_DOS_CP862_HEBREW_LETTER_FINAL_KAF 0x8A
#define Z_DOS_CP862_HEBREW_LETTER_KAF 0x8B
#define Z_DOS_CP862_HEBREW_LETTER_LAMED 0x8C
#define Z_DOS_CP862_HEBREW_LETTER_FINAL_MEM 0x8D
#define Z_DOS_CP862_HEBREW_LETTER_MEM 0x8E
#define Z_DOS_CP862_HEBREW_LETTER_FINAL_NUN 0x8F
#define Z_DOS_CP862_HEBREW_LETTER_NUN 0x90
#define Z_DOS_CP862_HEBREW_LETTER_SAMEKH 0x91
#define Z_DOS_CP862_HEBREW_LETTER_AYIN 0x92
#define Z_DOS_CP862_HEBREW_LETTER_FINAL_PE 0x93
#define Z_DOS_CP862_HEBREW_LETTER_PE 0x94
#define Z_DOS_CP862_HEBREW_LETTER_FINAL_TSADI 0x95
#define Z_DOS_CP862_HEBREW_LETTER_TSADI 0x96
#define Z_DOS_CP862_HEBREW_LETTER_QOF 0x97
#define Z_DOS_CP862_HEBREW_LETTER_RESH 0x98
#define Z_DOS_CP862_HEBREW_LETTER_SHIN 0x99
#define Z_DOS_CP862_HEBREW_LETTER_TAV 0x9A
#define Z_DOS_CP862_CENT_SIGN 0x9B
#define Z_DOS_CP862_POUND_SIGN 0x9C
#define Z_DOS_CP862_YEN_SIGN 0x9D
#define Z_DOS_CP862_PESETA_SIGN 0x9E
#define Z_DOS_CP862_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP862_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP862_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP862_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP862_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP862_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP862_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP862_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP862_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP862_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP862_REVERSED_NOT_SIGN 0xA9
#define Z_DOS_CP862_NOT_SIGN 0xAA
#define Z_DOS_CP862_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP862_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP862_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP862_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP862_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP862_LIGHT_SHADE 0xB0
#define Z_DOS_CP862_MEDIUM_SHADE 0xB1
#define Z_DOS_CP862_DARK_SHADE 0xB2
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP862_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP862_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP862_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP862_FULL_BLOCK 0xDB
#define Z_DOS_CP862_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP862_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP862_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP862_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP862_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP862_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP862_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP862_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP862_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP862_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP862_MICRO_SIGN 0xE6
#define Z_DOS_CP862_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP862_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP862_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP862_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP862_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP862_INFINITY 0xEC
#define Z_DOS_CP862_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP862_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP862_INTERSECTION 0xEF
#define Z_DOS_CP862_IDENTICAL_TO 0xF0
#define Z_DOS_CP862_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP862_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP862_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP862_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP862_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP862_DIVISION_SIGN 0xF6
#define Z_DOS_CP862_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP862_DEGREE_SIGN 0xF8
#define Z_DOS_CP862_BULLET_OPERATOR 0xF9
#define Z_DOS_CP862_MIDDLE_DOT 0xFA
#define Z_DOS_CP862_SQUARE_ROOT 0xFB
#define Z_DOS_CP862_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP862_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP862_BLACK_SQUARE 0xFE
#define Z_DOS_CP862_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP862_TO_UNICODE(_) \
_(05D0), _(05D1), _(05D2), _(05D3), _(05D4), _(05D5), _(05D6), _(05D7), \
_(05D8), _(05D9), _(05DA), _(05DB), _(05DC), _(05DD), _(05DE), _(05DF), \
_(05E0), _(05E1), _(05E2), _(05E3), _(05E4), _(05E5), _(05E6), _(05E7), \
_(05E8), _(05E9), _(05EA), _(00A2), _(00A3), _(00A5), _(20A7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(2310), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP862_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP863.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP863_H
#define Z_formats_character_set_DOS_CP863_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP863_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP863_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP863_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x84
#define Z_DOS_CP863_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP863_PILCROW_SIGN 0x86
#define Z_DOS_CP863_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP863_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP863_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP863_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP863_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP863_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP863_DOUBLE_LOW_LINE 0x8D
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x8E
#define Z_DOS_CP863_SECTION_SIGN 0x8F
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x91
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x92
#define Z_DOS_CP863_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x94
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x95
#define Z_DOS_CP863_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP863_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP863_CURRENCY_SIGN 0x98
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x99
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP863_CENT_SIGN 0x9B
#define Z_DOS_CP863_POUND_SIGN 0x9C
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x9D
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x9E
#define Z_DOS_CP863_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP863_BROKEN_BAR 0xA0
#define Z_DOS_CP863_ACUTE_ACCENT 0xA1
#define Z_DOS_CP863_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP863_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP863_DIAERESIS 0xA4
#define Z_DOS_CP863_CEDILLA 0xA5
#define Z_DOS_CP863_SUPERSCRIPT_THREE 0xA6
#define Z_DOS_CP863_MACRON 0xA7
#define Z_DOS_CP863_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0xA8
#define Z_DOS_CP863_REVERSED_NOT_SIGN 0xA9
#define Z_DOS_CP863_NOT_SIGN 0xAA
#define Z_DOS_CP863_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP863_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP863_VULGAR_FRACTION_THREE_QUARTERS 0xAD
#define Z_DOS_CP863_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP863_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP863_LIGHT_SHADE 0xB0
#define Z_DOS_CP863_MEDIUM_SHADE 0xB1
#define Z_DOS_CP863_DARK_SHADE 0xB2
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP863_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP863_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP863_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP863_FULL_BLOCK 0xDB
#define Z_DOS_CP863_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP863_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP863_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP863_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP863_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP863_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP863_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP863_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP863_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP863_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP863_MICRO_SIGN 0xE6
#define Z_DOS_CP863_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP863_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP863_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP863_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP863_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP863_INFINITY 0xEC
#define Z_DOS_CP863_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP863_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP863_INTERSECTION 0xEF
#define Z_DOS_CP863_IDENTICAL_TO 0xF0
#define Z_DOS_CP863_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP863_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP863_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP863_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP863_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP863_DIVISION_SIGN 0xF6
#define Z_DOS_CP863_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP863_DEGREE_SIGN 0xF8
#define Z_DOS_CP863_BULLET_OPERATOR 0xF9
#define Z_DOS_CP863_MIDDLE_DOT 0xFA
#define Z_DOS_CP863_SQUARE_ROOT 0xFB
#define Z_DOS_CP863_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP863_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP863_BLACK_SQUARE 0xFE
#define Z_DOS_CP863_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP863_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00C2), _(00E0), _(00B6), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(2017), _(00C0), _(00A7), \
_(00C9), _(00C8), _(00CA), _(00F4), _(00CB), _(00CF), _(00FB), _(00F9), \
_(00A4), _(00D4), _(00DC), _(00A2), _(00A3), _(00D9), _(00DB), _(0192), \
_(00A6), _(00B4), _(00F3), _(00FA), _(00A8), _(00B8), _(00B3), _(00AF), \
_(00CE), _(2310), _(00AC), _(00BD), _(00BC), _(00BE), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP863_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP864.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP864_H
#define Z_formats_character_set_DOS_CP864_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP864_DEGREE_SIGN 0x80
#define Z_DOS_CP864_MIDDLE_DOT 0x81
#define Z_DOS_CP864_BULLET_OPERATOR 0x82
#define Z_DOS_CP864_SQUARE_ROOT 0x83
#define Z_DOS_CP864_MEDIUM_SHADE 0x84
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x85
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_VERTICAL 0x86
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x87
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x88
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x89
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x8A
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x8B
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x8C
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x8D
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x8E
#define Z_DOS_CP864_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x8F
#define Z_DOS_CP864_GREEK_SMALL_LETTER_BETA 0x90
#define Z_DOS_CP864_INFINITY 0x91
#define Z_DOS_CP864_GREEK_SMALL_LETTER_PHI 0x92
#define Z_DOS_CP864_PLUS_MINUS_SIGN 0x93
#define Z_DOS_CP864_VULGAR_FRACTION_ONE_HALF 0x94
#define Z_DOS_CP864_VULGAR_FRACTION_ONE_QUARTER 0x95
#define Z_DOS_CP864_ALMOST_EQUAL_TO 0x96
#define Z_DOS_CP864_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x97
#define Z_DOS_CP864_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x98
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x99
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0x9A
/* 9Bh undefined */
/* 9Ch undefined */
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_ISOLATED_FORM 0x9D
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_FINAL_FORM 0x9E
/* 9Fh undefined */
#define Z_DOS_CP864_NO_BREAK_SPACE 0xA0
#define Z_DOS_CP864_SOFT_HYPHEN 0xA1
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0xA2
#define Z_DOS_CP864_POUND_SIGN 0xA3
#define Z_DOS_CP864_CURRENCY_SIGN 0xA4
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0xA5
/* A6h undefined */
/* A7h undefined */
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_FINAL_FORM 0xA8
#define Z_DOS_CP864_ARABIC_LETTER_BEH_ISOLATED_FORM 0xA9
#define Z_DOS_CP864_ARABIC_LETTER_TEH_ISOLATED_FORM 0xAA
#define Z_DOS_CP864_ARABIC_LETTER_THEH_ISOLATED_FORM 0xAB
#define Z_DOS_CP864_ARABIC_COMMA 0xAC
#define Z_DOS_CP864_ARABIC_LETTER_JEEM_ISOLATED_FORM 0xAD
#define Z_DOS_CP864_ARABIC_LETTER_HAH_ISOLATED_FORM 0xAE
#define Z_DOS_CP864_ARABIC_LETTER_KHAH_ISOLATED_FORM 0xAF
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_ZERO 0xB0
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_ONE 0xB1
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_TWO 0xB2
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_THREE 0xB3
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_FOUR 0xB4
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_FIVE 0xB5
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_SIX 0xB6
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_SEVEN 0xB7
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_EIGHT 0xB8
#define Z_DOS_CP864_ARABIC_INDIC_DIGIT_NINE 0xB9
#define Z_DOS_CP864_ARABIC_LETTER_FEH_ISOLATED_FORM 0xBA
#define Z_DOS_CP864_ARABIC_SEMICOLON 0xBB
#define Z_DOS_CP864_ARABIC_LETTER_SEEN_ISOLATED_FORM 0xBC
#define Z_DOS_CP864_ARABIC_LETTER_SHEEN_ISOLATED_FORM 0xBD
#define Z_DOS_CP864_ARABIC_LETTER_SAD_ISOLATED_FORM 0xBE
#define Z_DOS_CP864_ARABIC_QUESTION_MARK 0xBF
#define Z_DOS_CP864_CENT_SIGN 0xC0
#define Z_DOS_CP864_ARABIC_LETTER_HAMZA_ISOLATED_FORM 0xC1
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0xC2
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xC3
#define Z_DOS_CP864_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xC4
#define Z_DOS_CP864_ARABIC_LETTER_AIN_FINAL_FORM 0xC5
#define Z_DOS_CP864_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM 0xC6
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_ISOLATED_FORM 0xC7
#define Z_DOS_CP864_ARABIC_LETTER_BEH_INITIAL_FORM 0xC8
#define Z_DOS_CP864_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM 0xC9
#define Z_DOS_CP864_ARABIC_LETTER_TEH_INITIAL_FORM 0xCA
#define Z_DOS_CP864_ARABIC_LETTER_THEH_INITIAL_FORM 0xCB
#define Z_DOS_CP864_ARABIC_LETTER_JEEM_INITIAL_FORM 0xCC
#define Z_DOS_CP864_ARABIC_LETTER_HAH_INITIAL_FORM 0xCD
#define Z_DOS_CP864_ARABIC_LETTER_KHAH_INITIAL_FORM 0xCE
#define Z_DOS_CP864_ARABIC_LETTER_DAL_ISOLATED_FORM 0xCF
#define Z_DOS_CP864_ARABIC_LETTER_THAL_ISOLATED_FORM 0xD0
#define Z_DOS_CP864_ARABIC_LETTER_REH_ISOLATED_FORM 0xD1
#define Z_DOS_CP864_ARABIC_LETTER_ZAIN_ISOLATED_FORM 0xD2
#define Z_DOS_CP864_ARABIC_LETTER_SEEN_INITIAL_FORM 0xD3
#define Z_DOS_CP864_ARABIC_LETTER_SHEEN_INITIAL_FORM 0xD4
#define Z_DOS_CP864_ARABIC_LETTER_SAD_INITIAL_FORM 0xD5
#define Z_DOS_CP864_ARABIC_LETTER_DAD_INITIAL_FORM 0xD6
#define Z_DOS_CP864_ARABIC_LETTER_TAH_ISOLATED_FORM 0xD7
#define Z_DOS_CP864_ARABIC_LETTER_ZAH_ISOLATED_FORM 0xD8
#define Z_DOS_CP864_ARABIC_LETTER_AIN_INITIAL_FORM 0xD9
#define Z_DOS_CP864_ARABIC_LETTER_GHAIN_INITIAL_FORM 0xDA
#define Z_DOS_CP864_BROKEN_BAR 0xDB
#define Z_DOS_CP864_NOT_SIGN 0xDC
#define Z_DOS_CP864_DIVISION_SIGN 0xDD
#define Z_DOS_CP864_MULTIPLICATION_SIGN 0xDE
#define Z_DOS_CP864_ARABIC_LETTER_AIN_ISOLATED_FORM 0xDF
#define Z_DOS_CP864_ARABIC_TATWEEL 0xE0
#define Z_DOS_CP864_ARABIC_LETTER_FEH_INITIAL_FORM 0xE1
#define Z_DOS_CP864_ARABIC_LETTER_QAF_INITIAL_FORM 0xE2
#define Z_DOS_CP864_ARABIC_LETTER_KAF_INITIAL_FORM 0xE3
#define Z_DOS_CP864_ARABIC_LETTER_LAM_INITIAL_FORM 0xE4
#define Z_DOS_CP864_ARABIC_LETTER_MEEM_INITIAL_FORM 0xE5
#define Z_DOS_CP864_ARABIC_LETTER_NOON_INITIAL_FORM 0xE6
#define Z_DOS_CP864_ARABIC_LETTER_HEH_INITIAL_FORM 0xE7
#define Z_DOS_CP864_ARABIC_LETTER_WAW_ISOLATED_FORM 0xE8
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_MAKSURA_ISOLATED_FORM 0xE9
#define Z_DOS_CP864_ARABIC_LETTER_YEH_INITIAL_FORM 0xEA
#define Z_DOS_CP864_ARABIC_LETTER_DAD_ISOLATED_FORM 0xEB
#define Z_DOS_CP864_ARABIC_LETTER_AIN_MEDIAL_FORM 0xEC
#define Z_DOS_CP864_ARABIC_LETTER_GHAIN_FINAL_FORM 0xED
#define Z_DOS_CP864_ARABIC_LETTER_GHAIN_ISOLATED_FORM 0xEE
#define Z_DOS_CP864_ARABIC_LETTER_MEEM_ISOLATED_FORM 0xEF
#define Z_DOS_CP864_ARABIC_SHADDA_MEDIAL_FORM 0xF0
#define Z_DOS_CP864_ARABIC_SHADDA 0xF1
#define Z_DOS_CP864_ARABIC_LETTER_NOON_ISOLATED_FORM 0xF2
#define Z_DOS_CP864_ARABIC_LETTER_HEH_ISOLATED_FORM 0xF3
#define Z_DOS_CP864_ARABIC_LETTER_HEH_MEDIAL_FORM 0xF4
#define Z_DOS_CP864_ARABIC_LETTER_ALEF_MAKSURA_FINAL_FORM 0xF5
#define Z_DOS_CP864_ARABIC_LETTER_YEH_FINAL_FORM 0xF6
#define Z_DOS_CP864_ARABIC_LETTER_GHAIN_MEDIAL_FORM 0xF7
#define Z_DOS_CP864_ARABIC_LETTER_QAF_ISOLATED_FORM 0xF8
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0xF9
#define Z_DOS_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0xFA
#define Z_DOS_CP864_ARABIC_LETTER_LAM_ISOLATED_FORM 0xFB
#define Z_DOS_CP864_ARABIC_LETTER_KAF_ISOLATED_FORM 0xFC
#define Z_DOS_CP864_ARABIC_LETTER_YEH_ISOLATED_FORM 0xFD
#define Z_DOS_CP864_BLACK_SQUARE 0xFE
/* FFh undefined */
#define Z_ARRAY_CONTENT_DOS_CP864_TO_UNICODE(_, undefined) \
_(00B0), _(00B7), _(2219), _(221A), _(2592), _(2500), _(2502), _(253C), \
_(2524), _(252C), _(251C), _(2534), _(2510), _(250C), _(2514), _(2518), \
_(03B2), _(221E), _(03C6), _(00B1), _(00BD), _(00BC), _(2248), _(00AB), \
_(00BB), _(FEF7), _(FEF8), undefined, undefined, _(FEFB), _(FEFC), undefined, \
_(00A0), _(00AD), _(FE82), _(00A3), _(00A4), _(FE84), undefined, undefined, \
_(FE8E), _(FE8F), _(FE95), _(FE99), _(060C), _(FE9D), _(FEA1), _(FEA5), \
_(0660), _(0661), _(0662), _(0663), _(0664), _(0665), _(0666), _(0667), \
_(0668), _(0669), _(FED1), _(061B), _(FEB1), _(FEB5), _(FEB9), _(061F), \
_(00A2), _(FE80), _(FE81), _(FE83), _(FE85), _(FECA), _(FE8B), _(FE8D), \
_(FE91), _(FE93), _(FE97), _(FE9B), _(FE9F), _(FEA3), _(FEA7), _(FEA9), \
_(FEAB), _(FEAD), _(FEAF), _(FEB3), _(FEB7), _(FEBB), _(FEBF), _(FEC1), \
_(FEC5), _(FECB), _(FECF), _(00A6), _(00AC), _(00F7), _(00D7), _(FEC9), \
_(0640), _(FED3), _(FED7), _(FEDB), _(FEDF), _(FEE3), _(FEE7), _(FEEB), \
_(FEED), _(FEEF), _(FEF3), _(FEBD), _(FECC), _(FECE), _(FECD), _(FEE1), \
_(FE7D), _(0651), _(FEE5), _(FEE9), _(FEEC), _(FEF0), _(FEF2), _(FED0), \
_(FED5), _(FEF5), _(FEF6), _(FEDD), _(FED9), _(FEF1), _(25A0), undefined
#endif /* Z_formats_character_set_DOS_CP864_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP865.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP865_H
#define Z_formats_character_set_DOS_CP865_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x80
#define Z_DOS_CP865_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x81
#define Z_DOS_CP865_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x82
#define Z_DOS_CP865_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x83
#define Z_DOS_CP865_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x84
#define Z_DOS_CP865_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x85
#define Z_DOS_CP865_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x86
#define Z_DOS_CP865_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x87
#define Z_DOS_CP865_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x88
#define Z_DOS_CP865_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x89
#define Z_DOS_CP865_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x8A
#define Z_DOS_CP865_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x8B
#define Z_DOS_CP865_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x8C
#define Z_DOS_CP865_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x8D
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x8E
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x8F
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x90
#define Z_DOS_CP865_LATIN_SMALL_LETTER_AE 0x91
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_AE 0x92
#define Z_DOS_CP865_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x93
#define Z_DOS_CP865_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x94
#define Z_DOS_CP865_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x95
#define Z_DOS_CP865_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x96
#define Z_DOS_CP865_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x97
#define Z_DOS_CP865_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x98
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x99
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x9A
#define Z_DOS_CP865_LATIN_SMALL_LETTER_O_WITH_STROKE 0x9B
#define Z_DOS_CP865_POUND_SIGN 0x9C
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x9D
#define Z_DOS_CP865_PESETA_SIGN 0x9E
#define Z_DOS_CP865_LATIN_SMALL_LETTER_F_WITH_HOOK 0x9F
#define Z_DOS_CP865_LATIN_SMALL_LETTER_A_WITH_ACUTE 0xA0
#define Z_DOS_CP865_LATIN_SMALL_LETTER_I_WITH_ACUTE 0xA1
#define Z_DOS_CP865_LATIN_SMALL_LETTER_O_WITH_ACUTE 0xA2
#define Z_DOS_CP865_LATIN_SMALL_LETTER_U_WITH_ACUTE 0xA3
#define Z_DOS_CP865_LATIN_SMALL_LETTER_N_WITH_TILDE 0xA4
#define Z_DOS_CP865_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0xA5
#define Z_DOS_CP865_FEMININE_ORDINAL_INDICATOR 0xA6
#define Z_DOS_CP865_MASCULINE_ORDINAL_INDICATOR 0xA7
#define Z_DOS_CP865_INVERTED_QUESTION_MARK 0xA8
#define Z_DOS_CP865_REVERSED_NOT_SIGN 0xA9
#define Z_DOS_CP865_NOT_SIGN 0xAA
#define Z_DOS_CP865_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP865_VULGAR_FRACTION_ONE_QUARTER 0xAC
#define Z_DOS_CP865_INVERTED_EXCLAMATION_MARK 0xAD
#define Z_DOS_CP865_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP865_CURRENCY_SIGN 0xAF
#define Z_DOS_CP865_LIGHT_SHADE 0xB0
#define Z_DOS_CP865_MEDIUM_SHADE 0xB1
#define Z_DOS_CP865_DARK_SHADE 0xB2
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP865_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP865_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP865_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP865_FULL_BLOCK 0xDB
#define Z_DOS_CP865_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP865_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP865_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP865_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP865_GREEK_SMALL_LETTER_ALPHA 0xE0
#define Z_DOS_CP865_LATIN_SMALL_LETTER_SHARP_S 0xE1
#define Z_DOS_CP865_GREEK_CAPITAL_LETTER_GAMMA 0xE2
#define Z_DOS_CP865_GREEK_SMALL_LETTER_PI 0xE3
#define Z_DOS_CP865_GREEK_CAPITAL_LETTER_SIGMA 0xE4
#define Z_DOS_CP865_GREEK_SMALL_LETTER_SIGMA 0xE5
#define Z_DOS_CP865_MICRO_SIGN 0xE6
#define Z_DOS_CP865_GREEK_SMALL_LETTER_TAU 0xE7
#define Z_DOS_CP865_GREEK_CAPITAL_LETTER_PHI 0xE8
#define Z_DOS_CP865_GREEK_CAPITAL_LETTER_THETA 0xE9
#define Z_DOS_CP865_GREEK_CAPITAL_LETTER_OMEGA 0xEA
#define Z_DOS_CP865_GREEK_SMALL_LETTER_DELTA 0xEB
#define Z_DOS_CP865_INFINITY 0xEC
#define Z_DOS_CP865_GREEK_SMALL_LETTER_PHI 0xED
#define Z_DOS_CP865_GREEK_SMALL_LETTER_EPSILON 0xEE
#define Z_DOS_CP865_INTERSECTION 0xEF
#define Z_DOS_CP865_IDENTICAL_TO 0xF0
#define Z_DOS_CP865_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP865_GREATER_THAN_OR_EQUAL_TO 0xF2
#define Z_DOS_CP865_LESS_THAN_OR_EQUAL_TO 0xF3
#define Z_DOS_CP865_TOP_HALF_INTEGRAL 0xF4
#define Z_DOS_CP865_BOTTOM_HALF_INTEGRAL 0xF5
#define Z_DOS_CP865_DIVISION_SIGN 0xF6
#define Z_DOS_CP865_ALMOST_EQUAL_TO 0xF7
#define Z_DOS_CP865_DEGREE_SIGN 0xF8
#define Z_DOS_CP865_BULLET_OPERATOR 0xF9
#define Z_DOS_CP865_MIDDLE_DOT 0xFA
#define Z_DOS_CP865_SQUARE_ROOT 0xFB
#define Z_DOS_CP865_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0xFC
#define Z_DOS_CP865_SUPERSCRIPT_TWO 0xFD
#define Z_DOS_CP865_BLACK_SQUARE 0xFE
#define Z_DOS_CP865_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP865_TO_UNICODE(_) \
_(00C7), _(00FC), _(00E9), _(00E2), _(00E4), _(00E0), _(00E5), _(00E7), \
_(00EA), _(00EB), _(00E8), _(00EF), _(00EE), _(00EC), _(00C4), _(00C5), \
_(00C9), _(00E6), _(00C6), _(00F4), _(00F6), _(00F2), _(00FB), _(00F9), \
_(00FF), _(00D6), _(00DC), _(00F8), _(00A3), _(00D8), _(20A7), _(0192), \
_(00E1), _(00ED), _(00F3), _(00FA), _(00F1), _(00D1), _(00AA), _(00BA), \
_(00BF), _(2310), _(00AC), _(00BD), _(00BC), _(00A1), _(00AB), _(00A4), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(03B1), _(00DF), _(0393), _(03C0), _(03A3), _(03C3), _(00B5), _(03C4), \
_(03A6), _(0398), _(03A9), _(03B4), _(221E), _(03C6), _(03B5), _(2229), \
_(2261), _(00B1), _(2265), _(2264), _(2320), _(2321), _(00F7), _(2248), \
_(00B0), _(2219), _(00B7), _(221A), _(207F), _(00B2), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP865_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP866.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP866_H
#define Z_formats_character_set_DOS_CP866_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_A 0x80
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_BE 0x81
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_VE 0x82
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_GHE 0x83
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_DE 0x84
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_IE 0x85
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_ZHE 0x86
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_ZE 0x87
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_I 0x88
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x89
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_KA 0x8A
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_EL 0x8B
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_EM 0x8C
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_EN 0x8D
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_O 0x8E
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_PE 0x8F
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_ER 0x90
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_ES 0x91
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_TE 0x92
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_U 0x93
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_EF 0x94
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_HA 0x95
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_TSE 0x96
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_CHE 0x97
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_SHA 0x98
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_SHCHA 0x99
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x9A
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_YERU 0x9B
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x9C
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_E 0x9D
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_YU 0x9E
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_YA 0x9F
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_A 0xA0
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_BE 0xA1
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_VE 0xA2
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_GHE 0xA3
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_DE 0xA4
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_IE 0xA5
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_ZHE 0xA6
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_ZE 0xA7
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_I 0xA8
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_SHORT_I 0xA9
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_KA 0xAA
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_EL 0xAB
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_EM 0xAC
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_EN 0xAD
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_O 0xAE
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_PE 0xAF
#define Z_DOS_CP866_LIGHT_SHADE 0xB0
#define Z_DOS_CP866_MEDIUM_SHADE 0xB1
#define Z_DOS_CP866_DARK_SHADE 0xB2
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0xB5
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0xB6
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0xB7
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0xB8
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0xBD
#define Z_DOS_CP866_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0xBE
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0xC6
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0xC7
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP866_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0xCF
#define Z_DOS_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0xD0
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0xD1
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0xD2
#define Z_DOS_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0xD3
#define Z_DOS_CP866_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0xD4
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0xD5
#define Z_DOS_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0xD6
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0xD7
#define Z_DOS_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0xD8
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP866_FULL_BLOCK 0xDB
#define Z_DOS_CP866_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP866_LEFT_HALF_BLOCK 0xDD
#define Z_DOS_CP866_RIGHT_HALF_BLOCK 0xDE
#define Z_DOS_CP866_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_ER 0xE0
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_ES 0xE1
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_TE 0xE2
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_U 0xE3
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_EF 0xE4
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_HA 0xE5
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_TSE 0xE6
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_CHE 0xE7
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_SHA 0xE8
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_SHCHA 0xE9
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_HARD_SIGN 0xEA
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_YERU 0xEB
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0xEC
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_E 0xED
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_YU 0xEE
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_YA 0xEF
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_IO 0xF0
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_IO 0xF1
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0xF2
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0xF3
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_YI 0xF4
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_YI 0xF5
#define Z_DOS_CP866_CYRILLIC_CAPITAL_LETTER_SHORT_U 0xF6
#define Z_DOS_CP866_CYRILLIC_SMALL_LETTER_SHORT_U 0xF7
#define Z_DOS_CP866_DEGREE_SIGN 0xF8
#define Z_DOS_CP866_BULLET_OPERATOR 0xF9
#define Z_DOS_CP866_MIDDLE_DOT 0xFA
#define Z_DOS_CP866_SQUARE_ROOT 0xFB
#define Z_DOS_CP866_NUMERO_SIGN 0xFC
#define Z_DOS_CP866_CURRENCY_SIGN 0xFD
#define Z_DOS_CP866_BLACK_SQUARE 0xFE
#define Z_DOS_CP866_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP866_TO_UNICODE(_) \
_(0410), _(0411), _(0412), _(0413), _(0414), _(0415), _(0416), _(0417), \
_(0418), _(0419), _(041A), _(041B), _(041C), _(041D), _(041E), _(041F), \
_(0420), _(0421), _(0422), _(0423), _(0424), _(0425), _(0426), _(0427), \
_(0428), _(0429), _(042A), _(042B), _(042C), _(042D), _(042E), _(042F), \
_(0430), _(0431), _(0432), _(0433), _(0434), _(0435), _(0436), _(0437), \
_(0438), _(0439), _(043A), _(043B), _(043C), _(043D), _(043E), _(043F), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(2561), _(2562), _(2556), \
_(2555), _(2563), _(2551), _(2557), _(255D), _(255C), _(255B), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(255E), _(255F), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(2567), \
_(2568), _(2564), _(2565), _(2559), _(2558), _(2552), _(2553), _(256B), \
_(256A), _(2518), _(250C), _(2588), _(2584), _(258C), _(2590), _(2580), \
_(0440), _(0441), _(0442), _(0443), _(0444), _(0445), _(0446), _(0447), \
_(0448), _(0449), _(044A), _(044B), _(044C), _(044D), _(044E), _(044F), \
_(0401), _(0451), _(0404), _(0454), _(0407), _(0457), _(040E), _(045E), \
_(00B0), _(2219), _(00B7), _(221A), _(2116), _(00A4), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP866_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP869.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP869_H
#define Z_formats_character_set_DOS_CP869_H
/* From 00h to 7Fh like ASCII */
/* 80h undefined */
/* 81h undefined */
/* 82h undefined */
/* 83h undefined */
/* 84h undefined */
/* 85h undefined */
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x86
/* 87h undefined */
#define Z_DOS_CP869_MIDDLE_DOT 0x88
#define Z_DOS_CP869_NOT_SIGN 0x89
#define Z_DOS_CP869_BROKEN_BAR 0x8A
#define Z_DOS_CP869_LEFT_SINGLE_QUOTATION_MARK 0x8B
#define Z_DOS_CP869_RIGHT_SINGLE_QUOTATION_MARK 0x8C
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x8D
#define Z_DOS_CP869_HORIZONTAL_BAR 0x8E
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x8F
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x90
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x91
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x92
/* 93h undefined */
/* 94h undefined */
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x95
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x96
#define Z_DOS_CP869_COPYRIGHT_SIGN 0x97
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x98
#define Z_DOS_CP869_SUPERSCRIPT_TWO 0x99
#define Z_DOS_CP869_SUPERSCRIPT_THREE 0x9A
#define Z_DOS_CP869_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x9B
#define Z_DOS_CP869_POUND_SIGN 0x9C
#define Z_DOS_CP869_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x9D
#define Z_DOS_CP869_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x9E
#define Z_DOS_CP869_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x9F
#define Z_DOS_CP869_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0xA0
#define Z_DOS_CP869_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0xA1
#define Z_DOS_CP869_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0xA2
#define Z_DOS_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0xA3
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_ALPHA 0xA4
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_BETA 0xA5
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_GAMMA 0xA6
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_DELTA 0xA7
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_EPSILON 0xA8
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_ZETA 0xA9
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_ETA 0xAA
#define Z_DOS_CP869_VULGAR_FRACTION_ONE_HALF 0xAB
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_THETA 0xAC
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_IOTA 0xAD
#define Z_DOS_CP869_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP869_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP869_LIGHT_SHADE 0xB0
#define Z_DOS_CP869_MEDIUM_SHADE 0xB1
#define Z_DOS_CP869_DARK_SHADE 0xB2
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_KAPPA 0xB5
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_LAMDA 0xB6
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_MU 0xB7
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_NU 0xB8
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_XI 0xBD
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_OMICRON 0xBE
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_PI 0xC6
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_RHO 0xC7
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_SIGMA 0xCF
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_TAU 0xD0
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_UPSILON 0xD1
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_PHI 0xD2
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_CHI 0xD3
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_PSI 0xD4
#define Z_DOS_CP869_GREEK_CAPITAL_LETTER_OMEGA 0xD5
#define Z_DOS_CP869_GREEK_SMALL_LETTER_ALPHA 0xD6
#define Z_DOS_CP869_GREEK_SMALL_LETTER_BETA 0xD7
#define Z_DOS_CP869_GREEK_SMALL_LETTER_GAMMA 0xD8
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP869_FULL_BLOCK 0xDB
#define Z_DOS_CP869_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP869_GREEK_SMALL_LETTER_DELTA 0xDD
#define Z_DOS_CP869_GREEK_SMALL_LETTER_EPSILON 0xDE
#define Z_DOS_CP869_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP869_GREEK_SMALL_LETTER_ZETA 0xE0
#define Z_DOS_CP869_GREEK_SMALL_LETTER_ETA 0xE1
#define Z_DOS_CP869_GREEK_SMALL_LETTER_THETA 0xE2
#define Z_DOS_CP869_GREEK_SMALL_LETTER_IOTA 0xE3
#define Z_DOS_CP869_GREEK_SMALL_LETTER_KAPPA 0xE4
#define Z_DOS_CP869_GREEK_SMALL_LETTER_LAMDA 0xE5
#define Z_DOS_CP869_GREEK_SMALL_LETTER_MU 0xE6
#define Z_DOS_CP869_GREEK_SMALL_LETTER_NU 0xE7
#define Z_DOS_CP869_GREEK_SMALL_LETTER_XI 0xE8
#define Z_DOS_CP869_GREEK_SMALL_LETTER_OMICRON 0xE9
#define Z_DOS_CP869_GREEK_SMALL_LETTER_PI 0xEA
#define Z_DOS_CP869_GREEK_SMALL_LETTER_RHO 0xEB
#define Z_DOS_CP869_GREEK_SMALL_LETTER_SIGMA 0xEC
#define Z_DOS_CP869_GREEK_SMALL_LETTER_FINAL_SIGMA 0xED
#define Z_DOS_CP869_GREEK_SMALL_LETTER_TAU 0xEE
#define Z_DOS_CP869_GREEK_TONOS 0xEF
#define Z_DOS_CP869_SOFT_HYPHEN 0xF0
#define Z_DOS_CP869_PLUS_MINUS_SIGN 0xF1
#define Z_DOS_CP869_GREEK_SMALL_LETTER_UPSILON 0xF2
#define Z_DOS_CP869_GREEK_SMALL_LETTER_PHI 0xF3
#define Z_DOS_CP869_GREEK_SMALL_LETTER_CHI 0xF4
#define Z_DOS_CP869_SECTION_SIGN 0xF5
#define Z_DOS_CP869_GREEK_SMALL_LETTER_PSI 0xF6
#define Z_DOS_CP869_GREEK_DIALYTIKA_TONOS 0xF7
#define Z_DOS_CP869_DEGREE_SIGN 0xF8
#define Z_DOS_CP869_DIAERESIS 0xF9
#define Z_DOS_CP869_GREEK_SMALL_LETTER_OMEGA 0xFA
#define Z_DOS_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0xFB
#define Z_DOS_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0xFC
#define Z_DOS_CP869_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0xFD
#define Z_DOS_CP869_BLACK_SQUARE 0xFE
#define Z_DOS_CP869_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP869_TO_UNICODE(_, undefined) \
undefined, undefined, undefined, undefined, undefined, undefined, _(0386), undefined, \
_(00B7), _(00AC), _(00A6), _(2018), _(2019), _(0388), _(2015), _(0389), \
_(038A), _(03AA), _(038C), undefined, undefined, _(038E), _(03AB), _(00A9), \
_(038F), _(00B2), _(00B3), _(03AC), _(00A3), _(03AD), _(03AE), _(03AF), \
_(03CA), _(0390), _(03CC), _(03CD), _(0391), _(0392), _(0393), _(0394), \
_(0395), _(0396), _(0397), _(00BD), _(0398), _(0399), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(039A), _(039B), _(039C), \
_(039D), _(2563), _(2551), _(2557), _(255D), _(039E), _(039F), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(03A0), _(03A1), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(03A3), \
_(03A4), _(03A5), _(03A6), _(03A7), _(03A8), _(03A9), _(03B1), _(03B2), \
_(03B3), _(2518), _(250C), _(2588), _(2584), _(03B4), _(03B5), _(2580), \
_(03B6), _(03B7), _(03B8), _(03B9), _(03BA), _(03BB), _(03BC), _(03BD), \
_(03BE), _(03BF), _(03C0), _(03C1), _(03C3), _(03C2), _(03C4), _(0384), \
_(00AD), _(00B1), _(03C5), _(03C6), _(03C7), _(00A7), _(03C8), _(0385), \
_(00B0), _(00A8), _(03C9), _(03CB), _(03B0), _(03CE), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP869_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP872.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP872_H
#define Z_formats_character_set_DOS_CP872_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_DJE 0x80
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_DJE 0x81
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_GJE 0x82
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_GJE 0x83
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_IO 0x84
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_IO 0x85
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x86
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x87
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_DZE 0x88
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_DZE 0x89
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x8A
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x8B
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_YI 0x8C
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_YI 0x8D
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_JE 0x8E
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_JE 0x8F
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_LJE 0x90
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_LJE 0x91
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_NJE 0x92
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_NJE 0x93
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_TSHE 0x94
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_TSHE 0x95
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_KJE 0x96
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_KJE 0x97
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_SHORT_U 0x98
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x99
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_DZHE 0x9A
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_DZHE 0x9B
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_YU 0x9C
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_YU 0x9D
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x9E
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x9F
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_A 0xA0
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_A 0xA1
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_BE 0xA2
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_BE 0xA3
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_TSE 0xA4
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_TSE 0xA5
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_DE 0xA6
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_DE 0xA7
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_IE 0xA8
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_IE 0xA9
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_EF 0xAA
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_EF 0xAB
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_GHE 0xAC
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_GHE 0xAD
#define Z_DOS_CP872_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAE
#define Z_DOS_CP872_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0xAF
#define Z_DOS_CP872_LIGHT_SHADE 0xB0
#define Z_DOS_CP872_MEDIUM_SHADE 0xB1
#define Z_DOS_CP872_DARK_SHADE 0xB2
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_VERTICAL 0xB3
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0xB4
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_HA 0xB5
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_HA 0xB6
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_I 0xB7
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_I 0xB8
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0xB9
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_VERTICAL 0xBA
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0xBB
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0xBC
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_SHORT_I 0xBD
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_SHORT_I 0xBE
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0xBF
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0xC0
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0xC1
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0xC2
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0xC3
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_HORIZONTAL 0xC4
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0xC5
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_KA 0xC6
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_KA 0xC7
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0xC8
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0xC9
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0xCA
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0xCB
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0xCC
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0xCD
#define Z_DOS_CP872_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0xCE
#define Z_DOS_CP872_EURO_SIGN 0xCF
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_EL 0xD0
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_EL 0xD1
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_EM 0xD2
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_EM 0xD3
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_EN 0xD4
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_EN 0xD5
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_O 0xD6
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_O 0xD7
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_PE 0xD8
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0xD9
#define Z_DOS_CP872_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0xDA
#define Z_DOS_CP872_FULL_BLOCK 0xDB
#define Z_DOS_CP872_LOWER_HALF_BLOCK 0xDC
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_PE 0xDD
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_YA 0xDE
#define Z_DOS_CP872_UPPER_HALF_BLOCK 0xDF
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_YA 0xE0
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_ER 0xE1
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_ER 0xE2
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_ES 0xE3
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_ES 0xE4
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_TE 0xE5
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_TE 0xE6
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_U 0xE7
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_U 0xE8
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_ZHE 0xE9
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_ZHE 0xEA
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_VE 0xEB
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_VE 0xEC
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0xED
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0xEE
#define Z_DOS_CP872_NUMERO_SIGN 0xEF
#define Z_DOS_CP872_SOFT_HYPHEN 0xF0
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_YERU 0xF1
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_YERU 0xF2
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_ZE 0xF3
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_ZE 0xF4
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_SHA 0xF5
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_SHA 0xF6
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_E 0xF7
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_E 0xF8
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_SHCHA 0xF9
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_SHCHA 0xFA
#define Z_DOS_CP872_CYRILLIC_SMALL_LETTER_CHE 0xFB
#define Z_DOS_CP872_CYRILLIC_CAPITAL_LETTER_CHE 0xFC
#define Z_DOS_CP872_SECTION_SIGN 0xFD
#define Z_DOS_CP872_BLACK_SQUARE 0xFE
#define Z_DOS_CP872_NO_BREAK_SPACE 0xFF
#define Z_ARRAY_CONTENT_DOS_CP872_TO_UNICODE(_) \
_(0452), _(0402), _(0453), _(0403), _(0451), _(0401), _(0454), _(0404), \
_(0455), _(0405), _(0456), _(0406), _(0457), _(0407), _(0458), _(0408), \
_(0459), _(0409), _(045A), _(040A), _(045B), _(040B), _(045C), _(040C), \
_(045E), _(040E), _(045F), _(040F), _(044E), _(042E), _(044A), _(042A), \
_(0430), _(0410), _(0431), _(0411), _(0446), _(0426), _(0434), _(0414), \
_(0435), _(0415), _(0444), _(0424), _(0433), _(0413), _(00AB), _(00BB), \
_(2591), _(2592), _(2593), _(2502), _(2524), _(0445), _(0425), _(0438), \
_(0418), _(2563), _(2551), _(2557), _(255D), _(0439), _(0419), _(2510), \
_(2514), _(2534), _(252C), _(251C), _(2500), _(253C), _(043A), _(041A), \
_(255A), _(2554), _(2569), _(2566), _(2560), _(2550), _(256C), _(20AC), \
_(043B), _(041B), _(043C), _(041C), _(043D), _(041D), _(043E), _(041E), \
_(043F), _(2518), _(250C), _(2588), _(2584), _(041F), _(044F), _(2580), \
_(042F), _(0440), _(0420), _(0441), _(0421), _(0442), _(0422), _(0443), \
_(0423), _(0436), _(0416), _(0432), _(0412), _(044C), _(042C), _(2116), \
_(00AD), _(044B), _(042B), _(0437), _(0417), _(0448), _(0428), _(044D), \
_(042D), _(0449), _(0429), _(0447), _(0427), _(00A7), _(25A0), _(00A0)
#endif /* Z_formats_character_set_DOS_CP872_H */

View File

@@ -0,0 +1,160 @@
/* Zeta API - Z/formats/character set/DOS CP874.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_character_set_DOS_CP874_H
#define Z_formats_character_set_DOS_CP874_H
/* From 00h to 7Fh like ASCII */
#define Z_DOS_CP874_EURO_SIGN 0x80
/* 81h undefined */
/* 82h undefined */
/* 83h undefined */
/* 84h undefined */
#define Z_DOS_CP874_HORIZONTAL_ELLIPSIS 0x85
/* 86h undefined */
/* 87h undefined */
/* 88h undefined */
/* 89h undefined */
/* 8Ah undefined */
/* 8Bh undefined */
/* 8Ch undefined */
/* 8Dh undefined */
/* 8Eh undefined */
/* 8Fh undefined */
/* 90h undefined */
#define Z_DOS_CP874_LEFT_SINGLE_QUOTATION_MARK 0x91
#define Z_DOS_CP874_RIGHT_SINGLE_QUOTATION_MARK 0x92
#define Z_DOS_CP874_LEFT_DOUBLE_QUOTATION_MARK 0x93
#define Z_DOS_CP874_RIGHT_DOUBLE_QUOTATION_MARK 0x94
#define Z_DOS_CP874_BULLET 0x95
#define Z_DOS_CP874_EN_DASH 0x96
#define Z_DOS_CP874_EM_DASH 0x97
/* 98h undefined */
/* 99h undefined */
/* 9Ah undefined */
/* 9Bh undefined */
/* 9Ch undefined */
/* 9Dh undefined */
/* 9Eh undefined */
/* 9Fh undefined */
#define Z_DOS_CP874_NO_BREAK_SPACE 0xA0
#define Z_DOS_CP874_THAI_CHARACTER_KO_KAI 0xA1
#define Z_DOS_CP874_THAI_CHARACTER_KHO_KHAI 0xA2
#define Z_DOS_CP874_THAI_CHARACTER_KHO_KHUAT 0xA3
#define Z_DOS_CP874_THAI_CHARACTER_KHO_KHWAI 0xA4
#define Z_DOS_CP874_THAI_CHARACTER_KHO_KHON 0xA5
#define Z_DOS_CP874_THAI_CHARACTER_KHO_RAKHANG 0xA6
#define Z_DOS_CP874_THAI_CHARACTER_NGO_NGU 0xA7
#define Z_DOS_CP874_THAI_CHARACTER_CHO_CHAN 0xA8
#define Z_DOS_CP874_THAI_CHARACTER_CHO_CHING 0xA9
#define Z_DOS_CP874_THAI_CHARACTER_CHO_CHANG 0xAA
#define Z_DOS_CP874_THAI_CHARACTER_SO_SO 0xAB
#define Z_DOS_CP874_THAI_CHARACTER_CHO_CHOE 0xAC
#define Z_DOS_CP874_THAI_CHARACTER_YO_YING 0xAD
#define Z_DOS_CP874_THAI_CHARACTER_DO_CHADA 0xAE
#define Z_DOS_CP874_THAI_CHARACTER_TO_PATAK 0xAF
#define Z_DOS_CP874_THAI_CHARACTER_THO_THAN 0xB0
#define Z_DOS_CP874_THAI_CHARACTER_THO_NANGMONTHO 0xB1
#define Z_DOS_CP874_THAI_CHARACTER_THO_PHUTHAO 0xB2
#define Z_DOS_CP874_THAI_CHARACTER_NO_NEN 0xB3
#define Z_DOS_CP874_THAI_CHARACTER_DO_DEK 0xB4
#define Z_DOS_CP874_THAI_CHARACTER_TO_TAO 0xB5
#define Z_DOS_CP874_THAI_CHARACTER_THO_THUNG 0xB6
#define Z_DOS_CP874_THAI_CHARACTER_THO_THAHAN 0xB7
#define Z_DOS_CP874_THAI_CHARACTER_THO_THONG 0xB8
#define Z_DOS_CP874_THAI_CHARACTER_NO_NU 0xB9
#define Z_DOS_CP874_THAI_CHARACTER_BO_BAIMAI 0xBA
#define Z_DOS_CP874_THAI_CHARACTER_PO_PLA 0xBB
#define Z_DOS_CP874_THAI_CHARACTER_PHO_PHUNG 0xBC
#define Z_DOS_CP874_THAI_CHARACTER_FO_FA 0xBD
#define Z_DOS_CP874_THAI_CHARACTER_PHO_PHAN 0xBE
#define Z_DOS_CP874_THAI_CHARACTER_FO_FAN 0xBF
#define Z_DOS_CP874_THAI_CHARACTER_PHO_SAMPHAO 0xC0
#define Z_DOS_CP874_THAI_CHARACTER_MO_MA 0xC1
#define Z_DOS_CP874_THAI_CHARACTER_YO_YAK 0xC2
#define Z_DOS_CP874_THAI_CHARACTER_RO_RUA 0xC3
#define Z_DOS_CP874_THAI_CHARACTER_RU 0xC4
#define Z_DOS_CP874_THAI_CHARACTER_LO_LING 0xC5
#define Z_DOS_CP874_THAI_CHARACTER_LU 0xC6
#define Z_DOS_CP874_THAI_CHARACTER_WO_WAEN 0xC7
#define Z_DOS_CP874_THAI_CHARACTER_SO_SALA 0xC8
#define Z_DOS_CP874_THAI_CHARACTER_SO_RUSI 0xC9
#define Z_DOS_CP874_THAI_CHARACTER_SO_SUA 0xCA
#define Z_DOS_CP874_THAI_CHARACTER_HO_HIP 0xCB
#define Z_DOS_CP874_THAI_CHARACTER_LO_CHULA 0xCC
#define Z_DOS_CP874_THAI_CHARACTER_O_ANG 0xCD
#define Z_DOS_CP874_THAI_CHARACTER_HO_NOKHUK 0xCE
#define Z_DOS_CP874_THAI_CHARACTER_PAIYANNOI 0xCF
#define Z_DOS_CP874_THAI_CHARACTER_SARA_A 0xD0
#define Z_DOS_CP874_THAI_CHARACTER_MAI_HAN_AKAT 0xD1
#define Z_DOS_CP874_THAI_CHARACTER_SARA_AA 0xD2
#define Z_DOS_CP874_THAI_CHARACTER_SARA_AM 0xD3
#define Z_DOS_CP874_THAI_CHARACTER_SARA_I 0xD4
#define Z_DOS_CP874_THAI_CHARACTER_SARA_II 0xD5
#define Z_DOS_CP874_THAI_CHARACTER_SARA_UE 0xD6
#define Z_DOS_CP874_THAI_CHARACTER_SARA_UEE 0xD7
#define Z_DOS_CP874_THAI_CHARACTER_SARA_U 0xD8
#define Z_DOS_CP874_THAI_CHARACTER_SARA_UU 0xD9
#define Z_DOS_CP874_THAI_CHARACTER_PHINTHU 0xDA
/* DBh undefined */
/* DCh undefined */
/* DDh undefined */
/* DEh undefined */
#define Z_DOS_CP874_THAI_CURRENCY_SYMBOL_BAHT 0xDF
#define Z_DOS_CP874_THAI_CHARACTER_SARA_E 0xE0
#define Z_DOS_CP874_THAI_CHARACTER_SARA_AE 0xE1
#define Z_DOS_CP874_THAI_CHARACTER_SARA_O 0xE2
#define Z_DOS_CP874_THAI_CHARACTER_SARA_AI_MAIMUAN 0xE3
#define Z_DOS_CP874_THAI_CHARACTER_SARA_AI_MAIMALAI 0xE4
#define Z_DOS_CP874_THAI_CHARACTER_LAKKHANGYAO 0xE5
#define Z_DOS_CP874_THAI_CHARACTER_MAIYAMOK 0xE6
#define Z_DOS_CP874_THAI_CHARACTER_MAITAIKHU 0xE7
#define Z_DOS_CP874_THAI_CHARACTER_MAI_EK 0xE8
#define Z_DOS_CP874_THAI_CHARACTER_MAI_THO 0xE9
#define Z_DOS_CP874_THAI_CHARACTER_MAI_TRI 0xEA
#define Z_DOS_CP874_THAI_CHARACTER_MAI_CHATTAWA 0xEB
#define Z_DOS_CP874_THAI_CHARACTER_THANTHAKHAT 0xEC
#define Z_DOS_CP874_THAI_CHARACTER_NIKHAHIT 0xED
#define Z_DOS_CP874_THAI_CHARACTER_YAMAKKAN 0xEE
#define Z_DOS_CP874_THAI_CHARACTER_FONGMAN 0xEF
#define Z_DOS_CP874_THAI_DIGIT_ZERO 0xF0
#define Z_DOS_CP874_THAI_DIGIT_ONE 0xF1
#define Z_DOS_CP874_THAI_DIGIT_TWO 0xF2
#define Z_DOS_CP874_THAI_DIGIT_THREE 0xF3
#define Z_DOS_CP874_THAI_DIGIT_FOUR 0xF4
#define Z_DOS_CP874_THAI_DIGIT_FIVE 0xF5
#define Z_DOS_CP874_THAI_DIGIT_SIX 0xF6
#define Z_DOS_CP874_THAI_DIGIT_SEVEN 0xF7
#define Z_DOS_CP874_THAI_DIGIT_EIGHT 0xF8
#define Z_DOS_CP874_THAI_DIGIT_NINE 0xF9
#define Z_DOS_CP874_THAI_CHARACTER_ANGKHANKHU 0xFA
#define Z_DOS_CP874_THAI_CHARACTER_KHOMUT 0xFB
/* FCh undefined */
/* FDh undefined */
/* FEh undefined */
/* FFh undefined */
#define Z_ARRAY_CONTENT_DOS_CP874_TO_UNICODE(_, undefined) \
_(20AC), undefined, undefined, undefined, undefined, _(2026), undefined, undefined, \
undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, \
undefined, _(2018), _(2019), _(201C), _(201D), _(2022), _(2013), _(2014), \
undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, \
_(00A0), _(0E01), _(0E02), _(0E03), _(0E04), _(0E05), _(0E06), _(0E07), \
_(0E08), _(0E09), _(0E0A), _(0E0B), _(0E0C), _(0E0D), _(0E0E), _(0E0F), \
_(0E10), _(0E11), _(0E12), _(0E13), _(0E14), _(0E15), _(0E16), _(0E17), \
_(0E18), _(0E19), _(0E1A), _(0E1B), _(0E1C), _(0E1D), _(0E1E), _(0E1F), \
_(0E20), _(0E21), _(0E22), _(0E23), _(0E24), _(0E25), _(0E26), _(0E27), \
_(0E28), _(0E29), _(0E2A), _(0E2B), _(0E2C), _(0E2D), _(0E2E), _(0E2F), \
_(0E30), _(0E31), _(0E32), _(0E33), _(0E34), _(0E35), _(0E36), _(0E37), \
_(0E38), _(0E39), _(0E3A), undefined, undefined, undefined, undefined, _(0E3F), \
_(0E40), _(0E41), _(0E42), _(0E43), _(0E44), _(0E45), _(0E46), _(0E47), \
_(0E48), _(0E49), _(0E4A), _(0E4B), _(0E4C), _(0E4D), _(0E4E), _(0E4F), \
_(0E50), _(0E51), _(0E52), _(0E53), _(0E54), _(0E55), _(0E56), _(0E57), \
_(0E58), _(0E59), _(0E5A), _(0E5B), undefined, undefined, undefined, undefined
#endif /* Z_formats_character_set_DOS_CP874_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/I16LP32.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_I16LP32_H
#define Z_formats_data_model_I16LP32_H
#define Z_I16LP32_BITS_CHAR 8
#define Z_I16LP32_BITS_SHORT 16
#define Z_I16LP32_BITS_INT 16
#define Z_I16LP32_BITS_LONG 32
#define Z_I16LP32_BITS_LLONG 32
#define Z_I16LP32_BITS_SIZE 32
#define Z_I16LP32_BITS_POINTER 32
#endif /* Z_formats_data_model_I16LP32_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/ILP32.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_ILP32_H
#define Z_formats_data_model_ILP32_H
#define Z_ILP32_BITS_CHAR 8
#define Z_ILP32_BITS_SHORT 16
#define Z_ILP32_BITS_INT 32
#define Z_ILP32_BITS_LONG 32
#define Z_ILP32_BITS_LLONG 64
#define Z_ILP32_BITS_SIZE 32
#define Z_ILP32_BITS_POINTER 32
#endif /* Z_formats_data_model_ILP32_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/ILP64.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_ILP64_H
#define Z_formats_data_model_ILP64_H
#define Z_ILP64_BITS_CHAR 8
#define Z_ILP64_BITS_SHORT 16
#define Z_ILP64_BITS_INT 64
#define Z_ILP64_BITS_LONG 64
#define Z_ILP64_BITS_LLONG 64
#define Z_ILP64_BITS_SIZE 64
#define Z_ILP64_BITS_POINTER 64
#endif /* Z_formats_data_model_ILP64_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/IP16L32.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_IP16L32_H
#define Z_formats_data_model_IP16L32_H
#define Z_IP16L32_BITS_CHAR 8
#define Z_IP16L32_BITS_SHORT 16
#define Z_IP16L32_BITS_INT 16
#define Z_IP16L32_BITS_LONG 32
#define Z_IP16L32_BITS_LLONG 32
#define Z_IP16L32_BITS_SIZE 16
#define Z_IP16L32_BITS_POINTER 16
#endif /* Z_formats_data_model_IP16L32_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/LLP64.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_LLP64_H
#define Z_formats_data_model_LLP64_H
#define Z_LLP64_BITS_CHAR 8
#define Z_LLP64_BITS_SHORT 16
#define Z_LLP64_BITS_INT 32
#define Z_LLP64_BITS_LONG 32
#define Z_LLP64_BITS_LLONG 64
#define Z_LLP64_BITS_SIZE 64
#define Z_LLP64_BITS_POINTER 64
#endif /* Z_formats_data_model_LLP64_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/LP32.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_LP32_H
#define Z_formats_data_model_LP32_H
#define Z_LP32_BITS_CHAR 8
#define Z_LP32_BITS_SHORT 16
#define Z_LP32_BITS_INT 16
#define Z_LP32_BITS_LONG 32
#define Z_LP32_BITS_LLONG 64
#define Z_LP32_BITS_SIZE 32
#define Z_LP32_BITS_POINTER 32
#endif /* Z_formats_data_model_LP32_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/LP64.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_LP64_H
#define Z_formats_data_model_LP64_H
#define Z_LP64_BITS_CHAR 8
#define Z_LP64_BITS_SHORT 16
#define Z_LP64_BITS_INT 32
#define Z_LP64_BITS_LONG 64
#define Z_LP64_BITS_LLONG 64
#define Z_LP64_BITS_SIZE 64
#define Z_LP64_BITS_POINTER 64
#endif /* Z_formats_data_model_LP64_H */

View File

@@ -0,0 +1,20 @@
/* Zeta API - Z/formats/data model/SILP64.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_data_model_SILP64_H
#define Z_formats_data_model_SILP64_H
#define Z_SILP64_BITS_CHAR 8
#define Z_SILP64_BITS_SHORT 64
#define Z_SILP64_BITS_INT 64
#define Z_SILP64_BITS_LONG 64
#define Z_SILP64_BITS_LLONG 64
#define Z_SILP64_BITS_SIZE 64
#define Z_SILP64_BITS_POINTER 64
#endif /* Z_formats_data_model_SILP64_H */

View File

@@ -0,0 +1,27 @@
/* Zeta API - Z/formats/floating-point/Brain Floating-Point.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_floating_point_Brain_Floating_Point_H
#define Z_formats_floating_point_Brain_Floating_Point_H
#define Z_BRAIN_FLOATING_POINT_BITS 16
#define Z_BRAIN_FLOATING_POINT_BIAS 127
#define Z_BRAIN_FLOATING_POINT_DIGITS_10
#define Z_BRAIN_FLOATING_POINT_MAXIMUM_DIGITS_10
#define Z_BRAIN_FLOATING_POINT_RADIX 2
#define Z_BRAIN_FLOATING_POINT_SIGNIFICAND_DIGITS
#define Z_BRAIN_FLOATING_POINT_EXPONENT_MAXIMUM 127
#define Z_BRAIN_FLOATING_POINT_EXPONENT_MINIMUM -126
#define Z_BRAIN_FLOATING_POINT_EXPONENT_10_MAXIMUM
#define Z_BRAIN_FLOATING_POINT_EXPONENT_10_MINIMUM
#define Z_BRAIN_FLOATING_POINT_EPSILON
#define Z_BRAIN_FLOATING_POINT_MAXIMUM
#define Z_BRAIN_FLOATING_POINT_MINIMUM
#define Z_BRAIN_FLOATING_POINT_DENORMAL_MINIMUM
#endif /* Z_formats_floating_point_Brain_Floating_Point_H */

View File

@@ -0,0 +1,27 @@
/* Zeta API - Z/formats/floating-point/IBM.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_floating_point_IBM_H
#define Z_formats_floating_point_IBM_H
#define Z_IBM_EXTENDED_DOUBLE_BITS 128
#define Z_IBM_EXTENDED_DOUBLE_BIAS
#define Z_IBM_EXTENDED_DOUBLE_DIGITS_10 30 /* (?) */
#define Z_IBM_EXTENDED_DOUBLE_MAXIMUM_DIGITS_10 34 /* (?) */
#define Z_IBM_EXTENDED_DOUBLE_RADIX 2
#define Z_IBM_EXTENDED_DOUBLE_SIGNIFICAND_DIGITS 106
#define Z_IBM_EXTENDED_DOUBLE_EXPONENT_MAXIMUM 1023
#define Z_IBM_EXTENDED_DOUBLE_EXPONENT_MINIMUM -967
#define Z_IBM_EXTENDED_DOUBLE_EXPONENT_10_MAXIMUM 308
#define Z_IBM_EXTENDED_DOUBLE_EXPONENT_10_MINIMUM -291
#define Z_IBM_EXTENDED_DOUBLE_EPSILON 4.94065645841246544176568792868221e-324
#define Z_IBM_EXTENDED_DOUBLE_MAXIMUM 1.79769313486231580793728971405301e+308
#define Z_IBM_EXTENDED_DOUBLE_MINIMUM 2.00416836000897277799610805135016e-292
#define Z_IBM_EXTENDED_DOUBLE_DENORMAL_MINIMUM 4.94065645841246544176568792868221e-324
#endif /* Z_formats_floating_point_IBM_H */

View File

@@ -0,0 +1,117 @@
/* Zeta API - Z/formats/floating-point/IEEE 754.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_floating_point_IEEE_754_H
#define Z_formats_floating_point_IEEE_754_H
#define Z_IEEE_754_BINARY16_BITS 16
#define Z_IEEE_754_BINARY16_BIAS 15
#define Z_IEEE_754_BINARY16_DIGITS_10 3
#define Z_IEEE_754_BINARY16_MAXIMUM_DIGITS_10 5
#define Z_IEEE_754_BINARY16_RADIX 2
#define Z_IEEE_754_BINARY16_SIGNIFICAND_DIGITS 11
#define Z_IEEE_754_BINARY16_EXPONENT_MAXIMUM 15
#define Z_IEEE_754_BINARY16_EXPONENT_MINIMUM -14
#define Z_IEEE_754_BINARY16_EXPONENT_10_MAXIMUM 4
#define Z_IEEE_754_BINARY16_EXPONENT_10_MINIMUM -3 /* correct? -4? */
#define Z_IEEE_754_BINARY16_EPSILON 9.765625e-4 /* correct? */
#define Z_IEEE_754_BINARY16_MAXIMUM 65504.0
#define Z_IEEE_754_BINARY16_MINIMUM 6.103515625e-5
#define Z_IEEE_754_BINARY16_DENORMAL_MINIMUM 5.9604644775390625e-8
#define Z_IEEE_754_BINARY32_BITS 32
#define Z_IEEE_754_BINARY32_BIAS 127
#define Z_IEEE_754_BINARY32_DIGITS_10 6
#define Z_IEEE_754_BINARY32_MAXIMUM_DIGITS_10 9
#define Z_IEEE_754_BINARY32_RADIX 2
#define Z_IEEE_754_BINARY32_SIGNIFICAND_DIGITS 24
#define Z_IEEE_754_BINARY32_EXPONENT_MAXIMUM 127
#define Z_IEEE_754_BINARY32_EXPONENT_MINIMUM -126
#define Z_IEEE_754_BINARY32_EXPONENT_10_MAXIMUM 38
#define Z_IEEE_754_BINARY32_EXPONENT_10_MINIMUM -37
#define Z_IEEE_754_BINARY32_EPSILON 1.192092896e-7
#define Z_IEEE_754_BINARY32_MAXIMUM 3.402823466e+38
#define Z_IEEE_754_BINARY32_MINIMUM 1.175494351e-38
#define Z_IEEE_754_BINARY32_DENORMAL_MINIMUM 1.401298460e-45
#define Z_IEEE_754_BINARY64_BITS 64
#define Z_IEEE_754_BINARY64_BIAS 1023
#define Z_IEEE_754_BINARY64_DIGITS_10 15
#define Z_IEEE_754_BINARY64_MAXIMUM_DIGITS_10 17
#define Z_IEEE_754_BINARY64_RADIX 2
#define Z_IEEE_754_BINARY64_SIGNIFICAND_DIGITS 53
#define Z_IEEE_754_BINARY64_EXPONENT_MAXIMUM 1023
#define Z_IEEE_754_BINARY64_EXPONENT_MINIMUM -1022
#define Z_IEEE_754_BINARY64_EXPONENT_10_MAXIMUM 308
#define Z_IEEE_754_BINARY64_EXPONENT_10_MINIMUM -307
#define Z_IEEE_754_BINARY64_EPSILON 2.2204460492503131e-16
#define Z_IEEE_754_BINARY64_MAXIMUM 1.7976931348623158e+308
#define Z_IEEE_754_BINARY64_MINIMUM 2.2250738585072014e-308
#define Z_IEEE_754_BINARY64_DENORMAL_MINIMUM 4.9406564584124654e-324
#define Z_IEEE_754_BINARY128_BITS 128
#define Z_IEEE_754_BINARY128_BIAS 16383
#define Z_IEEE_754_BINARY128_DIGITS_10 33
#define Z_IEEE_754_BINARY128_MAXIMUM_DIGITS_10 36
#define Z_IEEE_754_BINARY128_RADIX 2
#define Z_IEEE_754_BINARY128_SIGNIFICAND_DIGITS 113
#define Z_IEEE_754_BINARY128_EXPONENT_MAXIMUM 16383
#define Z_IEEE_754_BINARY128_EXPONENT_MINIMUM -16382
#define Z_IEEE_754_BINARY128_EXPONENT_10_MAXIMUM 4932
#define Z_IEEE_754_BINARY128_EXPONENT_10_MINIMUM -4931
#define Z_IEEE_754_BINARY128_EPSILON 1.92592994438723585305597794258492732e-34
#define Z_IEEE_754_BINARY128_MAXIMUM 1.18973149535723176508575932662800702e+4932
#define Z_IEEE_754_BINARY128_MINIMUM 3.36210314311209350626267781732175260e-4932
#define Z_IEEE_754_BINARY128_DENORMAL_MINIMUM 6.47517511943802511092443895822764655e-4966
#define Z_IEEE_754_DECIMAL32_BITS 32
#define Z_IEEE_754_DECIMAL32_BIAS 101
#define Z_IEEE_754_DECIMAL32_DIGITS_10
#define Z_IEEE_754_DECIMAL32_MAXIMUM_DIGITS_10
#define Z_IEEE_754_DECIMAL32_RADIX 10
#define Z_IEEE_754_DECIMAL32_SIGNIFICAND_DIGITS 7
#define Z_IEEE_754_DECIMAL32_EXPONENT_MAXIMUM 96
#define Z_IEEE_754_DECIMAL32_EXPONENT_MINIMUM -95
#define Z_IEEE_754_DECIMAL32_EXPONENT_10_MAXIMUM
#define Z_IEEE_754_DECIMAL32_EXPONENT_10_MINIMUM
#define Z_IEEE_754_DECIMAL32_EPSILON 1e-6
#define Z_IEEE_754_DECIMAL32_MAXIMUM 9.999999e+96
#define Z_IEEE_754_DECIMAL32_MINIMUM 1e-95
#define Z_IEEE_754_DECIMAL32_DENORMAL_MINIMUM 0.000001e-95
#define Z_IEEE_754_DECIMAL64_BITS 64
#define Z_IEEE_754_DECIMAL64_BIAS 398
#define Z_IEEE_754_DECIMAL64_DIGITS_10
#define Z_IEEE_754_DECIMAL64_MAXIMUM_DIGITS_10
#define Z_IEEE_754_DECIMAL64_RADIX 10
#define Z_IEEE_754_DECIMAL64_SIGNIFICAND_DIGITS 16
#define Z_IEEE_754_DECIMAL64_EXPONENT_MAXIMUM 384
#define Z_IEEE_754_DECIMAL64_EXPONENT_MINIMUM -383
#define Z_IEEE_754_DECIMAL64_EXPONENT_10_MAXIMUM
#define Z_IEEE_754_DECIMAL64_EXPONENT_10_MINIMUM
#define Z_IEEE_754_DECIMAL64_EPSILON 1e-15
#define Z_IEEE_754_DECIMAL64_MAXIMUM 9.999999999999999e+384
#define Z_IEEE_754_DECIMAL64_MINIMUM 1e-383
#define Z_IEEE_754_DECIMAL64_DENORMAL_MINIMUM 0.000000000000001e-383
#define Z_IEEE_754_DECIMAL128_BITS 128
#define Z_IEEE_754_DECIMAL128_BIAS 6176
#define Z_IEEE_754_DECIMAL128_DIGITS_10
#define Z_IEEE_754_DECIMAL128_MAXIMUM_DIGITS_10
#define Z_IEEE_754_DECIMAL128_RADIX 10
#define Z_IEEE_754_DECIMAL128_SIGNIFICAND_DIGITS 34
#define Z_IEEE_754_DECIMAL128_EXPONENT_MAXIMUM 6144
#define Z_IEEE_754_DECIMAL128_EXPONENT_MINIMUM -6143
#define Z_IEEE_754_DECIMAL128_EXPONENT_10_MAXIMUM
#define Z_IEEE_754_DECIMAL128_EXPONENT_10_MINIMUM
#define Z_IEEE_754_DECIMAL128_EPSILON 1e-33
#define Z_IEEE_754_DECIMAL128_MAXIMUM 9.999999999999999999999999999999999e+6144
#define Z_IEEE_754_DECIMAL128_MINIMUM 1e-6143
#define Z_IEEE_754_DECIMAL128_DENORMAL_MINIMUM 0.000000000000000000000000000000001e-6143
#endif /* Z_formats_floating_point_IEEE_754_H */

View File

@@ -0,0 +1,27 @@
/* Zeta API - Z/formats/floating-point/x87.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_floating_point_x87_H
#define Z_formats_floating_point_x87_H
#define Z_X87_DOUBLE_EXTENDED_BITS 80
#define Z_X87_DOUBLE_EXTENDED_BIAS 16383
#define Z_X87_DOUBLE_EXTENDED_DIGITS_10 19 /* 18 (?) */
#define Z_X87_DOUBLE_EXTENDED_MAXIMUM_DIGITS_10 21
#define Z_X87_DOUBLE_EXTENDED_RADIX 2
#define Z_X87_DOUBLE_EXTENDED_SIGNIFICAND_DIGITS 64
#define Z_X87_DOUBLE_EXTENDED_EXPONENT_MAXIMUM 16383
#define Z_X87_DOUBLE_EXTENDED_EXPONENT_MINIMUM -16382
#define Z_X87_DOUBLE_EXTENDED_EXPONENT_10_MAXIMUM 4932
#define Z_X87_DOUBLE_EXTENDED_EXPONENT_10_MINIMUM -4931
#define Z_X87_DOUBLE_EXTENDED_EPSILON 1.08420217248550443401e-19
#define Z_X87_DOUBLE_EXTENDED_MAXIMUM 1.18973149535723176502e+4932
#define Z_X87_DOUBLE_EXTENDED_MINIMUM 3.36210314311209350626e-4932
#define Z_X87_DOUBLE_EXTENDED_DENORMAL_MINIMUM 3.64519953188247460253e-4951
#endif /* Z_formats_floating_point_x87_H */

View File

@@ -0,0 +1,285 @@
/* Zeta API - Z/formats/keymap/Mac OS.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_keymap_Mac_OS_H
#define Z_formats_keymap_Mac_OS_H
#define Z_MAC_OS_KEY_CODE_ANSI_A 0
#define Z_MAC_OS_KEY_CODE_ANSI_S 1
#define Z_MAC_OS_KEY_CODE_ANSI_D 2
#define Z_MAC_OS_KEY_CODE_ANSI_F 3
#define Z_MAC_OS_KEY_CODE_ANSI_H 4
#define Z_MAC_OS_KEY_CODE_ANSI_G 5
#define Z_MAC_OS_KEY_CODE_ANSI_Z 6
#define Z_MAC_OS_KEY_CODE_ANSI_X 7
#define Z_MAC_OS_KEY_CODE_ANSI_C 8
#define Z_MAC_OS_KEY_CODE_ANSI_V 9
#define Z_MAC_OS_KEY_CODE_ISO_SECTION 10
#define Z_MAC_OS_KEY_CODE_ANSI_B 11
#define Z_MAC_OS_KEY_CODE_ANSI_Q 12
#define Z_MAC_OS_KEY_CODE_ANSI_W 13
#define Z_MAC_OS_KEY_CODE_ANSI_E 14
#define Z_MAC_OS_KEY_CODE_ANSI_R 15
#define Z_MAC_OS_KEY_CODE_ANSI_Y 16
#define Z_MAC_OS_KEY_CODE_ANSI_T 17
#define Z_MAC_OS_KEY_CODE_ANSI_1 18
#define Z_MAC_OS_KEY_CODE_ANSI_2 19
#define Z_MAC_OS_KEY_CODE_ANSI_3 20
#define Z_MAC_OS_KEY_CODE_ANSI_4 21
#define Z_MAC_OS_KEY_CODE_ANSI_6 22
#define Z_MAC_OS_KEY_CODE_ANSI_5 23
#define Z_MAC_OS_KEY_CODE_ANSI_EQUALS_SIGN 24
#define Z_MAC_OS_KEY_CODE_ANSI_9 25
#define Z_MAC_OS_KEY_CODE_ANSI_7 26
#define Z_MAC_OS_KEY_CODE_ANSI_HYPHEN_MINUS 27
#define Z_MAC_OS_KEY_CODE_ANSI_8 28
#define Z_MAC_OS_KEY_CODE_ANSI_0 29
#define Z_MAC_OS_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET 30
#define Z_MAC_OS_KEY_CODE_ANSI_O 31
#define Z_MAC_OS_KEY_CODE_ANSI_U 32
#define Z_MAC_OS_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET 33
#define Z_MAC_OS_KEY_CODE_ANSI_I 34
#define Z_MAC_OS_KEY_CODE_ANSI_P 35
#define Z_MAC_OS_KEY_CODE_RETURN 36
#define Z_MAC_OS_KEY_CODE_ANSI_L 37
#define Z_MAC_OS_KEY_CODE_ANSI_J 38
#define Z_MAC_OS_KEY_CODE_ANSI_APOSTROPHE 39
#define Z_MAC_OS_KEY_CODE_ANSI_K 40
#define Z_MAC_OS_KEY_CODE_ANSI_SEMICOLON 41
#define Z_MAC_OS_KEY_CODE_ANSI_REVERSE_SOLIDUS 42
#define Z_MAC_OS_KEY_CODE_ANSI_COMMA 43
#define Z_MAC_OS_KEY_CODE_ANSI_SOLIDUS 44
#define Z_MAC_OS_KEY_CODE_ANSI_N 45
#define Z_MAC_OS_KEY_CODE_ANSI_M 46
#define Z_MAC_OS_KEY_CODE_ANSI_FULL_STOP 47
#define Z_MAC_OS_KEY_CODE_TAB 48
#define Z_MAC_OS_KEY_CODE_SPACE 49
#define Z_MAC_OS_KEY_CODE_ANSI_GRAVE_ACCENT 50
#define Z_MAC_OS_KEY_CODE_BACKSPACE 51
/* 52 - Unused? */
#define Z_MAC_OS_KEY_CODE_ESCAPE 53
#define Z_MAC_OS_KEY_CODE_RIGHT_COMMAND 54
#define Z_MAC_OS_KEY_CODE_LEFT_COMMAND 55
#define Z_MAC_OS_KEY_CODE_LEFT_SHIFT 56
#define Z_MAC_OS_KEY_CODE_CAPS_LOCK 57
#define Z_MAC_OS_KEY_CODE_LEFT_OPTION 58
#define Z_MAC_OS_KEY_CODE_LEFT_CONTROL 59
#define Z_MAC_OS_KEY_CODE_RIGHT_SHIFT 60
#define Z_MAC_OS_KEY_CODE_RIGHT_OPTION 61
#define Z_MAC_OS_KEY_CODE_RIGHT_CONTROL 62
#define Z_MAC_OS_KEY_CODE_FUNCTION 63
#define Z_MAC_OS_KEY_CODE_F17 64
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR 65
/* 66 - Unused? */
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_ASTERISK 67
/* 68 - Unused? */
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN 69
/* 70 - Unused? */
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_CLEAR 71
#define Z_MAC_OS_KEY_CODE_VOLUME_UP 72
#define Z_MAC_OS_KEY_CODE_VOLUME_DOWN 73
#define Z_MAC_OS_KEY_CODE_MUTE 74
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_SOLIDUS 75 /* PC keyboards */
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_ENTER 76
/* 77 - Unused? */
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS 78
#define Z_MAC_OS_KEY_CODE_F18 79
#define Z_MAC_OS_KEY_CODE_F19 80
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_EQUALS_SIGN 81
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_0 82
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_1 83
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_2 84
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_3 85
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_4 86
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_5 87
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_6 88
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_7 89
#define Z_MAC_OS_KEY_CODE_F20 90
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_8 91
#define Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_9 92
#define Z_MAC_OS_KEY_CODE_JIS_YEN_SIGN 93
#define Z_MAC_OS_KEY_CODE_JIS_LOW_LINE 94
#define Z_MAC_OS_KEY_CODE_JIS_KEYPAD_COMMA 95
#define Z_MAC_OS_KEY_CODE_F5 96
#define Z_MAC_OS_KEY_CODE_F6 97
#define Z_MAC_OS_KEY_CODE_F7 98
#define Z_MAC_OS_KEY_CODE_F3 99
#define Z_MAC_OS_KEY_CODE_F8 100
#define Z_MAC_OS_KEY_CODE_F9 101
#define Z_MAC_OS_KEY_CODE_JIS_EISU 102 /* Toggles alphanumeric characters */
#define Z_MAC_OS_KEY_CODE_F11 103
#define Z_MAC_OS_KEY_CODE_JIS_KANA 104
#define Z_MAC_OS_KEY_CODE_F13 105
#define Z_MAC_OS_KEY_CODE_F16 106
#define Z_MAC_OS_KEY_CODE_F14 107
/* 108 - Unused? */
#define Z_MAC_OS_KEY_CODE_F10 109
#define Z_MAC_OS_KEY_CODE_APPLICATION 110 /* PC/Windows keyboards */
#define Z_MAC_OS_KEY_CODE_F12 111
/* 112 - Unused? */
#define Z_MAC_OS_KEY_CODE_F15 113
#define Z_MAC_OS_KEY_CODE_HELP 114
#define Z_MAC_OS_KEY_CODE_HOME 115
#define Z_MAC_OS_KEY_CODE_PAGE_UP 116
#define Z_MAC_OS_KEY_CODE_DELETE 117
#define Z_MAC_OS_KEY_CODE_F4 118
#define Z_MAC_OS_KEY_CODE_END 119
#define Z_MAC_OS_KEY_CODE_F2 120
#define Z_MAC_OS_KEY_CODE_PAGE_DOWN 121
#define Z_MAC_OS_KEY_CODE_F1 122
#define Z_MAC_OS_KEY_CODE_LEFT 123
#define Z_MAC_OS_KEY_CODE_RIGHT 124
#define Z_MAC_OS_KEY_CODE_DOWN 125
#define Z_MAC_OS_KEY_CODE_UP 126
/* 127 - Unused? */
#define Z_MAC_OS_KEY_MASK_CAPS_LOCK 0x010000
#define Z_MAC_OS_KEY_MASK_SHIFT 0x020000
#define Z_MAC_OS_KEY_MASK_CONTROL 0x040000
#define Z_MAC_OS_KEY_MASK_COMMAND 0x100000
#define Z_MAC_OS_KEY_MASK_OPTION 0x080000
#define Z_MAC_OS_KEY_MASK_LEFT_SHIFT 0x000002
#define Z_MAC_OS_KEY_MASK_LEFT_CONTROL 0x000001
#define Z_MAC_OS_KEY_MASK_LEFT_COMMAND 0x000008
#define Z_MAC_OS_KEY_MASK_LEFT_OPTION 0x000020
#define Z_MAC_OS_KEY_MASK_RIGHT_OPTION 0x000040
#define Z_MAC_OS_KEY_MASK_RIGHT_COMMAND 0x000010
#define Z_MAC_OS_KEY_MASK_RIGHT_CONTROL 0x002000
#define Z_MAC_OS_KEY_MASK_RIGHT_SHIFT 0x000004
#define Z_ARRAY_CONTENT_MAC_OS_KEY_CODE_TO_Z_KEY_CODE \
Z_KEY_CODE_ANSI_A, /* 0 - Z_MAC_OS_KEY_CODE_ANSI_A */ \
Z_KEY_CODE_ANSI_S, /* 1 - Z_MAC_OS_KEY_CODE_ANSI_S */ \
Z_KEY_CODE_ANSI_D, /* 2 - Z_MAC_OS_KEY_CODE_ANSI_D */ \
Z_KEY_CODE_ANSI_F, /* 3 - Z_MAC_OS_KEY_CODE_ANSI_F */ \
Z_KEY_CODE_ANSI_H, /* 4 - Z_MAC_OS_KEY_CODE_ANSI_H */ \
Z_KEY_CODE_ANSI_G, /* 5 - Z_MAC_OS_KEY_CODE_ANSI_G */ \
Z_KEY_CODE_ANSI_Z, /* 6 - Z_MAC_OS_KEY_CODE_ANSI_Z */ \
Z_KEY_CODE_ANSI_X, /* 7 - Z_MAC_OS_KEY_CODE_ANSI_X */ \
Z_KEY_CODE_ANSI_C, /* 8 - Z_MAC_OS_KEY_CODE_ANSI_C */ \
Z_KEY_CODE_ANSI_V, /* 9 - Z_MAC_OS_KEY_CODE_ANSI_V */ \
Z_KEY_CODE_ISO_SECTION, /* 10 - Z_MAC_OS_KEY_CODE_ISO_SECTION */ \
Z_KEY_CODE_ANSI_B, /* 11 - Z_MAC_OS_KEY_CODE_ANSI_B */ \
Z_KEY_CODE_ANSI_Q, /* 12 - Z_MAC_OS_KEY_CODE_ANSI_Q */ \
Z_KEY_CODE_ANSI_W, /* 13 - Z_MAC_OS_KEY_CODE_ANSI_W */ \
Z_KEY_CODE_ANSI_E, /* 14 - Z_MAC_OS_KEY_CODE_ANSI_E */ \
Z_KEY_CODE_ANSI_R, /* 15 - Z_MAC_OS_KEY_CODE_ANSI_R */ \
Z_KEY_CODE_ANSI_Y, /* 16 - Z_MAC_OS_KEY_CODE_ANSI_Y */ \
Z_KEY_CODE_ANSI_T, /* 17 - Z_MAC_OS_KEY_CODE_ANSI_T */ \
Z_KEY_CODE_ANSI_1, /* 18 - Z_MAC_OS_KEY_CODE_ANSI_1 */ \
Z_KEY_CODE_ANSI_2, /* 19 - Z_MAC_OS_KEY_CODE_ANSI_2 */ \
Z_KEY_CODE_ANSI_3, /* 20 - Z_MAC_OS_KEY_CODE_ANSI_3 */ \
Z_KEY_CODE_ANSI_4, /* 21 - Z_MAC_OS_KEY_CODE_ANSI_4 */ \
Z_KEY_CODE_ANSI_6, /* 22 - Z_MAC_OS_KEY_CODE_ANSI_6 */ \
Z_KEY_CODE_ANSI_5, /* 23 - Z_MAC_OS_KEY_CODE_ANSI_5 */ \
Z_KEY_CODE_ANSI_EQUALS_SIGN, /* 24 - Z_MAC_OS_KEY_CODE_ANSI_EQUALS_SIGN */ \
Z_KEY_CODE_ANSI_9, /* 25 - Z_MAC_OS_KEY_CODE_ANSI_9 */ \
Z_KEY_CODE_ANSI_7, /* 26 - Z_MAC_OS_KEY_CODE_ANSI_7 */ \
Z_KEY_CODE_ANSI_HYPHEN_MINUS, /* 27 - Z_MAC_OS_KEY_CODE_ANSI_HYPHEN_MINUS */ \
Z_KEY_CODE_ANSI_8, /* 28 - Z_MAC_OS_KEY_CODE_ANSI_8 */ \
Z_KEY_CODE_ANSI_0, /* 29 - Z_MAC_OS_KEY_CODE_ANSI_0 */ \
Z_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET, /* 30 - Z_MAC_OS_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET */ \
Z_KEY_CODE_ANSI_O, /* 31 - Z_MAC_OS_KEY_CODE_ANSI_O */ \
Z_KEY_CODE_ANSI_U, /* 32 - Z_MAC_OS_KEY_CODE_ANSI_U */ \
Z_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET, /* 33 - Z_MAC_OS_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET */ \
Z_KEY_CODE_ANSI_I, /* 34 - Z_MAC_OS_KEY_CODE_ANSI_I */ \
Z_KEY_CODE_ANSI_P, /* 35 - Z_MAC_OS_KEY_CODE_ANSI_P */ \
Z_KEY_CODE_RETURN, /* 36 - Z_MAC_OS_KEY_CODE_RETURN */ \
Z_KEY_CODE_ANSI_L, /* 37 - Z_MAC_OS_KEY_CODE_ANSI_L */ \
Z_KEY_CODE_ANSI_J, /* 38 - Z_MAC_OS_KEY_CODE_ANSI_J */ \
Z_KEY_CODE_ANSI_APOSTROPHE, /* 39 - Z_MAC_OS_KEY_CODE_ANSI_APOSTROPHE */ \
Z_KEY_CODE_ANSI_K, /* 40 - Z_MAC_OS_KEY_CODE_ANSI_K */ \
Z_KEY_CODE_ANSI_SEMICOLON, /* 41 - Z_MAC_OS_KEY_CODE_ANSI_SEMICOLON */ \
Z_KEY_CODE_ANSI_REVERSE_SOLIDUS, /* 42 - Z_MAC_OS_KEY_CODE_ANSI_REVERSE_SOLIDUS */ \
Z_KEY_CODE_ANSI_COMMA, /* 43 - Z_MAC_OS_KEY_CODE_ANSI_COMMA */ \
Z_KEY_CODE_ANSI_SOLIDUS, /* 44 - Z_MAC_OS_KEY_CODE_ANSI_SOLIDUS */ \
Z_KEY_CODE_ANSI_N, /* 45 - Z_MAC_OS_KEY_CODE_ANSI_N */ \
Z_KEY_CODE_ANSI_M, /* 46 - Z_MAC_OS_KEY_CODE_ANSI_M */ \
Z_KEY_CODE_ANSI_FULL_STOP, /* 47 - Z_MAC_OS_KEY_CODE_ANSI_FULL_STOP */ \
Z_KEY_CODE_TAB, /* 48 - Z_MAC_OS_KEY_CODE_TAB */ \
Z_KEY_CODE_SPACE, /* 49 - Z_MAC_OS_KEY_CODE_SPACE */ \
Z_KEY_CODE_ANSI_GRAVE_ACCENT, /* 50 - Z_MAC_OS_KEY_CODE_ANSI_GRAVE_ACCENT */ \
Z_KEY_CODE_BACKSPACE, /* 51 - Z_MAC_OS_KEY_CODE_BACKSPACE */ \
Z_KEY_CODE_INVALID, /* 52 */ \
Z_KEY_CODE_ESCAPE, /* 53 - Z_MAC_OS_KEY_CODE_ESCAPE */ \
Z_KEY_CODE_RIGHT_COMMAND, /* 54 - Z_MAC_OS_KEY_CODE_RIGHT_COMMAND */ \
Z_KEY_CODE_LEFT_COMMAND, /* 55 - Z_MAC_OS_KEY_CODE_LEFT_COMMAND */ \
Z_KEY_CODE_LEFT_SHIFT, /* 56 - Z_MAC_OS_KEY_CODE_LEFT_SHIFT */ \
Z_KEY_CODE_CAPS_LOCK, /* 57 - Z_MAC_OS_KEY_CODE_CAPS_LOCK */ \
Z_KEY_CODE_LEFT_OPTION, /* 58 - Z_MAC_OS_KEY_CODE_LEFT_OPTION */ \
Z_KEY_CODE_LEFT_CONTROL, /* 59 - Z_MAC_OS_KEY_CODE_LEFT_CONTROL */ \
Z_KEY_CODE_RIGHT_SHIFT, /* 60 - Z_MAC_OS_KEY_CODE_RIGHT_SHIFT */ \
Z_KEY_CODE_RIGHT_OPTION, /* 61 - Z_MAC_OS_KEY_CODE_RIGHT_OPTION */ \
Z_KEY_CODE_RIGHT_CONTROL, /* 62 - Z_MAC_OS_KEY_CODE_RIGHT_CONTROL */ \
Z_KEY_CODE_FUNCTION, /* 63 - Z_MAC_OS_KEY_CODE_FUNCTION */ \
Z_KEY_CODE_F17, /* 64 - Z_MAC_OS_KEY_CODE_F17 */ \
Z_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR, /* 65 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR */ \
Z_KEY_CODE_INVALID, /* 66 */ \
Z_KEY_CODE_ANSI_KEYPAD_ASTERISK, /* 67 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_ASTERISK */ \
Z_KEY_CODE_INVALID, /* 68 */ \
Z_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN, /* 69 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN */ \
Z_KEY_CODE_INVALID, /* 70 */ \
Z_KEY_CODE_ANSI_KEYPAD_NUM_LOCK, /* 71 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_CLEAR */ \
Z_KEY_CODE_VOLUME_UP, /* 72 - Z_MAC_OS_KEY_CODE_VOLUME_UP */ \
Z_KEY_CODE_VOLUME_DOWN, /* 73 - Z_MAC_OS_KEY_CODE_VOLUME_DOWN */ \
Z_KEY_CODE_MUTE, /* 74 - Z_MAC_OS_KEY_CODE_MUTE */ \
Z_KEY_CODE_ANSI_KEYPAD_SOLIDUS, /* 75 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_SOLIDUS */ \
Z_KEY_CODE_ANSI_KEYPAD_ENTER, /* 76 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_ENTER */ \
Z_KEY_CODE_INVALID, /* 77 */ \
Z_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS, /* 78 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS */ \
Z_KEY_CODE_F18, /* 79 - Z_MAC_OS_KEY_CODE_F18 */ \
Z_KEY_CODE_F19, /* 80 - Z_MAC_OS_KEY_CODE_F19 */ \
Z_KEY_CODE_APPLE_ANSI_KEYPAD_EQUALS_SIGN, /* 81 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_EQUALS_SIGN */ \
Z_KEY_CODE_ANSI_KEYPAD_0, /* 82 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_0 */ \
Z_KEY_CODE_ANSI_KEYPAD_1, /* 83 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_1 */ \
Z_KEY_CODE_ANSI_KEYPAD_2, /* 84 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_2 */ \
Z_KEY_CODE_ANSI_KEYPAD_3, /* 85 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_3 */ \
Z_KEY_CODE_ANSI_KEYPAD_4, /* 86 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_4 */ \
Z_KEY_CODE_ANSI_KEYPAD_5, /* 87 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_5 */ \
Z_KEY_CODE_ANSI_KEYPAD_6, /* 88 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_6 */ \
Z_KEY_CODE_ANSI_KEYPAD_7, /* 89 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_7 */ \
Z_KEY_CODE_F20, /* 90 - Z_MAC_OS_KEY_CODE_F20 */ \
Z_KEY_CODE_ANSI_KEYPAD_8, /* 91 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_8 */ \
Z_KEY_CODE_ANSI_KEYPAD_9, /* 92 - Z_MAC_OS_KEY_CODE_ANSI_KEYPAD_9 */ \
Z_KEY_CODE_JIS_YEN_SIGN, /* 93 - Z_MAC_OS_KEY_CODE_JIS_YEN_SIGN */ \
Z_KEY_CODE_JIS_LOW_LINE, /* 94 - Z_MAC_OS_KEY_CODE_JIS_LOW_LINE */ \
Z_KEY_CODE_JIS_KEYPAD_COMMA, /* 95 - Z_MAC_OS_KEY_CODE_JIS_KEYPAD_COMMA */ \
Z_KEY_CODE_F5, /* 96 - Z_MAC_OS_KEY_CODE_F5 */ \
Z_KEY_CODE_F6, /* 97 - Z_MAC_OS_KEY_CODE_F6 */ \
Z_KEY_CODE_F7, /* 98 - Z_MAC_OS_KEY_CODE_F7 */ \
Z_KEY_CODE_F3, /* 99 - Z_MAC_OS_KEY_CODE_F3 */ \
Z_KEY_CODE_F8, /* 100 - Z_MAC_OS_KEY_CODE_F8 */ \
Z_KEY_CODE_F9, /* 101 - Z_MAC_OS_KEY_CODE_F9 */ \
Z_KEY_CODE_JIS_EISU, /* 102 - Z_MAC_OS_KEY_CODE_JIS_EISU */ \
Z_KEY_CODE_F11, /* 103 - Z_MAC_OS_KEY_CODE_F11 */ \
Z_KEY_CODE_JIS_KANA, /* 104 - Z_MAC_OS_KEY_CODE_JIS_KANA */ \
Z_KEY_CODE_PRINT_SCREEN, /* 105 - Z_MAC_OS_KEY_CODE_F13 */ \
Z_KEY_CODE_F16, /* 106 - Z_MAC_OS_KEY_CODE_F16 */ \
Z_KEY_CODE_SCROLL_LOCK, /* 107 - Z_MAC_OS_KEY_CODE_F14 */ \
Z_KEY_CODE_INVALID, /* 108 */ \
Z_KEY_CODE_F10, /* 109 - Z_MAC_OS_KEY_CODE_F10 */ \
Z_KEY_CODE_APPLICATION, /* 110 - Z_MAC_OS_KEY_CODE_APPLICATION */ \
Z_KEY_CODE_F12, /* 111 - Z_MAC_OS_KEY_CODE_F12 */ \
Z_KEY_CODE_INVALID, /* 112 */ \
Z_KEY_CODE_PAUSE, /* 113 - Z_MAC_OS_KEY_CODE_F15 */ \
Z_KEY_CODE_INSERT, /* 114 - Z_MAC_OS_KEY_CODE_HELP */ \
Z_KEY_CODE_HOME, /* 115 - Z_MAC_OS_KEY_CODE_HOME */ \
Z_KEY_CODE_PAGE_UP, /* 116 - Z_MAC_OS_KEY_CODE_PAGE_UP */ \
Z_KEY_CODE_DELETE, /* 117 - Z_MAC_OS_KEY_CODE_DELETE */ \
Z_KEY_CODE_F4, /* 118 - Z_MAC_OS_KEY_CODE_F4 */ \
Z_KEY_CODE_END, /* 119 - Z_MAC_OS_KEY_CODE_END */ \
Z_KEY_CODE_F2, /* 120 - Z_MAC_OS_KEY_CODE_F2 */ \
Z_KEY_CODE_PAGE_DOWN, /* 121 - Z_MAC_OS_KEY_CODE_PAGE_DOWN */ \
Z_KEY_CODE_F1, /* 122 - Z_MAC_OS_KEY_CODE_F1 */ \
Z_KEY_CODE_LEFT, /* 123 - Z_MAC_OS_KEY_CODE_LEFT */ \
Z_KEY_CODE_RIGHT, /* 124 - Z_MAC_OS_KEY_CODE_RIGHT */ \
Z_KEY_CODE_DOWN, /* 125 - Z_MAC_OS_KEY_CODE_DOWN */ \
Z_KEY_CODE_UP, /* 126 - Z_MAC_OS_KEY_CODE_UP */ \
Z_KEY_CODE_INVALID /* 127 */
#endif /* Z_formats_keymap_Mac_OS_H */

View File

@@ -0,0 +1,468 @@
/* Zeta API - Z/formats/keymap/USB.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_keymap_USB_H
#define Z_formats_keymap_USB_H
#define Z_USB_KEY_CODE_KEYBOARD_ERROR_ROLL_OVER 0x01
#define Z_USB_KEY_CODE_KEYBOARD_POST_FAIL 0x02
#define Z_USB_KEY_CODE_KEYBOARD_ERROR_UNDEFINED 0x03
#define Z_USB_KEY_CODE_KEYBOARD_A 0x04
#define Z_USB_KEY_CODE_KEYBOARD_B 0x05
#define Z_USB_KEY_CODE_KEYBOARD_C 0x06
#define Z_USB_KEY_CODE_KEYBOARD_D 0x07
#define Z_USB_KEY_CODE_KEYBOARD_E 0x08
#define Z_USB_KEY_CODE_KEYBOARD_F 0x09
#define Z_USB_KEY_CODE_KEYBOARD_G 0x0A
#define Z_USB_KEY_CODE_KEYBOARD_H 0x0B
#define Z_USB_KEY_CODE_KEYBOARD_I 0x0C
#define Z_USB_KEY_CODE_KEYBOARD_J 0x0D
#define Z_USB_KEY_CODE_KEYBOARD_K 0x0E
#define Z_USB_KEY_CODE_KEYBOARD_L 0x0F
#define Z_USB_KEY_CODE_KEYBOARD_M 0x10
#define Z_USB_KEY_CODE_KEYBOARD_N 0x11
#define Z_USB_KEY_CODE_KEYBOARD_O 0x12
#define Z_USB_KEY_CODE_KEYBOARD_P 0x13
#define Z_USB_KEY_CODE_KEYBOARD_Q 0x14
#define Z_USB_KEY_CODE_KEYBOARD_R 0x15
#define Z_USB_KEY_CODE_KEYBOARD_S 0x16
#define Z_USB_KEY_CODE_KEYBOARD_T 0x17
#define Z_USB_KEY_CODE_KEYBOARD_U 0x18
#define Z_USB_KEY_CODE_KEYBOARD_V 0x19
#define Z_USB_KEY_CODE_KEYBOARD_W 0x1A
#define Z_USB_KEY_CODE_KEYBOARD_X 0x1B
#define Z_USB_KEY_CODE_KEYBOARD_Y 0x1C
#define Z_USB_KEY_CODE_KEYBOARD_Z 0x1D
#define Z_USB_KEY_CODE_KEYBOARD_1 0x1E
#define Z_USB_KEY_CODE_KEYBOARD_2 0x1F
#define Z_USB_KEY_CODE_KEYBOARD_3 0x20
#define Z_USB_KEY_CODE_KEYBOARD_4 0x21
#define Z_USB_KEY_CODE_KEYBOARD_5 0x22
#define Z_USB_KEY_CODE_KEYBOARD_6 0x23
#define Z_USB_KEY_CODE_KEYBOARD_7 0x24
#define Z_USB_KEY_CODE_KEYBOARD_8 0x25
#define Z_USB_KEY_CODE_KEYBOARD_9 0x26
#define Z_USB_KEY_CODE_KEYBOARD_0 0x27
#define Z_USB_KEY_CODE_KEYBOARD_RETURN 0x28
#define Z_USB_KEY_CODE_KEYBOARD_ESCAPE 0x29
#define Z_USB_KEY_CODE_KEYBOARD_BACKSPACE 0x2A
#define Z_USB_KEY_CODE_KEYBOARD_TAB 0x2B
#define Z_USB_KEY_CODE_KEYBOARD_SPACE 0x2C
#define Z_USB_KEY_CODE_KEYBOARD_HYPHEN_MINUS 0x2D
#define Z_USB_KEY_CODE_KEYBOARD_EQUALS_SIGN 0x2E
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_SQUARE_BRACKET 0x2F
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_SQUARE_BRACKET 0x30
#define Z_USB_KEY_CODE_KEYBOARD_REVERSE_SOLIDUS 0x31
#define Z_USB_KEY_CODE_KEYBOARD_NON_US_NUMBER_SIGN 0x32
#define Z_USB_KEY_CODE_KEYBOARD_SEMICOLON 0x33
#define Z_USB_KEY_CODE_KEYBOARD_APOSTROPHE 0x34
#define Z_USB_KEY_CODE_KEYBOARD_GRAVE_ACCENT 0x35
#define Z_USB_KEY_CODE_KEYBOARD_COMMA 0x36
#define Z_USB_KEY_CODE_KEYBOARD_FULL_STOP 0x37
#define Z_USB_KEY_CODE_KEYBOARD_SOLIDUS 0x38
#define Z_USB_KEY_CODE_KEYBOARD_CAPS_LOCK 0x39
#define Z_USB_KEY_CODE_KEYBOARD_F1 0x3A
#define Z_USB_KEY_CODE_KEYBOARD_F2 0x3B
#define Z_USB_KEY_CODE_KEYBOARD_F3 0x3C
#define Z_USB_KEY_CODE_KEYBOARD_F4 0x3D
#define Z_USB_KEY_CODE_KEYBOARD_F5 0x3E
#define Z_USB_KEY_CODE_KEYBOARD_F6 0x3F
#define Z_USB_KEY_CODE_KEYBOARD_F7 0x40
#define Z_USB_KEY_CODE_KEYBOARD_F8 0x41
#define Z_USB_KEY_CODE_KEYBOARD_F9 0x42
#define Z_USB_KEY_CODE_KEYBOARD_F10 0x43
#define Z_USB_KEY_CODE_KEYBOARD_F11 0x44
#define Z_USB_KEY_CODE_KEYBOARD_F12 0x45
#define Z_USB_KEY_CODE_KEYBOARD_PRINT_SCREEN 0x46
#define Z_USB_KEY_CODE_KEYBOARD_SCROLL_LOCK 0x47
#define Z_USB_KEY_CODE_KEYBOARD_PAUSE 0x48
#define Z_USB_KEY_CODE_KEYBOARD_INSERT 0x49
#define Z_USB_KEY_CODE_KEYBOARD_HOME 0x4A
#define Z_USB_KEY_CODE_KEYBOARD_PAGE_UP 0x4B
#define Z_USB_KEY_CODE_KEYBOARD_DELETE 0x4C
#define Z_USB_KEY_CODE_KEYBOARD_END 0x4D
#define Z_USB_KEY_CODE_KEYBOARD_PAGE_DOWN 0x4E
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_ARROW 0x4F
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_ARROW 0x50
#define Z_USB_KEY_CODE_KEYBOARD_DOWN_ARROW 0x51
#define Z_USB_KEY_CODE_KEYBOARD_UP_ARROW 0x52
#define Z_USB_KEY_CODE_KEYPAD_NUM_LOCK 0x53
#define Z_USB_KEY_CODE_KEYPAD_SOLIDUS 0x54
#define Z_USB_KEY_CODE_KEYPAD_ASTERISK 0x55
#define Z_USB_KEY_CODE_KEYPAD_HYPHEN_MINUS 0x56
#define Z_USB_KEY_CODE_KEYPAD_PLUS_SIGN 0x57
#define Z_USB_KEY_CODE_KEYPAD_ENTER 0x58
#define Z_USB_KEY_CODE_KEYPAD_1 0x59
#define Z_USB_KEY_CODE_KEYPAD_2 0x5A
#define Z_USB_KEY_CODE_KEYPAD_3 0x5B
#define Z_USB_KEY_CODE_KEYPAD_4 0x5C
#define Z_USB_KEY_CODE_KEYPAD_5 0x5D
#define Z_USB_KEY_CODE_KEYPAD_6 0x5E
#define Z_USB_KEY_CODE_KEYPAD_7 0x5F
#define Z_USB_KEY_CODE_KEYPAD_8 0x60
#define Z_USB_KEY_CODE_KEYPAD_9 0x61
#define Z_USB_KEY_CODE_KEYPAD_0 0x62
#define Z_USB_KEY_CODE_KEYPAD_DECIMAL_SEPARATOR 0x63
#define Z_USB_KEY_CODE_KEYBOARD_NON_US_REVERSE_SOLIDUS 0x64
#define Z_USB_KEY_CODE_KEYBOARD_APPLICATION 0x65
#define Z_USB_KEY_CODE_KEYBOARD_POWER 0x66
#define Z_USB_KEY_CODE_KEYPAD_EQUALS_SIGN 0x67
#define Z_USB_KEY_CODE_KEYBOARD_F13 0x68
#define Z_USB_KEY_CODE_KEYBOARD_F14 0x69
#define Z_USB_KEY_CODE_KEYBOARD_F15 0x6A
#define Z_USB_KEY_CODE_KEYBOARD_F16 0x6B
#define Z_USB_KEY_CODE_KEYBOARD_F17 0x6C
#define Z_USB_KEY_CODE_KEYBOARD_F18 0x6D
#define Z_USB_KEY_CODE_KEYBOARD_F19 0x6E
#define Z_USB_KEY_CODE_KEYBOARD_F20 0x6F
#define Z_USB_KEY_CODE_KEYBOARD_F21 0x70
#define Z_USB_KEY_CODE_KEYBOARD_F22 0x71
#define Z_USB_KEY_CODE_KEYBOARD_F23 0x72
#define Z_USB_KEY_CODE_KEYBOARD_F24 0x73
#define Z_USB_KEY_CODE_KEYBOARD_EXECUTE 0x74
#define Z_USB_KEY_CODE_KEYBOARD_HELP 0x75
#define Z_USB_KEY_CODE_KEYBOARD_MENU 0x76
#define Z_USB_KEY_CODE_KEYBOARD_SELECT 0x77
#define Z_USB_KEY_CODE_KEYBOARD_STOP 0x78
#define Z_USB_KEY_CODE_KEYBOARD_AGAIN 0x79
#define Z_USB_KEY_CODE_KEYBOARD_UNDO 0x7A
#define Z_USB_KEY_CODE_KEYBOARD_CUT 0x7B
#define Z_USB_KEY_CODE_KEYBOARD_COPY 0x7C
#define Z_USB_KEY_CODE_KEYBOARD_PASTE 0x7D
#define Z_USB_KEY_CODE_KEYBOARD_FIND 0x7E
#define Z_USB_KEY_CODE_KEYBOARD_MUTE 0x7F
#define Z_USB_KEY_CODE_KEYBOARD_VOLUME_UP 0x80
#define Z_USB_KEY_CODE_KEYBOARD_VOLUME_DOWN 0x81
#define Z_USB_KEY_CODE_KEYBOARD_LOCKING_CAPS_LOCK 0x82
#define Z_USB_KEY_CODE_KEYBOARD_LOCKING_NUM_LOCK 0x83
#define Z_USB_KEY_CODE_KEYBOARD_LOCKING_SCROLL_LOCK 0x84
#define Z_USB_KEY_CODE_KEYPAD_COMMA 0x85
#define Z_USB_KEY_CODE_AS_400_KEYPAD_EQUALS_SIGN 0x86 /* Used on AS/400 keyboards */
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_1 0x87
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_2 0x88
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_3 0x89
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_4 0x8A
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_5 0x8B
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_6 0x8C
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_7 0x8D
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_8 0x8E
#define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_9 0x8F
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_1 0x90
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_2 0x91
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_3 0x92
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_4 0x93
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_5 0x94
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_6 0x95
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_7 0x96
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_8 0x97
#define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_9 0x98
#define Z_USB_KEY_CODE_KEYBOARD_ALTERNATE_ERASE 0x99
#define Z_USB_KEY_CODE_KEYBOARD_SYS_REQ_ATTENTION 0x9A
#define Z_USB_KEY_CODE_KEYBOARD_CANCEL 0x9B
#define Z_USB_KEY_CODE_KEYBOARD_CLEAR 0x9C
#define Z_USB_KEY_CODE_KEYBOARD_PRIOR 0x9D
#define Z_USB_KEY_CODE_KEYBOARD_RETURN_2 0x9E /* Duplicated? */
#define Z_USB_KEY_CODE_KEYBOARD_SEPARATOR 0x9F
#define Z_USB_KEY_CODE_KEYBOARD_OUT 0xA0
#define Z_USB_KEY_CODE_KEYBOARD_OPER 0xA1
#define Z_USB_KEY_CODE_KEYBOARD_CLEAR_AGAIN 0xA2
#define Z_USB_KEY_CODE_KEYBOARD_CR_SEL_PROPS 0xA3
#define Z_USB_KEY_CODE_KEYBOARD_EX_SEL 0xA4
/* A5h-AFh - Reserved */
#define Z_USB_KEY_CODE_KEYPAD_00 0xB0
#define Z_USB_KEY_CODE_KEYPAD_000 0xB1
#define Z_USB_KEY_CODE_THOUSANDS_SEPARATOR 0xB2
#define Z_USB_KEY_CODE_DECIMAL_SEPARATOR 0xB3
#define Z_USB_KEY_CODE_CURRENCY_UNIT 0xB4
#define Z_USB_KEY_CODE_CURRENCY_SUBUNIT 0xB5
#define Z_USB_KEY_CODE_KEYPAD_LEFT_PARENTHESIS 0xB6
#define Z_USB_KEY_CODE_KEYPAD_RIGHT_PARENTHESIS 0xB7
#define Z_USB_KEY_CODE_KEYPAD_LEFT_CURLY_BRACKET 0xB8
#define Z_USB_KEY_CODE_KEYPAD_RIGHT_CURLY_BRACKET 0xB9
#define Z_USB_KEY_CODE_KEYPAD_TAB 0xBA
#define Z_USB_KEY_CODE_KEYPAD_BACKSPACE 0xBB
#define Z_USB_KEY_CODE_KEYPAD_A 0xBC
#define Z_USB_KEY_CODE_KEYPAD_B 0xBD
#define Z_USB_KEY_CODE_KEYPAD_C 0xBE
#define Z_USB_KEY_CODE_KEYPAD_D 0xBF
#define Z_USB_KEY_CODE_KEYPAD_E 0xC0
#define Z_USB_KEY_CODE_KEYPAD_F 0xC1
#define Z_USB_KEY_CODE_KEYPAD_XOR 0xC2
#define Z_USB_KEY_CODE_KEYPAD_CIRCUMFLEX_ACCENT 0xC3
#define Z_USB_KEY_CODE_KEYPAD_PERCENT_SIGN 0xC4
#define Z_USB_KEY_CODE_KEYPAD_LESS_THAN_SIGN 0xC5
#define Z_USB_KEY_CODE_KEYPAD_GREATER_THAN_SIGN 0xC6
#define Z_USB_KEY_CODE_KEYPAD_AMPERSAND 0xC7
#define Z_USB_KEY_CODE_KEYPAD_DOUBLE_AMPERSAND 0xC8
#define Z_USB_KEY_CODE_KEYPAD_VERTICAL_LINE 0xC9
#define Z_USB_KEY_CODE_KEYPAD_DOUBLE_VERTICAL_LINE 0xCA
#define Z_USB_KEY_CODE_KEYPAD_COLON 0xCB
#define Z_USB_KEY_CODE_KEYPAD_NUMBER_SIGN 0xCC
#define Z_USB_KEY_CODE_KEYPAD_SPACE 0xCD
#define Z_USB_KEY_CODE_KEYPAD_COMMERCIAL_AT 0xCE
#define Z_USB_KEY_CODE_KEYPAD_EXCLAMATION_MARK 0xCF
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_STORE 0xD0
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_RECALL 0xD1
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_CLEAR 0xD2
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_ADD 0xD3
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_SUBTRACT 0xD4
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_MULTIPLY 0xD5
#define Z_USB_KEY_CODE_KEYPAD_MEMORY_DIVIDE 0xD6
#define Z_USB_KEY_CODE_KEYPAD_PLUS_MINUS_SIGN 0xD7
#define Z_USB_KEY_CODE_KEYPAD_CLEAR 0xD8
#define Z_USB_KEY_CODE_KEYPAD_CLEAR_ENTRY 0xD9
#define Z_USB_KEY_CODE_KEYPAD_BINARY 0xDA
#define Z_USB_KEY_CODE_KEYPAD_OCTAL 0xDB
#define Z_USB_KEY_CODE_KEYPAD_DECIMAL 0xDC
#define Z_USB_KEY_CODE_KEYPAD_HEXADECIMAL 0xDD
/* DEh-DFh - Reserved */
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_CONTROL 0xE0
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_SHIFT 0xE1
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_ALT 0xE2
#define Z_USB_KEY_CODE_KEYBOARD_LEFT_GUI 0xE3
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_CONTROL 0xE4
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_SHIFT 0xE5
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_ALT 0xE6
#define Z_USB_KEY_CODE_KEYBOARD_RIGHT_GUI 0xE7
/* E8h-FFFFh - Reserved */
#define Z_ARRAY_CONTENT_USB_KEY_CODE_TO_Z_KEY_CODE \
Z_KEY_CODE_INVALID, /* 0x00 - Unused */ \
Z_KEY_CODE_INVALID, /* 0x01 - Z_USB_KEY_CODE_KEYBOARD_ERROR_ROLL_OVER */ \
Z_KEY_CODE_INVALID, /* 0x02 - Z_USB_KEY_CODE_KEYBOARD_POST_FAIL */ \
Z_KEY_CODE_INVALID, /* 0x03 - Z_USB_KEY_CODE_KEYBOARD_ERROR_UNDEFINED */ \
Z_KEY_CODE_ANSI_A, /* 0x04 - Z_USB_KEY_CODE_KEYBOARD_A */ \
Z_KEY_CODE_ANSI_B, /* 0x05 - Z_USB_KEY_CODE_KEYBOARD_B */ \
Z_KEY_CODE_ANSI_C, /* 0x06 - Z_USB_KEY_CODE_KEYBOARD_C */ \
Z_KEY_CODE_ANSI_D, /* 0x07 - Z_USB_KEY_CODE_KEYBOARD_D */ \
Z_KEY_CODE_ANSI_E, /* 0x08 - Z_USB_KEY_CODE_KEYBOARD_E */ \
Z_KEY_CODE_ANSI_F, /* 0x09 - Z_USB_KEY_CODE_KEYBOARD_F */ \
Z_KEY_CODE_ANSI_G, /* 0x0A - Z_USB_KEY_CODE_KEYBOARD_G */ \
Z_KEY_CODE_ANSI_H, /* 0x0B - Z_USB_KEY_CODE_KEYBOARD_H */ \
Z_KEY_CODE_ANSI_I, /* 0x0C - Z_USB_KEY_CODE_KEYBOARD_I */ \
Z_KEY_CODE_ANSI_J, /* 0x0D - Z_USB_KEY_CODE_KEYBOARD_J */ \
Z_KEY_CODE_ANSI_K, /* 0x0E - Z_USB_KEY_CODE_KEYBOARD_K */ \
Z_KEY_CODE_ANSI_L, /* 0x0F - Z_USB_KEY_CODE_KEYBOARD_L */ \
Z_KEY_CODE_ANSI_M, /* 0x10 - Z_USB_KEY_CODE_KEYBOARD_M */ \
Z_KEY_CODE_ANSI_N, /* 0x11 - Z_USB_KEY_CODE_KEYBOARD_N */ \
Z_KEY_CODE_ANSI_O, /* 0x12 - Z_USB_KEY_CODE_KEYBOARD_O */ \
Z_KEY_CODE_ANSI_P, /* 0x13 - Z_USB_KEY_CODE_KEYBOARD_P */ \
Z_KEY_CODE_ANSI_Q, /* 0x14 - Z_USB_KEY_CODE_KEYBOARD_Q */ \
Z_KEY_CODE_ANSI_R, /* 0x15 - Z_USB_KEY_CODE_KEYBOARD_R */ \
Z_KEY_CODE_ANSI_S, /* 0x16 - Z_USB_KEY_CODE_KEYBOARD_S */ \
Z_KEY_CODE_ANSI_T, /* 0x17 - Z_USB_KEY_CODE_KEYBOARD_T */ \
Z_KEY_CODE_ANSI_U, /* 0x18 - Z_USB_KEY_CODE_KEYBOARD_U */ \
Z_KEY_CODE_ANSI_V, /* 0x19 - Z_USB_KEY_CODE_KEYBOARD_V */ \
Z_KEY_CODE_ANSI_W, /* 0x1A - Z_USB_KEY_CODE_KEYBOARD_W */ \
Z_KEY_CODE_ANSI_X, /* 0x1B - Z_USB_KEY_CODE_KEYBOARD_X */ \
Z_KEY_CODE_ANSI_Y, /* 0x1C - Z_USB_KEY_CODE_KEYBOARD_Y */ \
Z_KEY_CODE_ANSI_Z, /* 0x1D - Z_USB_KEY_CODE_KEYBOARD_Z */ \
Z_KEY_CODE_ANSI_1, /* 0x1E - Z_USB_KEY_CODE_KEYBOARD_1 */ \
Z_KEY_CODE_ANSI_2, /* 0x1F - Z_USB_KEY_CODE_KEYBOARD_2 */ \
Z_KEY_CODE_ANSI_3, /* 0x20 - Z_USB_KEY_CODE_KEYBOARD_3 */ \
Z_KEY_CODE_ANSI_4, /* 0x21 - Z_USB_KEY_CODE_KEYBOARD_4 */ \
Z_KEY_CODE_ANSI_5, /* 0x22 - Z_USB_KEY_CODE_KEYBOARD_5 */ \
Z_KEY_CODE_ANSI_6, /* 0x23 - Z_USB_KEY_CODE_KEYBOARD_6 */ \
Z_KEY_CODE_ANSI_7, /* 0x24 - Z_USB_KEY_CODE_KEYBOARD_7 */ \
Z_KEY_CODE_ANSI_8, /* 0x25 - Z_USB_KEY_CODE_KEYBOARD_8 */ \
Z_KEY_CODE_ANSI_9, /* 0x26 - Z_USB_KEY_CODE_KEYBOARD_9 */ \
Z_KEY_CODE_ANSI_0, /* 0x27 - Z_USB_KEY_CODE_KEYBOARD_0 */ \
Z_KEY_CODE_RETURN, /* 0x28 - Z_USB_KEY_CODE_KEYBOARD_RETURN */ \
Z_KEY_CODE_ESCAPE, /* 0x29 - Z_USB_KEY_CODE_KEYBOARD_ESCAPE */ \
Z_KEY_CODE_BACKSPACE, /* 0x2A - Z_USB_KEY_CODE_KEYBOARD_BACKSPACE */ \
Z_KEY_CODE_TAB, /* 0x2B - Z_USB_KEY_CODE_KEYBOARD_TAB */ \
Z_KEY_CODE_SPACE, /* 0x2C - Z_USB_KEY_CODE_KEYBOARD_SPACE */ \
Z_KEY_CODE_ANSI_HYPHEN_MINUS, /* 0x2D - Z_USB_KEY_CODE_KEYBOARD_HYPHEN_MINUS */ \
Z_KEY_CODE_ANSI_EQUALS_SIGN, /* 0x2E - Z_USB_KEY_CODE_KEYBOARD_EQUALS_SIGN */ \
Z_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET, /* 0x2F - Z_USB_KEY_CODE_KEYBOARD_LEFT_SQUARE_BRACKET */ \
Z_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET, /* 0x30 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_SQUARE_BRACKET */ \
Z_KEY_CODE_ANSI_REVERSE_SOLIDUS, /* 0x31 - Z_USB_KEY_CODE_KEYBOARD_REVERSE_SOLIDUS */ \
Z_KEY_CODE_INVALID, /* 0x32 - Z_USB_KEY_CODE_KEYBOARD_NON_US_NUMBER_SIGN */ \
Z_KEY_CODE_ANSI_SEMICOLON, /* 0x33 - Z_USB_KEY_CODE_KEYBOARD_SEMICOLON */ \
Z_KEY_CODE_ANSI_APOSTROPHE, /* 0x34 - Z_USB_KEY_CODE_KEYBOARD_APOSTROPHE */ \
Z_KEY_CODE_ANSI_GRAVE_ACCENT, /* 0x35 - Z_USB_KEY_CODE_KEYBOARD_GRAVE_ACCENT */ \
Z_KEY_CODE_ANSI_COMMA, /* 0x36 - Z_USB_KEY_CODE_KEYBOARD_COMMA */ \
Z_KEY_CODE_ANSI_FULL_STOP, /* 0x37 - Z_USB_KEY_CODE_KEYBOARD_FULL_STOP */ \
Z_KEY_CODE_ANSI_SOLIDUS, /* 0x38 - Z_USB_KEY_CODE_KEYBOARD_SOLIDUS */ \
Z_KEY_CODE_CAPS_LOCK, /* 0x39 - Z_USB_KEY_CODE_KEYBOARD_CAPS_LOCK */ \
Z_KEY_CODE_F1, /* 0x3A - Z_USB_KEY_CODE_KEYBOARD_F1 */ \
Z_KEY_CODE_F2, /* 0x3B - Z_USB_KEY_CODE_KEYBOARD_F2 */ \
Z_KEY_CODE_F3, /* 0x3C - Z_USB_KEY_CODE_KEYBOARD_F3 */ \
Z_KEY_CODE_F4, /* 0x3D - Z_USB_KEY_CODE_KEYBOARD_F4 */ \
Z_KEY_CODE_F5, /* 0x3E - Z_USB_KEY_CODE_KEYBOARD_F5 */ \
Z_KEY_CODE_F6, /* 0x3F - Z_USB_KEY_CODE_KEYBOARD_F6 */ \
Z_KEY_CODE_F7, /* 0x40 - Z_USB_KEY_CODE_KEYBOARD_F7 */ \
Z_KEY_CODE_F8, /* 0x41 - Z_USB_KEY_CODE_KEYBOARD_F8 */ \
Z_KEY_CODE_F9, /* 0x42 - Z_USB_KEY_CODE_KEYBOARD_F9 */ \
Z_KEY_CODE_F10, /* 0x43 - Z_USB_KEY_CODE_KEYBOARD_F10 */ \
Z_KEY_CODE_F11, /* 0x44 - Z_USB_KEY_CODE_KEYBOARD_F11 */ \
Z_KEY_CODE_F12, /* 0x45 - Z_USB_KEY_CODE_KEYBOARD_F12 */ \
Z_KEY_CODE_PRINT_SCREEN, /* 0x46 - Z_USB_KEY_CODE_KEYBOARD_PRINT_SCREEN */ \
Z_KEY_CODE_SCROLL_LOCK, /* 0x47 - Z_USB_KEY_CODE_KEYBOARD_SCROLL_LOCK */ \
Z_KEY_CODE_PAUSE, /* 0x48 - Z_USB_KEY_CODE_KEYBOARD_PAUSE */ \
Z_KEY_CODE_INSERT, /* 0x49 - Z_USB_KEY_CODE_KEYBOARD_INSERT */ \
Z_KEY_CODE_HOME, /* 0x4A - Z_USB_KEY_CODE_KEYBOARD_HOME */ \
Z_KEY_CODE_PAGE_UP, /* 0x4B - Z_USB_KEY_CODE_KEYBOARD_PAGE_UP */ \
Z_KEY_CODE_DELETE, /* 0x4C - Z_USB_KEY_CODE_KEYBOARD_DELETE */ \
Z_KEY_CODE_END, /* 0x4D - Z_USB_KEY_CODE_KEYBOARD_END */ \
Z_KEY_CODE_PAGE_DOWN, /* 0x4E - Z_USB_KEY_CODE_KEYBOARD_PAGE_DOWN */ \
Z_KEY_CODE_RIGHT, /* 0x4F - Z_USB_KEY_CODE_KEYBOARD_RIGHT_ARROW */ \
Z_KEY_CODE_LEFT, /* 0x50 - Z_USB_KEY_CODE_KEYBOARD_LEFT_ARROW */ \
Z_KEY_CODE_DOWN, /* 0x51 - Z_USB_KEY_CODE_KEYBOARD_DOWN_ARROW */ \
Z_KEY_CODE_UP, /* 0x52 - Z_USB_KEY_CODE_KEYBOARD_UP_ARROW */ \
Z_KEY_CODE_ANSI_KEYPAD_NUM_LOCK, /* 0x53 - Z_USB_KEY_CODE_KEYPAD_NUM_LOCK */ \
Z_KEY_CODE_ANSI_KEYPAD_SOLIDUS, /* 0x54 - Z_USB_KEY_CODE_KEYPAD_SOLIDUS */ \
Z_KEY_CODE_ANSI_KEYPAD_ASTERISK, /* 0x55 - Z_USB_KEY_CODE_KEYPAD_ASTERISK */ \
Z_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS, /* 0x56 - Z_USB_KEY_CODE_KEYPAD_HYPHEN_MINUS */ \
Z_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN, /* 0x57 - Z_USB_KEY_CODE_KEYPAD_PLUS_SIGN */ \
Z_KEY_CODE_ANSI_KEYPAD_ENTER, /* 0x58 - Z_USB_KEY_CODE_KEYPAD_ENTER */ \
Z_KEY_CODE_ANSI_KEYPAD_1, /* 0x59 - Z_USB_KEY_CODE_KEYPAD_1 */ \
Z_KEY_CODE_ANSI_KEYPAD_2, /* 0x5A - Z_USB_KEY_CODE_KEYPAD_2 */ \
Z_KEY_CODE_ANSI_KEYPAD_3, /* 0x5B - Z_USB_KEY_CODE_KEYPAD_3 */ \
Z_KEY_CODE_ANSI_KEYPAD_4, /* 0x5C - Z_USB_KEY_CODE_KEYPAD_4 */ \
Z_KEY_CODE_ANSI_KEYPAD_5, /* 0x5D - Z_USB_KEY_CODE_KEYPAD_5 */ \
Z_KEY_CODE_ANSI_KEYPAD_6, /* 0x5E - Z_USB_KEY_CODE_KEYPAD_6 */ \
Z_KEY_CODE_ANSI_KEYPAD_7, /* 0x5F - Z_USB_KEY_CODE_KEYPAD_7 */ \
Z_KEY_CODE_ANSI_KEYPAD_8, /* 0x60 - Z_USB_KEY_CODE_KEYPAD_8 */ \
Z_KEY_CODE_ANSI_KEYPAD_9, /* 0x61 - Z_USB_KEY_CODE_KEYPAD_9 */ \
Z_KEY_CODE_ANSI_KEYPAD_0, /* 0x62 - Z_USB_KEY_CODE_KEYPAD_0 */ \
Z_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR, /* 0x63 - Z_USB_KEY_CODE_KEYPAD_DECIMAL_SEPARATOR */ \
Z_KEY_CODE_ISO_SECTION, /* 0x64 - Z_USB_KEY_CODE_KEYBOARD_NON_US_REVERSE_SOLIDUS */ \
Z_KEY_CODE_APPLICATION, /* 0x65 - Z_USB_KEY_CODE_KEYBOARD_APPLICATION */ \
Z_KEY_CODE_INVALID, /* 0x66 - Z_USB_KEY_CODE_KEYBOARD_POWER */ \
Z_KEY_CODE_APPLE_ANSI_KEYPAD_EQUALS_SIGN, /* 0x67 - Z_USB_KEY_CODE_KEYPAD_EQUALS_SIGN */ \
Z_KEY_CODE_F13, /* 0x68 - Z_USB_KEY_CODE_KEYBOARD_F13 */ \
Z_KEY_CODE_F14, /* 0x69 - Z_USB_KEY_CODE_KEYBOARD_F14 */ \
Z_KEY_CODE_F15, /* 0x6A - Z_USB_KEY_CODE_KEYBOARD_F15 */ \
Z_KEY_CODE_F16, /* 0x6B - Z_USB_KEY_CODE_KEYBOARD_F16 */ \
Z_KEY_CODE_F17, /* 0x6C - Z_USB_KEY_CODE_KEYBOARD_F17 */ \
Z_KEY_CODE_F18, /* 0x6D - Z_USB_KEY_CODE_KEYBOARD_F18 */ \
Z_KEY_CODE_F19, /* 0x6E - Z_USB_KEY_CODE_KEYBOARD_F19 */ \
Z_KEY_CODE_F20, /* 0x6F - Z_USB_KEY_CODE_KEYBOARD_F20 */ \
Z_KEY_CODE_F21, /* 0x70 - Z_USB_KEY_CODE_KEYBOARD_F21 */ \
Z_KEY_CODE_F22, /* 0x71 - Z_USB_KEY_CODE_KEYBOARD_F22 */ \
Z_KEY_CODE_F23, /* 0x72 - Z_USB_KEY_CODE_KEYBOARD_F23 */ \
Z_KEY_CODE_F24, /* 0x73 - Z_USB_KEY_CODE_KEYBOARD_F24 */ \
Z_KEY_CODE_INVALID, /* 0x74 - Z_USB_KEY_CODE_KEYBOARD_EXECUTE */ \
Z_KEY_CODE_INVALID, /* 0x75 - Z_USB_KEY_CODE_KEYBOARD_HELP */ \
Z_KEY_CODE_INVALID, /* 0x76 - Z_USB_KEY_CODE_KEYBOARD_MENU */ \
Z_KEY_CODE_INVALID, /* 0x77 - Z_USB_KEY_CODE_KEYBOARD_SELECT */ \
Z_KEY_CODE_INVALID, /* 0x78 - Z_USB_KEY_CODE_KEYBOARD_STOP */ \
Z_KEY_CODE_INVALID, /* 0x79 - Z_USB_KEY_CODE_KEYBOARD_AGAIN */ \
Z_KEY_CODE_INVALID, /* 0x7A - Z_USB_KEY_CODE_KEYBOARD_UNDO */ \
Z_KEY_CODE_INVALID, /* 0x7B - Z_USB_KEY_CODE_KEYBOARD_CUT */ \
Z_KEY_CODE_INVALID, /* 0x7C - Z_USB_KEY_CODE_KEYBOARD_COPY */ \
Z_KEY_CODE_INVALID, /* 0x7D - Z_USB_KEY_CODE_KEYBOARD_PASTE */ \
Z_KEY_CODE_INVALID, /* 0x7E - Z_USB_KEY_CODE_KEYBOARD_FIND */ \
Z_KEY_CODE_MUTE, /* 0x7F - Z_USB_KEY_CODE_KEYBOARD_MUTE */ \
Z_KEY_CODE_VOLUME_UP, /* 0x80 - Z_USB_KEY_CODE_KEYBOARD_VOLUME_UP */ \
Z_KEY_CODE_VOLUME_DOWN, /* 0x81 - Z_USB_KEY_CODE_KEYBOARD_VOLUME_DOWN */ \
Z_KEY_CODE_INVALID, /* 0x82 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_CAPS_LOCK */ \
Z_KEY_CODE_INVALID, /* 0x83 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_NUM_LOCK */ \
Z_KEY_CODE_INVALID, /* 0x84 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_SCROLL_LOCK */ \
Z_KEY_CODE_INVALID, /* 0x85 - Z_USB_KEY_CODE_KEYPAD_COMMA */ \
Z_KEY_CODE_INVALID, /* 0x86 - Z_USB_KEY_CODE_AS_400_KEYPAD_EQUALS_SIGN */ \
Z_KEY_CODE_INVALID, /* 0x87 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_1 */ \
Z_KEY_CODE_INVALID, /* 0x88 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_2 */ \
Z_KEY_CODE_INVALID, /* 0x89 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_3 */ \
Z_KEY_CODE_INVALID, /* 0x8A - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_4 */ \
Z_KEY_CODE_INVALID, /* 0x8B - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_5 */ \
Z_KEY_CODE_INVALID, /* 0x8C - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_6 */ \
Z_KEY_CODE_INVALID, /* 0x8D - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_7 */ \
Z_KEY_CODE_INVALID, /* 0x8E - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_8 */ \
Z_KEY_CODE_INVALID, /* 0x8F - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_9 */ \
Z_KEY_CODE_INVALID, /* 0x90 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_1 */ \
Z_KEY_CODE_INVALID, /* 0x91 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_2 */ \
Z_KEY_CODE_INVALID, /* 0x92 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_3 */ \
Z_KEY_CODE_INVALID, /* 0x93 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_4 */ \
Z_KEY_CODE_INVALID, /* 0x94 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_5 */ \
Z_KEY_CODE_INVALID, /* 0x95 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_6 */ \
Z_KEY_CODE_INVALID, /* 0x96 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_7 */ \
Z_KEY_CODE_INVALID, /* 0x97 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_8 */ \
Z_KEY_CODE_INVALID, /* 0x98 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_9 */ \
Z_KEY_CODE_INVALID, /* 0x99 - Z_USB_KEY_CODE_KEYBOARD_ALTERNATE_ERASE */ \
Z_KEY_CODE_INVALID, /* 0x9A - Z_USB_KEY_CODE_KEYBOARD_SYS_REQ_ATTENTION */ \
Z_KEY_CODE_INVALID, /* 0x9B - Z_USB_KEY_CODE_KEYBOARD_CANCEL */ \
Z_KEY_CODE_INVALID, /* 0x9C - Z_USB_KEY_CODE_KEYBOARD_CLEAR */ \
Z_KEY_CODE_INVALID, /* 0x9D - Z_USB_KEY_CODE_KEYBOARD_PRIOR */ \
Z_KEY_CODE_INVALID, /* 0x9E - Z_USB_KEY_CODE_KEYBOARD_RETURN_2 */ \
Z_KEY_CODE_INVALID, /* 0x9F - Z_USB_KEY_CODE_KEYBOARD_SEPARATOR */ \
Z_KEY_CODE_INVALID, /* 0xA0 - Z_USB_KEY_CODE_KEYBOARD_OUT */ \
Z_KEY_CODE_INVALID, /* 0xA1 - Z_USB_KEY_CODE_KEYBOARD_OPER */ \
Z_KEY_CODE_INVALID, /* 0xA2 - Z_USB_KEY_CODE_KEYBOARD_CLEAR_AGAIN */ \
Z_KEY_CODE_INVALID, /* 0xA3 - Z_USB_KEY_CODE_KEYBOARD_CR_SEL_PROPS */ \
Z_KEY_CODE_INVALID, /* 0xA4 - Z_USB_KEY_CODE_KEYBOARD_EX_SEL */ \
Z_KEY_CODE_INVALID, /* 0xA5 - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xA6 - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xA7 - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xA8 - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xA9 - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAA - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAB - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAC - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAD - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAE - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xAF - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xB0 - Z_USB_KEY_CODE_KEYPAD_00 */ \
Z_KEY_CODE_INVALID, /* 0xB1 - Z_USB_KEY_CODE_KEYPAD_000 */ \
Z_KEY_CODE_INVALID, /* 0xB2 - Z_USB_KEY_CODE_THOUSANDS_SEPARATOR */ \
Z_KEY_CODE_INVALID, /* 0xB3 - Z_USB_KEY_CODE_DECIMAL_SEPARATOR */ \
Z_KEY_CODE_INVALID, /* 0xB4 - Z_USB_KEY_CODE_CURRENCY_UNIT */ \
Z_KEY_CODE_INVALID, /* 0xB5 - Z_USB_KEY_CODE_CURRENCY_SUBUNIT */ \
Z_KEY_CODE_INVALID, /* 0xB6 - Z_USB_KEY_CODE_KEYPAD_LEFT_PARENTHESIS */ \
Z_KEY_CODE_INVALID, /* 0xB7 - Z_USB_KEY_CODE_KEYPAD_RIGHT_PARENTHESIS */ \
Z_KEY_CODE_INVALID, /* 0xB8 - Z_USB_KEY_CODE_KEYPAD_LEFT_CURLY_BRACKET */ \
Z_KEY_CODE_INVALID, /* 0xB9 - Z_USB_KEY_CODE_KEYPAD_RIGHT_CURLY_BRACKET */ \
Z_KEY_CODE_INVALID, /* 0xBA - Z_USB_KEY_CODE_KEYPAD_TAB */ \
Z_KEY_CODE_INVALID, /* 0xBB - Z_USB_KEY_CODE_KEYPAD_BACKSPACE */ \
Z_KEY_CODE_INVALID, /* 0xBC - Z_USB_KEY_CODE_KEYPAD_A */ \
Z_KEY_CODE_INVALID, /* 0xBD - Z_USB_KEY_CODE_KEYPAD_B */ \
Z_KEY_CODE_INVALID, /* 0xBE - Z_USB_KEY_CODE_KEYPAD_C */ \
Z_KEY_CODE_INVALID, /* 0xBF - Z_USB_KEY_CODE_KEYPAD_D */ \
Z_KEY_CODE_INVALID, /* 0xC0 - Z_USB_KEY_CODE_KEYPAD_E */ \
Z_KEY_CODE_INVALID, /* 0xC1 - Z_USB_KEY_CODE_KEYPAD_F */ \
Z_KEY_CODE_INVALID, /* 0xC2 - Z_USB_KEY_CODE_KEYPAD_XOR */ \
Z_KEY_CODE_INVALID, /* 0xC3 - Z_USB_KEY_CODE_KEYPAD_CIRCUMFLEX_ACCENT */ \
Z_KEY_CODE_INVALID, /* 0xC4 - Z_USB_KEY_CODE_KEYPAD_PERCENT_SIGN */ \
Z_KEY_CODE_INVALID, /* 0xC5 - Z_USB_KEY_CODE_KEYPAD_LESS_THAN_SIGN */ \
Z_KEY_CODE_INVALID, /* 0xC6 - Z_USB_KEY_CODE_KEYPAD_GREATER_THAN_SIGN */ \
Z_KEY_CODE_INVALID, /* 0xC7 - Z_USB_KEY_CODE_KEYPAD_AMPERSAND */ \
Z_KEY_CODE_INVALID, /* 0xC8 - Z_USB_KEY_CODE_KEYPAD_DOUBLE_AMPERSAND */ \
Z_KEY_CODE_INVALID, /* 0xC9 - Z_USB_KEY_CODE_KEYPAD_VERTICAL_LINE */ \
Z_KEY_CODE_INVALID, /* 0xCA - Z_USB_KEY_CODE_KEYPAD_DOUBLE_VERTICAL_LINE */ \
Z_KEY_CODE_INVALID, /* 0xCB - Z_USB_KEY_CODE_KEYPAD_COLON */ \
Z_KEY_CODE_INVALID, /* 0xCC - Z_USB_KEY_CODE_KEYPAD_NUMBER_SIGN */ \
Z_KEY_CODE_INVALID, /* 0xCD - Z_USB_KEY_CODE_KEYPAD_SPACE */ \
Z_KEY_CODE_INVALID, /* 0xCE - Z_USB_KEY_CODE_KEYPAD_COMMERCIAL_AT */ \
Z_KEY_CODE_INVALID, /* 0xCF - Z_USB_KEY_CODE_KEYPAD_EXCLAMATION_MARK */ \
Z_KEY_CODE_INVALID, /* 0xD0 - Z_USB_KEY_CODE_KEYPAD_MEMORY_STORE */ \
Z_KEY_CODE_INVALID, /* 0xD1 - Z_USB_KEY_CODE_KEYPAD_MEMORY_RECALL */ \
Z_KEY_CODE_INVALID, /* 0xD2 - Z_USB_KEY_CODE_KEYPAD_MEMORY_CLEAR */ \
Z_KEY_CODE_INVALID, /* 0xD3 - Z_USB_KEY_CODE_KEYPAD_MEMORY_ADD */ \
Z_KEY_CODE_INVALID, /* 0xD4 - Z_USB_KEY_CODE_KEYPAD_MEMORY_SUBTRACT */ \
Z_KEY_CODE_INVALID, /* 0xD5 - Z_USB_KEY_CODE_KEYPAD_MEMORY_MULTIPLY */ \
Z_KEY_CODE_INVALID, /* 0xD6 - Z_USB_KEY_CODE_KEYPAD_MEMORY_DIVIDE */ \
Z_KEY_CODE_INVALID, /* 0xD7 - Z_USB_KEY_CODE_KEYPAD_PLUS_MINUS_SIGN */ \
Z_KEY_CODE_INVALID, /* 0xD8 - Z_USB_KEY_CODE_KEYPAD_CLEAR */ \
Z_KEY_CODE_INVALID, /* 0xD9 - Z_USB_KEY_CODE_KEYPAD_CLEAR_ENTRY */ \
Z_KEY_CODE_INVALID, /* 0xDA - Z_USB_KEY_CODE_KEYPAD_BINARY */ \
Z_KEY_CODE_INVALID, /* 0xDB - Z_USB_KEY_CODE_KEYPAD_OCTAL */ \
Z_KEY_CODE_INVALID, /* 0xDC - Z_USB_KEY_CODE_KEYPAD_DECIMAL */ \
Z_KEY_CODE_INVALID, /* 0xDD - Z_USB_KEY_CODE_KEYPAD_HEXADECIMAL */ \
Z_KEY_CODE_INVALID, /* 0xDE - Reserved */ \
Z_KEY_CODE_INVALID, /* 0xDF - Reserved */ \
Z_KEY_CODE_LEFT_CONTROL, /* 0xE0 - Z_USB_KEY_CODE_KEYBOARD_LEFT_CONTROL */ \
Z_KEY_CODE_LEFT_SHIFT, /* 0xE1 - Z_USB_KEY_CODE_KEYBOARD_LEFT_SHIFT */ \
Z_KEY_CODE_LEFT_OPTION, /* 0xE2 - Z_USB_KEY_CODE_KEYBOARD_LEFT_ALT */ \
Z_KEY_CODE_LEFT_COMMAND, /* 0xE3 - Z_USB_KEY_CODE_KEYBOARD_LEFT_GUI */ \
Z_KEY_CODE_RIGHT_CONTROL, /* 0xE4 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_CONTROL */ \
Z_KEY_CODE_RIGHT_SHIFT, /* 0xE5 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_SHIFT */ \
Z_KEY_CODE_RIGHT_OPTION, /* 0xE6 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_ALT */ \
Z_KEY_CODE_RIGHT_COMMAND /* 0xE7 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_GUI */
#endif /* Z_formats_keymap_USB_H */

View File

@@ -0,0 +1,142 @@
/* Zeta API - Z/formats/keymap/Z.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3. */
#ifndef Z_formats_keymap_Z_H
#define Z_formats_keymap_Z_H
#define Z_KEY_CODE_UP 0
#define Z_KEY_CODE_RIGHT 1
#define Z_KEY_CODE_DOWN 2
#define Z_KEY_CODE_LEFT 3
#define Z_KEY_CODE_HOME 4
#define Z_KEY_CODE_END 5
#define Z_KEY_CODE_PAGE_UP 6
#define Z_KEY_CODE_PAGE_DOWN 7
#define Z_KEY_CODE_BACKSPACE 8 /* Like ASCII */
#define Z_KEY_CODE_TAB 9 /* Like ASCII */
#define Z_KEY_CODE_RETURN 10 /* Like ASCII */
#define Z_KEY_CODE_F1 11
#define Z_KEY_CODE_F2 12
#define Z_KEY_CODE_F3 13
#define Z_KEY_CODE_F4 14
#define Z_KEY_CODE_F5 15
#define Z_KEY_CODE_F6 16
#define Z_KEY_CODE_F7 17
#define Z_KEY_CODE_F8 18
#define Z_KEY_CODE_F9 19
#define Z_KEY_CODE_F10 20
#define Z_KEY_CODE_F11 21
#define Z_KEY_CODE_F12 22
#define Z_KEY_CODE_PRINT_SCREEN 23
#define Z_KEY_CODE_SCROLL_LOCK 24
#define Z_KEY_CODE_PAUSE 25
#define Z_KEY_CODE_CAPS_LOCK 26
#define Z_KEY_CODE_ESCAPE 27 /* Like ASCII */
#define Z_KEY_CODE_LEFT_SHIFT 28
#define Z_KEY_CODE_LEFT_CONTROL 29
#define Z_KEY_CODE_LEFT_COMMAND 30
#define Z_KEY_CODE_LEFT_OPTION 31
#define Z_KEY_CODE_SPACE 32 /* Like ASCII */
#define Z_KEY_CODE_RIGHT_OPTION 33
#define Z_KEY_CODE_RIGHT_COMMAND 34
#define Z_KEY_CODE_APPLICATION 35
#define Z_KEY_CODE_RIGHT_CONTROL 36
#define Z_KEY_CODE_RIGHT_SHIFT 37
#define Z_KEY_CODE_INSERT 38
#define Z_KEY_CODE_ANSI_APOSTROPHE 39 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_SOLIDUS 40
#define Z_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS 41
#define Z_KEY_CODE_ANSI_KEYPAD_ASTERISK 42 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN 43 /* Like ASCII */
#define Z_KEY_CODE_ANSI_COMMA 44 /* Like ASCII */
#define Z_KEY_CODE_ANSI_HYPHEN_MINUS 45 /* Like ASCII */
#define Z_KEY_CODE_ANSI_FULL_STOP 46 /* Like ASCII */
#define Z_KEY_CODE_ANSI_SOLIDUS 47 /* Like ASCII */
#define Z_KEY_CODE_ANSI_0 48 /* Like ASCII */
#define Z_KEY_CODE_ANSI_1 49 /* Like ASCII */
#define Z_KEY_CODE_ANSI_2 50 /* Like ASCII */
#define Z_KEY_CODE_ANSI_3 51 /* Like ASCII */
#define Z_KEY_CODE_ANSI_4 52 /* Like ASCII */
#define Z_KEY_CODE_ANSI_5 53 /* Like ASCII */
#define Z_KEY_CODE_ANSI_6 54 /* Like ASCII */
#define Z_KEY_CODE_ANSI_7 55 /* Like ASCII */
#define Z_KEY_CODE_ANSI_8 56 /* Like ASCII */
#define Z_KEY_CODE_ANSI_9 57 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_ENTER 58
#define Z_KEY_CODE_ANSI_SEMICOLON 59 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR 60
#define Z_KEY_CODE_ANSI_EQUALS_SIGN 61 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_NUM_LOCK 62
#define Z_KEY_CODE_ANSI_KEYPAD_0 63
#define Z_KEY_CODE_ANSI_KEYPAD_1 64
#define Z_KEY_CODE_ANSI_A 65 /* Like ASCII */
#define Z_KEY_CODE_ANSI_B 66 /* Like ASCII */
#define Z_KEY_CODE_ANSI_C 67 /* Like ASCII */
#define Z_KEY_CODE_ANSI_D 68 /* Like ASCII */
#define Z_KEY_CODE_ANSI_E 69 /* Like ASCII */
#define Z_KEY_CODE_ANSI_F 70 /* Like ASCII */
#define Z_KEY_CODE_ANSI_G 71 /* Like ASCII */
#define Z_KEY_CODE_ANSI_H 72 /* Like ASCII */
#define Z_KEY_CODE_ANSI_I 73 /* Like ASCII */
#define Z_KEY_CODE_ANSI_J 74 /* Like ASCII */
#define Z_KEY_CODE_ANSI_K 75 /* Like ASCII */
#define Z_KEY_CODE_ANSI_L 76 /* Like ASCII */
#define Z_KEY_CODE_ANSI_M 77 /* Like ASCII */
#define Z_KEY_CODE_ANSI_N 78 /* Like ASCII */
#define Z_KEY_CODE_ANSI_O 79 /* Like ASCII */
#define Z_KEY_CODE_ANSI_P 80 /* Like ASCII */
#define Z_KEY_CODE_ANSI_Q 81 /* Like ASCII */
#define Z_KEY_CODE_ANSI_R 82 /* Like ASCII */
#define Z_KEY_CODE_ANSI_S 83 /* Like ASCII */
#define Z_KEY_CODE_ANSI_T 84 /* Like ASCII */
#define Z_KEY_CODE_ANSI_U 85 /* Like ASCII */
#define Z_KEY_CODE_ANSI_V 86 /* Like ASCII */
#define Z_KEY_CODE_ANSI_W 87 /* Like ASCII */
#define Z_KEY_CODE_ANSI_X 88 /* Like ASCII */
#define Z_KEY_CODE_ANSI_Y 89 /* Like ASCII */
#define Z_KEY_CODE_ANSI_Z 90 /* Like ASCII */
#define Z_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET 91 /* Like ASCII */
#define Z_KEY_CODE_ANSI_REVERSE_SOLIDUS 92 /* Like ASCII */
#define Z_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET 93 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_2 94
#define Z_KEY_CODE_ANSI_KEYPAD_3 95
#define Z_KEY_CODE_ANSI_GRAVE_ACCENT 96 /* Like ASCII */
#define Z_KEY_CODE_ANSI_KEYPAD_4 97
#define Z_KEY_CODE_ANSI_KEYPAD_5 98
#define Z_KEY_CODE_ANSI_KEYPAD_6 99
#define Z_KEY_CODE_ANSI_KEYPAD_7 100
#define Z_KEY_CODE_ANSI_KEYPAD_8 101
#define Z_KEY_CODE_ANSI_KEYPAD_9 102
#define Z_KEY_CODE_APPLE_ANSI_KEYPAD_EQUALS_SIGN 103 /* Apple keyboards */
#define Z_KEY_CODE_F13 104
#define Z_KEY_CODE_F14 105
#define Z_KEY_CODE_F15 106
#define Z_KEY_CODE_F16 107
#define Z_KEY_CODE_F17 108
#define Z_KEY_CODE_F18 109
#define Z_KEY_CODE_F19 110
#define Z_KEY_CODE_F20 111
#define Z_KEY_CODE_F21 112
#define Z_KEY_CODE_F22 113
#define Z_KEY_CODE_F23 114
#define Z_KEY_CODE_F24 115
#define Z_KEY_CODE_JIS_EISU 116 /* Japanese keyboards */
#define Z_KEY_CODE_JIS_KANA 117 /* Japanese keyboards */
#define Z_KEY_CODE_JIS_LOW_LINE 118 /* Japanese keyboards */
#define Z_KEY_CODE_JIS_YEN_SIGN 119 /* Japanese keyboards */
#define Z_KEY_CODE_JIS_KEYPAD_COMMA 120 /* Japanese keyboards */
#define Z_KEY_CODE_ISO_SECTION 121 /* ISO keyboards */
#define Z_KEY_CODE_VOLUME_UP 122
#define Z_KEY_CODE_VOLUME_DOWN 123
#define Z_KEY_CODE_MUTE 124
#define Z_KEY_CODE_UNUSED_0 125
#define Z_KEY_CODE_FUNCTION 126
#define Z_KEY_CODE_DELETE 127 /* Similar to ASCII */
#define Z_KEY_CODE_INVALID Z_KEY_CODE_UNUSED_0
#endif /* Z_formats_keymap_Z_H */

View File

@@ -0,0 +1,46 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/+D.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.PlusD |
| Author: Samir, Ribic |
| Extensions: .plusd |
| Endianness: Little? |
| Supports: |
| Used by: |
| |
| Reference: |
| |
'========================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_PlusD_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_PlusD_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 iy, ix, de_, bc_, hl_, af_, de, bc, hl;
zuint8 i_junk;
zuint8 i;
ZInt16 sp;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_PlusDCPU);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_PlusDCPU cpu;
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_PlusDv48K);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_PlusDCPU cpu;
Z_ZXSpectrumPlus128KBankSwitch bank_switch;
zuint8 ram[Z_ZX_SPECTRUM_PLUS_128K_SIZE_RAM];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_PlusDv128K);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_PlusD_H */

View File

@@ -0,0 +1,54 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ACH.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_______________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ACH |
| Author: Witt, Carsten |
| Extensions: .ach, .archimedes |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: !Speccy (RISC OS) |
| |
| Reference: |
| http://rk.nvg.ntnu.no/sinclair/faq/fileform.html |
| http://www.zx-modules.de/fileformats/achformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'======================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ACH_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ACH_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 a; zuint8 zero_00[ 3];
zuint8 f; zuint8 zero_01[ 3];
zuint8 b; zuint8 zero_02[ 3];
zuint8 c; zuint8 zero_03[ 3];
zuint8 d; zuint8 zero_04[ 3];
zuint8 e; zuint8 zero_05[ 3];
zuint8 h; zuint8 zero_06[ 3];
zuint8 l; zuint8 zero_07[ 3];
ZInt16 pc; zuint8 zero_08[ 6];
ZInt16 sp; zuint8 zero_09[106];
zuint8 r; zuint8 zero_10[ 7];
zuint8 border_color; zuint8 zero_11[ 7];
zuint8 im; zuint8 zero_12[ 25];
zuint8 i, iff2; zuint8 zero_13[ 44];
zuint8 a_, f_; zuint8 zero_14[ 2];
zuint8 b_, c_; zuint8 zero_15[ 2];
zuint8 d_, e_, h_, l_;
ZInt16 ix; zuint8 zero_16[ 2];
ZInt16 iy; zuint8 zero_17[ 2];
zuint8 memory[Z_ZX_SPECTRUM_48K_SIZE_MEMORY];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ACH);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ACH_H */

View File

@@ -0,0 +1,68 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/FRZ.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.FRZ |
| Authors: Code Busters (Iwamoto, Max - alias Rst7) |
| Extensions: .frz |
| Endianness: Big |
| Supports: ZX Spectrum + 128K |
| Used by: CBSpeccy (AmigaOS) |
| <http://www.neworder.spb.ru/cbspeccy/> |
| |
| Reference: |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
| Special thanks to Dmitriy Zhivilov and Ian Greenway, who |
| reverse-engineered and shared the description of this format. |
| |
'================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_FRZ_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_FRZ_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 zero_0;
Z_ZXSpectrumPlus128KBankSwitch bank_switch;
ZInt16 hl_, hl, de_, de, bc_, bc, af_, af;
zuint8 disk_and_t_states[7];
zuint8 r;
ZInt16 pc, sp;
zuint8 i;
zuint8 reserved; /* must be FFh */
zuint8 zero_1;
zuint8 im;
zuint8 zero_2[3];
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 3) (
zuint8 unused_1 :5,
zuint8 iff1 :1,
zuint8 unused_0 :2
)} fields;
} interrupt;
ZInt16 iy, ix;
zuint8 ram_bank_5[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_2[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_0[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_1[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_3[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_4[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_6[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_7[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_FRZ);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_FRZ_H */

View File

@@ -0,0 +1,59 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/PRG.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_______________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.PRG |
| Author: Phair, Kevin J. |
| Extensions: .prg |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: Spectrum Emulator, The (MS-DOS) |
| <http://code.google.com/p/specem> |
| |
| Reference: |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'======================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H
#include <Z/formats/snapshot/machine/computer/ZX Spectrum/+D.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 file_type; /* 05h */
zuint8 program_name[10];
zuint16 file_sector_count; /* big endian */
zuint8 file_track_index;
zuint8 file_sector_index;
zuint8 sector_allocation_bitmap[195];
zuint8 zero_0[10];
Z_PlusDCPU cpu;
zuint8 zero_1[14];
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_PRG);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 3) (
zuint8 unused_1 :5,
zuint8 iff1 :1,
zuint8 unused_0 :2
)} fields;
} interrupt;
zuint8 r;
ZInt16 af;
zuint16 pc;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_PRGStack);
#define Z_PRG_FILE_TYPE_48K 0x05
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H */

View File

@@ -0,0 +1,54 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SEM.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_______________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SEM |
| Author: Waschke, Bernd |
| Extensions: .sem |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: ZX Spectrum-Emulator / SpecEmu (MS-DOS) |
| |
| Reference: |
| http://www.zx-modules.de/fileformats/semformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'======================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 signature_size; /* 5 */
zuint8 signature[5]; /* 'SPEC1' */
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
ZInt16 af, bc, de, hl, af_, bc_, de_, hl_, pc, sp, ix, iy;
zuint8 i, zero_0;
zuint8 r, zero_1;
zuint8 iff1, zero_2;
zuint8 iff2, zero_3;
zuint8 im, zero_4;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SEMSnapshot);
Z_DEFINE_PACKED_STRUCTURE ({
zuint16 address;
zuint8 value;
zuint8 unused;
}, Z_SEMPoke);
Z_DEFINE_PACKED_STRUCTURE ({
Z_SEMSnapshot snapshot;
Z_SEMPoke poke; /* Optional */
zuint16 speed_factor; /* Optional (only if poke included) */
}, Z_SEM);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H */

View File

@@ -0,0 +1,40 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SIT.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
____________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SIT |
| Author: Rodríguez Salas, Pedro Manuel <pedrom@goliat.ugr.es> |
| Extensions: .sit |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: Sinclair (MS-DOS) |
| <http://www.ugr.es/~pedrom/sinclair.htm> |
| |
| Reference: |
| http://www.zx-modules.de/fileformats/sitformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'===================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 bc, de, hl, af, ix, iy, sp, pc;
zuint8 r, i;
ZInt16 bc_, de_, hl_, af_;
zuint8 im;
zuint8 border_color;
zuint8 memory[Z_ZX_SPECTRUM_48K_SIZE_MEMORY];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SIT);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H */

View File

@@ -0,0 +1,131 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SNA.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SNA |
| Extensions: .sna, .snap, .snapshot |
| Endianness: Little |
| |
| Reference: |
| http://rk.nvg.ntnu.no/sinclair/faq/fileform.html |
| http://www.worldofspectrum.org/faq/reference/formats.htm |
| http://www.zx-modules.de/fileformats/snaformat.html |
| MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
| This format is based on the format used by the Mirage Microdriver, |
| a backup device manufactured by Mirage Microcomputers Ltd. |
| Reference: http://www.worldofspectrum.org/infoseekid.cgi?id=1000266 |
| |
'=======================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
/* v48K
______________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SNA[48K] |
| Author: Gulbrandsen, Arnt <arnt@gulbrandsen.priv.no> |
| Supports: ZX Spectrum 48K |
| Used by: JPP (MS-DOS) |
| |
| From comp.sys.sinclair Sinclair ZX Spectrum FAQ: |
| |
| This format is one of the most well-supported of all snapshot formats |
| (for the ZX Spectrum), but has a drawback: |
| |
| As the program counter is pushed onto the stack so that a RETN |
| instruction can restart the program, 2 bytes of memory are overwritten. |
| This will usually not matter; the game (or whatever) will have stack space |
| that can be used for this. However, if this space is all in use when the |
| snap is made, memory below the stack space will be corrupted. According to |
| Rui Ribeiro, the effects of this can sometimes be avoided by replacing the |
| corrupted bytes with zeros; e.g. take the PC from the, stack pointer, |
| replace that word with 0000h and then increment SP. This worked with |
| snapshots of Batman, Bounder and others which had been saved at critical |
| points. Theoretically, this problem could cause a complete crash on a real |
| Spectrum if the stack pointer happened to be at address 4000h; the push |
| would try and write to the ROM. |
| |
| When the registers have been loaded, a RETN command is required to start |
| the program. IFF2 is short for interrupt flip-flop 2, and for all |
| practical purposes is the interrupt-enabled flag. Set means enabled. |
| |
'=============================================================================*/
#define Z_SNA_V48K_PC_VALUE 0x72
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 i;
ZInt16 hl_, de_, bc_, af_, hl, de, bc, iy, ix;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 4) (
zuint8 unused_1 :5,
zuint8 iff2 :1,
zuint8 unused_0 :1,
zuint8 iff1 :1
)} fields;
} interrupt;
zuint8 r;
ZInt16 af, sp;
zuint8 im;
zuint8 border_color;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SNA);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_SNA sna;
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SNAv48K);
/* v128K
______________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SNA[128K] |
| Author: McGavin, Peter <p.mcgavin@irl.cri.nz> |
| Supports: ZX Spectrum + 128K |
| Used by: Spectrum (AmigaOS) |
| |
| From comp.sys.sinclair Sinclair ZX Spectrum FAQ: |
| |
| The 128K version of the SNA format is the same as above, with extensions |
| to include the extra memory banks of the 128K/+2 machines, and fixes the |
| problem with the PC being pushed onto the stack - now it is located in an |
| extra variable in the file (and is not pushed onto the stack at all). The |
| first 49179 bytes of the snapshot are otherwise exactly as described |
| above. |
| |
| The third RAM bank saved is always the one currently paged, even if this |
| is page 5 or 2 - in this case, the bank is actually included twice. The |
| remaining RAM banks are saved in ascending order - e.g. if RAM bank 4 is |
| paged in, the snapshot is made up of banks 5, 2 and 4 to start with, and |
| banks 0, 1, 3, 6 and 7 afterwards. If RAM bank 5 is paged in, the snapshot |
| is made up of banks 5, 2 and 5 again, followed by banks 0, 1, 3, 4, 6 and |
| 7. |
| |
'=============================================================================*/
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_SNA sna;
zuint8 ram_bank_5[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_2[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
zuint8 ram_bank_n[Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
ZInt16 pc;
Z_ZXSpectrumPlus128KBankSwitch bank_switch;
zuint8 tr_dos_rom_is_paged; /* boolean */
zuint8 remaining_ram_banks[5][Z_ZX_SPECTRUM_PLUS_128K_SIZE_BANK];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SNAv128K);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H */

View File

@@ -0,0 +1,45 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SNP.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
___________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SNP |
| Authors: Garabik, Radovan <garabik@melkor.dnp.fmph.uniba.sk> |
| Salanci, Lubomir <salanci@center.fmph.uniba.sk> |
| Extensions: .snp |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: Nuclear ZX (MS-DOS) |
| <http://korpus.juls.savba.sk/~garabik/old/zx.html> |
| |
| Reference: |
| http://www.zx-modules.de/fileformats/snpformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'==================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
ZInt16 af;
zuint8 border_color;
zuint8 zero;
ZInt16 bc, de, hl, pc, sp, ix, iy;
zuint8 not_iff2; /* Not used (must be 0?) */
zuint8 iff1;
zuint8 im;
zuint8 r, i;
ZInt16 af_, bc_, de_, hl_;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SNP);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H */

View File

@@ -0,0 +1,72 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SNX.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
______________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SNX |
| Author: Gandler, Christian |
| Extensions: .snx |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: ZX-Spectrum Emulator (aka Specci) (Atari ST) |
| |
| Reference: |
| http://cd.textfiles.com/crawlycrypt1/apps/misc/zx_sp207/specci.doc |
| http://www.zx-modules.de/fileformats/snxformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
'=====================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SNX_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SNX_H
#include <Z/formats/snapshot/machine/computer/ZX Spectrum/SNA.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt32 signature; /* 'XSNA' */
zuint16 header_size; /* 37, big endian */
Z_SNA sna;
zuint8 emulate_interface_1;
zuint8 emulate_flash;
zuint8 emulate_vram_attributes;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 4) (
zuint8 keyboard :1,
zuint8 emulate_ula :1,
zuint8 unused :4,
zuint8 joystick :2
)} fields;
} settings_0;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 3) (
zuint8 ear_mode :1,
zuint8 unused :6,
zuint8 emulate_r :1
)} fields;
} settings_1;
zuint8 int_hz;
zuint8 rs232_mode;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 2) (
zuint8 hz :4,
zuint8 emulation_mode :1
)} fields;
} sound;
zuint8 border_emulation_mode;
zuint8 im2_pointer;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SNX);
#define Z_SNX_RS232_REDIRECTION_RS232 0
#define Z_SNX_RS232_REDIRECTION_CENTRONICS 1
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SNX_H */

View File

@@ -0,0 +1,85 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/SP.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
______________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.SP |
| Author: Gimeno Fortea, Pedro <parigalo@formauri.es> |
| Extensions: .sp |
| Endianness: Little |
| Supports: ZX Spectrum 48K |
| Used by: Spectrum / VGASpec (MS-DOS) |
| <http://www.formauri.es/personal/pgimeno/spec/spec.html> |
| |
| Reference: |
| http://www.zx-modules.de/fileformats/snxformat.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
| From the sources of MESS: |
| |
| There are two kinds of .sp files: 'old' and 'new'. |
| |
| The old version is always 49184 bytes long and is created by a leaked copy |
| of the VGASpec emulator. |
| |
| Subsequently Pedro Gimeno (the author of VGASpec) renamed it to 'Spectrum' |
| (but it's colloquially known as the 'Spanish Spectrum emulator') and added |
| a header in the snapshot to break backward compatibility: the new format |
| supports both 16K and 48K images and it's 16422 or 49190 bytes long. |
| |
'=============================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 signature; /* ['S', 'P'] */
zuint16 ram_size; /* 16384 or 49152 */
zuint16 ram_load_address; /* 16384 */
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SPHeader);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 bc, de, hl, af, ix, iy, bc_, de_, hl_, af_;
zuint8 r, i;
ZInt16 sp, pc;
zuint16 zero_0; /* reserved for future use */
zuint8 border_color;
zuint8 zero_1; /* reserved for future use */
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 7) (
zuint8 zero :2, /* reserved for internal use */
zuint8 flash :1, /* boolean */
zuint8 int_line :1,
zuint8 im0 :1,
zuint8 iff2 :1, /* Added in v0.99C, always 0 in previous versions. */
zuint8 im :1,
zuint8 iff1 :1
)} fields;
} status;
zuint8 zero_2; /* reserved for future use */
zuint8 ram[Z_ZX_SPECTRUM_16K_SIZE_RAM]; /* 16384 or 49152 */
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SPSnapshot);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_SPHeader header;
Z_SPSnapshot snapshot;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_SP);
#define Z_SP_IM(p) ((p)->bits.im0 ? 0 : ((p)->bits.im + 1))
/* 0 1000
1 0000
2 0010
*/
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H */

View File

@@ -0,0 +1,156 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/Z80.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_______________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.Z80 |
| Author: Lunter, Gerton |
| Extensions: .z80 |
| Endianness: Little |
| Supports: |
| Used by: Z80 (MS-DOS) |
| |
| Reference: |
| http://www.zx-modules.de/fileformats/z80format.html |
| |
'======================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 af; /* big endian */
ZInt16 bc, hl, pc, sp;
zuint8 i, r;
/* Additional info; if the byte= 255, it has to be
interpreted as being = 1 */
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 5) (
zuint8 zero :2,
zuint8 ram_is_compressed :1,
zuint8 emulate_basic_samrom :1,
zuint8 border_color :3,
zuint8 r7 :1
)} fields;
} flags_0;
ZInt16 de, bc_, de_, hl_;
ZInt16 af_; /* big endian */
ZInt16 iy, ix;
zuint8 iff1, iff2;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 5) (
zuint8 joystick_type :2,
zuint8 video_synchronization :2,
zuint8 double_int_frequency :1,
zuint8 emulate_issue_2 :1,
zuint8 im :2
)} fields;
} flags_1;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_Z80v1);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint16 header_size;
zuint16 pc;
zuint8 hardware;
zuint8 state_0;
zuint8 state_1;
struct {Z_BIT_FIELD_MEMBERS(8, 7) (
zuint8 unused_1 :1,
zuint8 modify_hardware :1,
zuint8 emulate_fuller_box_ay :1,
zuint8 unused_0 :2,
zuint8 emulate_psg :1,
zuint8 emulate_ldir :1,
zuint8 emulate_r :1
)} bitfield;
zuint8 psg_register_index;
zuint8 psg_registers[16];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_Z80v2Extension);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_Z80v1 v1;
Z_Z80v2Extension v2;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_Z80v2);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint16 t_states_low;
zuint8 t_states_high;
zuint8 zero[3];
zuint8 mgt_rom_is_paged;
zuint8 multiface_rom_is_paged;
zuint8 page_0l_memory_type;
zuint8 page_0h_memory_type;
zuint16 keyboard_mappings[5];
zuint16 ascii_values[5];
zuint8 mgt_type;
zuint8 disciple_inhibitor_button_state;
zuint8 disciple_inhibitor_flag;
zuint8 control;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_Z80v3Extension);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_Z80v1 v1;
Z_Z80v2Extension v2;
Z_Z80v3Extension v3;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_Z80v3);
/* TODO: Homogeneizar los joysticks con los de TZX. */
#define Z_Z80_JOYSTICK_TYPE_CURSOR_PROTEK_AGF 0
#define Z_Z80_JOYSTICK_TYPE_KEMPSTON 1
#define Z_Z80_JOYSTICK_TYPE_SINCLAIR_2_LEFT 2
#define Z_Z80_JOYSTICK_TYPE_SINCLAIR_2_RIGHT 3
#define Z_Z80_VIDEO_SYNCHRONIZATION_NORMAL_1 0
#define Z_Z80_VIDEO_SYNCHRONIZATION_HIGH 1
#define Z_Z80_VIDEO_SYNCHRONIZATION_NORMAL_2 2
#define Z_Z80_VIDEO_SYNCHRONIZATION_LOW 3
#define Z_Z80_HARDWARE_SAM_RAM 2
#define Z_Z80_HARDWARE_PENTAGON_128 9
#define Z_Z80_HARDWARE_SCORPION_ZS_256 10
#define Z_Z80_HARDWARE_DIDAKTIK_KOMPAKT 11
#define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS2 12
#define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS2A 13
#define Z_Z80_HARDWARE_TIMEX_COMPUTER_2048 14
#define Z_Z80_HARDWARE_TIMEX_COMPUTER_2068 15
#define Z_Z80_HARDWARE_TIMEX_SINCLAIR_2068 128
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K 0
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K_AND_IF1 1
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 5
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_MGT 6
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS3 7
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS3_ 8
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K 0
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K_AND_IF1 1
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS2_AND_IF1 5
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS2_AND_MGT 6
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS2A 7
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS2A_ 8
#define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K 3
#define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 4
#define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS2 3
#define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS2_AND_IF1 4
#define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_48K_AND_MGT 3
#define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_128K 4
#define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS2_AND_MGT 3
#define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS2 4
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H */

View File

@@ -0,0 +1,44 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ZLS.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Information contributed by Troels Norgaard.
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
___________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ZLS |
| Author: Zhivilov, Dmitriy Vladimirovich |
| Extensions: .zls |
| Endianness: Big |
| Supports: |
| Used by: ZX-Live <http://aminet.net/package/misc/emu/ZXLive> |
| |
'==================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ZLS_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ZLS_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt64 signature; /* 'ZX-Live!' */
ZInt16 af, bc, de, hl, ix, iy, af_, bc_, de_, hl_;
zuint8 i, r;
ZInt16 sp, pc;
union { zuint8 value;
struct {Z_BIT_FIELD_MEMBERS(8, 4) (
zuint8 unused :6,
zuint8 iff2 :1,
zuint8 iff1 :1,
zuint8 im :2
)} fields;
} interrupt;
zuint8 halt_line;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ZLS);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ZLS_H */

View File

@@ -0,0 +1,790 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ZX-State.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_____________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ZXState |
| Author: |
| Extensions: .szx |
| Endianness: |
| Supports: |
| Used by: Spectaculator <https://www.spectaculator.com> |
| Fuse <http://fuse-emulator.sourceforge.net> |
| |
| Reference: |
| https://www.spectaculator.com/docs/zx-state/intro.shtml |
| https://sinclair.wiki.zxnet.co.uk/wiki/ZX-State_format |
| |
'============================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_State_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_State_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE({
zuint8 signature;
zuint8 version_major;
zuint8 version_minor;
zuint8 machine_id;
zuint8 flags;
}, Z_ZXStateHeader);
#define Z_ZX_STATE_MACHINE_ID_16K 0
#define Z_ZX_STATE_MACHINE_ID_48K 1
#define Z_ZX_STATE_MACHINE_ID_128K 2
#define Z_ZX_STATE_MACHINE_ID_PLUS2 3
#define Z_ZX_STATE_MACHINE_ID_PLUS2A 4
#define Z_ZX_STATE_MACHINE_ID_PLUS3 5
#define Z_ZX_STATE_MACHINE_ID_PLUS3E 6
#define Z_ZX_STATE_MACHINE_ID_PENTAGON128 7
#define Z_ZX_STATE_MACHINE_ID_TC2048 8
#define Z_ZX_STATE_MACHINE_ID_TC2068 9
#define Z_ZX_STATE_MACHINE_ID_SCORPION 10
#define Z_ZX_STATE_MACHINE_ID_SE 11
#define Z_ZX_STATE_MACHINE_ID_TS2068 12
#define Z_ZX_STATE_MACHINE_ID_PENTAGON512 13
#define Z_ZX_STATE_MACHINE_ID_PENTAGON1024 14
#define Z_ZX_STATE_MACHINE_ID_NTSC48K 15
#define Z_ZX_STATE_MACHINE_ID_128KE 16
#define ZXSTMF_ALTERNATETIMINGS 1
Z_DEFINE_PACKED_STRUCTURE({
zuint32 id;
zuint32 size;
}, Z_ZXStateBlockHeader);
// ZXATASP jumper settings
#define ZXSTAF_UPLOADJUMPER 1
#define ZXSTAF_WRITEPROTECT 2
// ZXATASP IDE interface
typedef struct _tagZXSTATASP {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPortA;
zuint8 chPortB;
zuint8 chPortC;
zuint8 chControl;
zuint8 chNumRamPages;
zuint8 chActivePage;
} ZXSTATASP;
// Ram pages are compressed using Zlib
#define ZXSTAF_COMPRESSED 1
// ZXATASP IDE Interface RAM page
typedef struct _tagZXSTATARAM {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPageNo;
zuint8 chData[1];
} ZXSTATARAM;
// AY Block flags
#define ZXSTAYF_FULLERBOX 1
#define ZXSTAYF_128AY 2
// AY Block. Contains the AY register values
typedef struct _tagZXSTAYBLOCK {
Z_ZXStateBlockHeader header;
zuint8 chFlags;
zuint8 chCurrentRegister;
zuint8 chAyRegs[16];
} ZXSTAYBLOCK;
// ZXCF jumper settings
#define ZXSTCF_UPLOADJUMPER 1
// ZXCF CompactFlash interface
typedef struct _tagZXSTCF {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chMemCtrl;
zuint8 chNumRamPages;
} ZXSTCF;
// Ram pages are compressed using Zlib
#define ZXSTCRF_COMPRESSED 1
// ZXCF CompactFlash Interface RAM page
typedef struct _tagZXSTCFRAM {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPageNo;
zuint8 chData[1];
} ZXSTCFRAM;
// Covox state
typedef struct _tagZXSTCOVOX {
Z_ZXStateBlockHeader header;
zuint8 chCurrentVolume;
zuint8 chReserved[3];
} ZXSTCOVOX;
// Beta 128 disk interface used by the Pentagon and Scorpion
#define ZXSTBETAF_CONNECTED 1
#define ZXSTBETAF_CUSTOMROM 2
#define ZXSTBETAF_PAGED 4
#define ZXSTBETAF_AUTOBOOT 8
#define ZXSTBETAF_SEEKLOWER 16
#define ZXSTBETAF_COMPRESSED 32
typedef struct _tagZXSTBETA128 {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chNumDrives;
zuint8 chSysReg;
zuint8 chTrackReg;
zuint8 chSectorReg;
zuint8 chDataReg;
zuint8 chStatusReg;
zuint8 chRomData[1];
} ZXSTBETA128;
// Beta 128 disk image
// Flags
#define ZXSTBDF_EMBEDDED 1
#define ZXSTBDF_COMPRESSED 2
#define ZXSTBDF_WRITEPROTECT 4
// Disk image types
#define ZXSTBDT_TRD 0
#define ZXSTBDT_SCL 1
#define ZXSTBDT_FDI 2
#define ZXSTBDT_UDI 3
typedef struct _tagZXSTBETADISK {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chDriveNum;
zuint8 chCylinder;
zuint8 chDiskType;
union { char szFileName[1];
zuint8 chDiskImage[1];
};
} ZXSTBETADISK;
typedef struct _tagZXSTCREATOR {
Z_ZXStateBlockHeader header;
char szCreator[32];
zuint16 chMajorVersion;
zuint16 chMinorVersion;
zuint8 chData[1];
} ZXSTCREATOR;
// Ram pages are compressed using Zlib
#define ZXSTDF_COMPRESSED 1
#define ZXSTDF_RAM 2
#define ZXSTDF_EXROMDOCK 3
// Timex Sinclair DOCK memory
typedef struct _tagZXSTDOCK {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPageNo;
zuint8 chData[1];
} ZXSTDOCK;
// +3 Disk image
// Each drive that has a disk in it has one of
// these blocks.
#define ZXSTDSKF_COMPRESSED 1
#define ZXSTDSKF_EMBEDDED 2
#define ZXSTDSKF_SIDEB 4
typedef struct _tagZXSTDSKFILE {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chDriveNum;
zuint32 dwUncompressedSize;
zuint8 chData[1];
} ZXSTDSKFILE;
// General Sound
// Flags
#define ZXSTZF_EILAST 1
#define ZXSTZF_HALTED 2
#define ZXSTGSF_CUSTOMROM 64
#define ZXSTGSF_COMPRESSED 128
// GS model
#define ZXSTGSM_128 0
#define ZXSTGSM_512 1
typedef struct _tagZXSTGS {
Z_ZXStateBlockHeader header;
zuint8 chModel;
zuint8 chUpperPage;
zuint8 chGsChanVol[4];
zuint8 chGsChanOut[4];
zuint8 chFlags;
zuint16 AF, BC, DE, HL;
zuint16 AF1, BC1, DE1, HL1;
zuint16 IX, IY, SP, PC;
zuint8 I;
zuint8 R;
zuint8 IFF1, IFF2;
zuint8 IM;
zuint32 dwCyclesStart;
zuint8 chHoldIntReqCycles;
zuint8 chBitReg;
zuint8 chRomData[1];
} ZXSTGS;
// General Sound 32KB RAM page
// Ram pages are compressed using Zlib
#define ZXSTGSRF_COMPRESSED 1
// 32KB GS Ram page
typedef struct _tagZXSTGSRAMPAGE {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPageNo;
zuint8 chData[1];
} ZXSTGSRAMPAGE;
// Keyboard state
#define ZXSTKF_ISSUE2 1
// Supported joystick types
#define ZXSTKJT_KEMPSTON 0
#define ZXSTKJT_FULLER 1
#define ZXSTKJT_CURSOR 2
#define ZXSTKJT_SINCLAIR1 3
#define ZXSTKJT_SINCLAIR2 4
#define ZXSTKJT_SPECTRUMPLUS 5
#define ZXSTKJT_TIMEX1 6
#define ZXSTKJT_TIMEX2 7
#define ZXSTKJT_NONE 8
typedef struct _tagZXSTKEYBOARD {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chKeyboardJoystick;
} ZXSTKEYBOARD;
// Interface 1
#define ZXSTIF1F_ENABLED 1
#define ZXSTIF1F_COMPRESSED 2
#define ZXSTIF1F_PAGED 4
typedef struct _tagZXSTIF1 {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chNumMicrodrives;
zuint8 chReserved[3];
zuint32 dwReserved[8];
zuint16 wRomSize;
zuint8 chRomData[1];
} ZXSTIF1;
// Loaded Interface II ROM cart
typedef struct _tagZXSTIF2ROM {
Z_ZXStateBlockHeader header;
zuint32 dwCartSize;
zuint8 chData[1];
} ZXSTIF2ROM;
// Joystick options
#define ZXSTJOYF_ALWAYSPORT31 1 // Deprecated
// Supported joystick types
#define ZXSTJT_KEMPSTON 0
#define ZXSTJT_FULLER 1
#define ZXSTJT_CURSOR 2
#define ZXSTJT_SINCLAIR1 3
#define ZXSTJT_SINCLAIR2 4
#define ZXSTJT_COMCOM 5
#define ZXSTJT_TIMEX1 6
#define ZXSTJT_TIMEX2 7
#define ZXSTJT_DISABLED 8
typedef struct _tagZXSTJOYSTICK {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chTypePlayer1;
zuint8 chTypePlayer2;
} ZXSTJOYSTICK;
// Microdrive cartridge
// Each drive that has a cartridge in has one of
// these blocks.
#define ZXSTMDF_COMPRESSED 1
#define ZXSTMDF_EMBEDDED 2
typedef struct _tagZXSTMCART {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chDriveNum;
zuint8 fDriveRunning;
zuint16 wDrivePos;
zuint16 wPreamble;
zuint32 dwUncompressedSize;
zuint8 chData[1];
} ZXSTMCART;
// Mouse (currently AMX and Kempston)
#define ZXSTM_NONE 0
#define ZXSTM_AMX 1
#define ZXSTM_KEMPSTON 2
typedef struct _tagZXSTMOUSE {
Z_ZXStateBlockHeader header;
zuint8 chType;
zuint8 chCtrlA[3];
zuint8 chCtrlB[3];
} ZXSTMOUSE;
// Multiface state
#define ZXSTMF_PAGEDIN 0x01
#define ZXSTMF_COMPRESSED 0x02
#define ZXSTMF_SOFTWARELOCKOUT 0x04
#define ZXSTMF_REDBUTTONDISABLED 0x08
#define ZXSTMF_DISABLED 0x10
#define ZXSTMF_16KRAMMODE 0x20
#define ZXSTMFM_1 0
#define ZXSTMFM_128 1
typedef struct _tagZXSTMULTIFACE {
Z_ZXStateBlockHeader header;
zuint8 ch48kModel;
zuint8 chFlags;
zuint8 chData[1];
} ZXSTMULTIFACE;
// Flags
#define ZXSTOPUSF_PAGED 1
#define ZXSTOPUSF_COMPRESSED 2
#define ZXSTOPUSF_SEEKLOWER 4
#define ZXSTOPUSF_CUSTOMROM 8
typedef struct _tagZXSTOPUS {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint32 dwcbRam;
zuint32 dwcbRom;
zuint8 chCtrlRegA;
zuint8 chPeripheralRegA;
zuint8 chDataDirRegA;
zuint8 chCtrlRegB;
zuint8 chPeripheralRegB;
zuint8 chDataDirRegB;
zuint8 chNumDrives;
zuint8 chTrackReg;
zuint8 chSectorReg;
zuint8 chDataReg;
zuint8 chStatusReg;
zuint8 chRam[1];
} ZXSTOPUS;
// Associated Opus Discovery disk images
// Disk image types
#define ZXSTOPDT_OPD 0
#define ZXSTOPDT_OPU 1
#define ZXSTOPDT_FLOPPY0 2
#define ZXSTOPDT_FLOPPY1 3
// Flags
#define ZXSTOPDF_EMBEDDED 1
#define ZXSTOPDF_COMPRESSED 2
#define ZXSTOPDF_WRITEPROTECT 4
typedef struct _tagZXSTOPUSDISK {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chDriveNum;
zuint8 chCylinder;
zuint8 chDiskType;
union { char szFileName[1];
zuint8 chDiskImage[1];
};
} ZXSTOPUSDISK;
// +3 disk drives
typedef struct _tagZXSTPLUS3DISK {
Z_ZXStateBlockHeader header;
zuint8 chNumDrives;
zuint8 fMotorOn;
} ZXSTPLUS3;
// Flags
#define ZXSTPLUSDF_PAGED 1
#define ZXSTPLUSDF_COMPRESSED 2
#define ZXSTPLUSDF_SEEKLOWER 4
// Rom types
#define ZXSTPDRT_GDOS 0
#define ZXSTPDRT_UNIDOS 1
#define ZXSTPDRT_CUSTOM 2
typedef struct _tagZXSTPLUSD {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint32 dwcbRam;
zuint32 dwcbRom;
zuint8 chRomType;
zuint8 chCtrlReg;
zuint8 chNumDrives;
zuint8 chTrackReg;
zuint8 chSectorReg;
zuint8 chDataReg;
zuint8 chStatusReg;
zuint8 chRam[1];
} ZXSTPLUSD;
// Associated Plus D disk images
// Disk image types
#define ZXSTPDDT_MGT 0
#define ZXSTPDDT_IMG 1
#define ZXSTPDDT_FLOPPY0 2
#define ZXSTPDDT_FLOPPY1 3
// Flags
#define ZXSTPDDF_EMBEDDED 1
#define ZXSTPDDF_COMPRESSED 2
#define ZXSTPDDF_WRITEPROTECT 4
typedef struct _tagZXSTPLUSDDISK {
Z_ZXStateBlockHeader header;
zuint32 dwFlags;
zuint8 chDriveNum;
zuint8 chCylinder;
zuint8 chDiskType;
union { char szFileName[1];
zuint8 chDiskImage[1];
};
} ZXSTPLUSDDISK;
// Ram pages are compressed using Zlib
#define ZXSTRF_COMPRESSED 1
// Standard 16kb Spectrum RAM page
typedef struct _tagZXSTRAMPAGE {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint8 chPageNo;
zuint8 chData[1];
} ZXSTRAMPAGE;
// Custom ROM for the current model
#define ZXSTRF_COMPRESSED 1
typedef struct _tagZXSTROM {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
zuint32 dwUncompressedSize;
zuint8 chData[1];
} ZXSTROM;
// Timex Sinclair memory paging and screen modes
typedef struct _tagZXSTSCLDREGS {
Z_ZXStateBlockHeader header;
zuint8 chF4;
zuint8 chFf;
} ZXSTSCLDREGS;
// Simple 8-bit IDE
typedef struct _tagZXSTSIDE {
Z_ZXStateBlockHeader header;
} ZXSTSIDE;
// SpecDrum state
typedef struct _tagZXSTSPECDRUM {
Z_ZXStateBlockHeader header;
zuint8 chCurrentVolume;
} ZXSTSPECDRUM;
typedef struct _tagZXSTSPECREGS {
Z_ZXStateBlockHeader header;
zuint8 chBorder;
zuint8 ch7ffd;
union { zuint8 ch1ffd;
zuint8 chEff7;
};
zuint8 chFe;
zuint8 chReserved[4];
} ZXSTSPECREGS;
// Cassette Recorder state
#define ZXSTTP_EMBEDDED 1
#define ZXSTTP_COMPRESSED 2
typedef struct _tagZXSTTAPE {
Z_ZXStateBlockHeader header;
zuint16 wCurrentBlockNo;
zuint16 wFlags;
zuint32 dwUncompressedSize;
zuint32 dwCompressedSize;
char szFileExtension[16];
zuint8 chData[1];
} Z_ZXStateTape;
// uSpeech state
typedef struct _tagZXSTUSPEECH {
Z_ZXStateBlockHeader header;
zuint8 fPagedIn;
} Z_ZXStateUSpeech;
// ZX Printer
#define ZXSTPRF_ENABLED 1
typedef struct _tagZXSTZXPRINTER {
Z_ZXStateBlockHeader header;
zuint16 wFlags;
} Z_ZXStateZXPrinter;
#define ZXSTZF_EILAST 1
#define ZXSTZF_HALTED 2
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
Z_ZXStateBlockHeader header;
ZInt16 af, bc, de, hl, af_, bc_, de_, hl_, ix, iy;
zuint16 sp, pc;
zuint8 i, r;
zuint8 iff1, iff2;
zuint8 im;
zuint32 frame_cycles;
zuint8 chHoldIntReqCycles;
zuint8 chFlags;
ZInt16 memptr;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ZXStateCPU);
typedef union {
Z_ZXStateTape tape;
Z_ZXStateUSpeech u_speech;
Z_ZXStateZXPrinter zx_printer;
Z_ZXStateCPU cpu;
} Z_ZXStateBlock;
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_State_H */

View File

@@ -0,0 +1,70 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ZX.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Information contributed by Troels Norgaard.
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
_________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ZX |
| Author: Noerdergard, Troels |
| Extensions: .zx |
| Endianness: Big |
| Supports: ZX Spectrum 48K |
| Used by: KGB (AmigaOS) |
| <http://www.cybercity.dk/users/ccc14241/home.html> |
| |
| Reference: |
| http://rk.nvg.ntnu.no/sinclair/faq/fileform.html |
| [MAME sources]/src/mame/machine/spec_snqk.cpp |
| |
| Thanks to Troels Norgaard for sharing the description of this format. |
| |
'========================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 rom_tail[132]; /* last 132 bytes of ROM */
zuint8 ram[Z_ZX_SPECTRUM_48K_SIZE_RAM];
zuint8 zero_0[132];
zuint16 settings[5]; /* KGB settings, usually = {10, 10, 4, 1, 1} */
zuint8 iff; /* IFF1 and IFF2 */
zuint8 constants[2]; /* must be {0, 3} */
zuint8 color_mode;
zuint32 zero_1;
ZInt16 bc, bc_, de, de_, hl, hl_, ix, iy;
zuint8 i, r;
zuint16 zero_2;
zuint8 zero_3, a_;
zuint8 zero_4, a;
zuint8 zero_5, f_;
zuint8 zero_6, f;
ZInt16 zero_7, pc;
ZInt16 zero_8, sp;
zuint16 sound_mode;
zuint8 zero_9;
zuint8 halt_line; /* boolean */
zsint16 im;
zuint8 zero_10[10];
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ZX);
#define Z_ZX_COLOR_MODE_BW 0
#define Z_ZX_COLOR_MODE_COLOR 1
#define Z_ZX_SOUND_MODE_SIMPLE 0
#define Z_ZX_SOUND_MODE_PITCH 1
#define Z_ZX_SOUND_MODE_ROM_ONLY 2
#define Z_ZX_IM_0 -1
#define Z_ZX_IM_1 0
#define Z_ZX_IM_2 1
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H */

View File

@@ -0,0 +1,77 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ZX82.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
______________________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ZX82 |
| Author: James, William |
| Extensions: .zx82 |
| Endianness: Big |
| Supports: ZX Spectrum 48K |
| Used by: Speculator '97 (AmigaOS) |
| |
| Reference: |
| http://rk.nvg.ntnu.no/sinclair/faq/fileform.html |
| |
| IMPORTANT NOTICE: This format is not well known at all, so the types and |
| constants declared here may be useless. |
| |
| From comp.sys.sinclair Sinclair ZX Spectrum FAQ: |
| |
| -- Amiga Speculator has its own file format which I have called ZX82 |
| format because it contains a file identifier in the first four bytes |
| consisting of the ASCII characters 'ZX82'. The format has a 12 byte header |
| which contains the normal Spectrum type file information like length, |
| type, start etc. as well as a compression flag which is set if the file is |
| byte run compressed. Snapshot files have a further 32 bytes of register |
| values and border colour information. |
| |
| The data_type field is derived from the MGT disciple directory MGT_Type-1, |
| so further file types may be supported in this way in the future. |
| |
| The compression used is the standard byte run compression as used by ILBM |
| IFF files. The whole 48k data block is compressed as if it were one long |
| row. -- |
| |
| See: Amiga ROM Kernel Reference Manual: Devices (Third Edition) |
| - Appendix A - IFF Specification (Page 347) |
| - Appendix C - Example Packer C code (Page 538) |
| |
'=============================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE ({
zuint8 signature[4]; /* {'Z', 'X', '8', '2'} */
zuint8 data_type;
zuint8 data_compressed; /* boolean */
zuint16 data_size; /* file length up to 64k (ELINE-PROG for BASIC) */
zuint16 start_address; /* start address for code (AUTOSTART for BASIC) */
zuint16 program_size;
}, Z_ZX82Header);
#define Z_ZX82_DATA_TYPE_BASIC 0
#define Z_ZX82_DATA_TYPE_NUMERIC 1
#define Z_ZX82_DATA_TYPE_STRING 2
#define Z_ZX82_DATA_TYPE_CODE 3
#define Z_ZX82_DATA_TYPE_SNAPSHOT 4
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
zuint8 border_color;
zuint8 im; /* (0 = use I register, 1 = IM 1 and 2 = IM 2) (?) */
ZInt16 iy, ix, de, bc, hl, af, de_, bc_, hl_, af_, sp;
zuint8 zero_0, i;
zuint8 zero_1, r;
ZInt16 pc;
Z_FAM(zuint8 memory[];)
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ZX82Snapshot);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H */

View File

@@ -0,0 +1,156 @@
/* Zeta API - Z/formats/snapshot/machine/computer/ZX Spectrum/ZXS.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
__________________________________________________________________
| |
| Daft: Public.Snapshot.Computer.ZXSpectrum.ZXS |
| Author: Kapartzianis, Vaggelis |
| Extensions: .zxs |
| Endianness: Little |
| Supports: |
| Used by: zx32 (Windows) |
| <http://www.geocities.com/SiliconValley/Bay/9932/> |
| Fuse <http://fuse-emulator.sourceforge.net> |
| |
| Reference: |
| http://www.geocities.com/SiliconValley/Bay/9932/ |
| |
'=================================================================*/
#ifndef Z_formats_snapshot_machine_computer_ZX_Spectrum_ZXS_H
#define Z_formats_snapshot_machine_computer_ZX_Spectrum_ZXS_H
#include <Z/types/bitwise.h>
#include <Z/hardware/machine/computer/ZX Spectrum.h>
#define Z_ZXS_MACHINE_DEFAULT 0
#define Z_ZXS_MACHINE_48K 0x10 // ZX Spectrum 48K (Model 2)
#define Z_ZXS_MACHINE_PLUS 0x20 // ZX Spectrum + (Model 3)
#define Z_ZXS_MACHINE_PLUS_128K 0x30 // ZX Spectrum 128
#define Z_ZXS_MACHINE_PLUS2 0x40 // ZX Spectrum +2
#define Z_ZXS_MACHINE_PLUS2A 0x50 // ZX Spectrum +2A
#define Z_ZXS_MACHINE_PLUS3 0x60 // ZX Spectrum +3
#define ZXH_NONSTANDARD 0x0001 // peripheral hardware
#define Z_ZXS_ZIP_METHOD_STORE 0 // compression methods
#define Z_ZXS_ZIP_METHOD_SHRINK 0x0001
#define Z_ZXS_ZIP_METHOD_REDUCE_1 0x0002
#define Z_ZXS_ZIP_METHOD_REDUCE_2 0x0003
#define Z_ZXS_ZIP_METHOD_REDUCE_3 0x0004
#define Z_ZXS_ZIP_METHOD_REDUCE_4 0x0005
#define Z_ZXS_ZIP_METHOD_IMPLODE 0x0006
#define Z_ZXS_ZIP_METHOD_TOKENIZE 0x0007
#define Z_ZXS_ZIP_METHOD_DEFLATE 0x0008
#define Z_ZXS_ZIP_METHOD_NONE 0xFFFF
#if Z_ISA_INTEGRAL_ENDIANNESS == Z_ENDIANNESS_LITTLE
# define Z_UINT16_STRING(_1, _0) \
(((zuint16)(_0) << 8) | (zuint16)(_1))
# define Z_UINT32_STRING(_3, _2, _1, _0) ( \
((zuint32)(_0) << 24) | \
((zuint32)(_1) << 16) | \
((zuint32)(_2) << 8) | \
(zuint32)(_3))
#else
# define Z_UINT16_STRING(_1, _0) \
(((zuint16)(_1) << 8) | (zuint16)(_0))
# define Z_UINT32_STRING(_3, _2, _1, _0) ( \
((zuint32)(_3) << 24) | \
((zuint32)(_2) << 16) | \
((zuint32)(_1) << 8) | \
(zuint32)(_0))
#endif
#define Z_ZXS_FORM_TYPE Z_UINT32_STRING('S','N','A','P')
#define Z_ZXS_CHUNK_ID_FORMAT_INFO Z_UINT32_STRING('f','m','t','z')
#define Z_ZXS_CHUNK_ID_CPU Z_UINT32_STRING('r','Z','8','0')
#define Z_ZXS_CHUNK_ID_ZX_SPECTRUM_48K_IO Z_UINT32_STRING('r','0','4','8')
#define Z_ZXS_CHUNK_ID_ZX_SPECTRUM_PLUS_128K_IO Z_UINT32_STRING('r','1','2','8')
#define Z_ZXS_CHUNK_ID_ZX_SPECTRUM_PLUS3_IO Z_UINT32_STRING('r','+','3',' ')
#define Z_ZXS_CHUNK_ID_RAM_0 Z_UINT32_STRING('r','a','m','0')
#define Z_ZXS_CHUNK_ID_RAM_1 Z_UINT32_STRING('r','a','m','1')
#define Z_ZXS_CHUNK_ID_RAM_2 Z_UINT32_STRING('r','a','m','2')
#define Z_ZXS_CHUNK_ID_RAM_3 Z_UINT32_STRING('r','a','m','3')
#define Z_ZXS_CHUNK_ID_RAM_4 Z_UINT32_STRING('r','a','m','4')
#define Z_ZXS_CHUNK_ID_RAM_5 Z_UINT32_STRING('r','a','m','5')
#define Z_ZXS_CHUNK_ID_RAM_6 Z_UINT32_STRING('r','a','m','6')
#define Z_ZXS_CHUNK_ID_RAM_7 Z_UINT32_STRING('r','a','m','7')
#define Z_ZXS_CHUNK_ID_TAPE Z_UINT32_STRING('t','a','p','e')
#define Z_ZXS_CHUNK_ID_DISK_0 Z_UINT32_STRING('d','s','k','0')
#define Z_ZXS_CHUNK_ID_DISK_1 Z_UINT32_STRING('d','s','k','1')
#define Z_ZXS_CHUNK_ID_ZX32 Z_UINT32_STRING('z','x','3','2')
Z_DEFINE_PACKED_STRUCTURE ({
zuint32 structure_size; // structure size
zuint32 crc32; // crc
zuint32 uncompressed_size; // uncompressed size
zuint8 data[1];
}, Z_ZXSZip);
Z_DEFINE_PACKED_STRUCTURE ({
zuint16 version;
zuint16 machine_model;
zuint16 machine_flags;
zuint16 zip_method;
}, Z_ZXSFormatInfo);
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
ZInt16 af; /* big endian */
ZInt16 bc, de, hl;
ZInt16 af_; /* big endian */
ZInt16 bc_, de_, hl_, ix, iy, pc, sp;
zuint8 i, r;
zuint8 iff1, iff2;
zuint8 im;
zuint32 t_states;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_ZXSCPU);
Z_DEFINE_PACKED_STRUCTURE ({
Z_ZXSpectrumULAIO ula_io;
ZInt64 keyboard;
}, Z_ZXSZXSpectrum48KIO);
Z_DEFINE_PACKED_STRUCTURE ({
Z_ZXSpectrumPlus128KBankSwitch bank_switch;
zuint8 port_fffd;
zuint8 psg[16];
}, Z_ZXSZXSpectrumPlus128KIO);
Z_DEFINE_PACKED_STRUCTURE ({
zuint8 port_1ffd;
}, Z_ZXSZXSpectrumPlus3IO);
Z_DEFINE_PACKED_STRUCTURE ({
zuint32 current_position;
zuint32 remain_block_size;
zuint32 data_size;
zuint8 data[1];
}, Z_ZXSTape);
Z_DEFINE_PACKED_STRUCTURE ({
ZInt32 id;
zuint32 data_size;
union { ZInt32 type;
Z_ZXSZip zip;
Z_ZXSFormatInfo format_info;
Z_ZXSCPU cpu;
Z_ZXSZXSpectrum48KIO zx_spectrum_48k_io;
Z_ZXSZXSpectrumPlus128KIO zx_spectrum_plus_128k_io;
Z_ZXSZXSpectrumPlus3IO zx_spectrum_plus3_io;
Z_ZXSTape tape;
} data;
}, Z_ZXSChunk);
#endif /* Z_formats_snapshot_machine_computer_ZX_Spectrum_ZXS_H */

View File

@@ -0,0 +1,59 @@
/* Zeta API - Z/formats/storage medium image/NES Game Pak/TNES.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
____________________________________________
| |
| Extensions: ? |
| Created by: Nintendo |
| |
| Reference: |
| https://wiki.nesdev.com/w/index.php/TNES |
| |
'===========================================*/
#ifndef Z_formats_storage_medium_image_NES_Game_Pak_TNES_H
#define Z_formats_storage_medium_image_NES_Game_Pak_TNES_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE ({
/* 0 */ ZInt32 signature; /* 54h, 4Eh, 45h, 53h ('TNES') */
/* 4 */ zuint8 mapper;
/* 5 */ zuint8 prg_rom_size;
/* 6 */ zuint8 chr_rom_size;
/* 7 */ zuint8 has_wram;
/* 8 */ zuint8 mirroring;
/* 9 */ zuint8 has_battery;
/* A */ zuint8 unknown[2];
/* C */ zuint8 zero[4];
}, Z_TNESHeader);
#if Z_ISA_INTEGRAL_ENDIANNESS == Z_ENDIANNESS_LITTLE
# define Z_TNES_SIGNATURE 0x53454E54
#else
# define Z_TNES_SIGNATURE 0x544E4553
#endif
#define Z_TNES_ROM_SIZE_UNIT 8192
#define Z_TNES_MIRRORING_MAPPER_CONTROLLED 0
#define Z_TNES_MIRRORING_HORIZONTAL 1
#define Z_TNES_MIRRORING_VERTICAL 2
#define Z_TNES_MAPPER_NROM 0
#define Z_TNES_MAPPER_SXROM_MMC1 1
#define Z_TNES_MAPPER_PNROM_MMC2 2
#define Z_TNES_MAPPER_TXROM_MMC3 3
#define Z_TNES_MAPPER_FXROM_MMC4 4
#define Z_TNES_MAPPER_EXROM_MMC5 5
#define Z_TNES_MAPPER_UXROM 6
#define Z_TNES_MAPPER_CNROM 7
#define Z_TNES_MAPPER_AXROM 9
#define Z_TNES_MAPPER_FDS 100
#endif /* Z_formats_storage_medium_image_NES_Game_Pak_TNES_H */

View File

@@ -0,0 +1,36 @@
/* Zeta API - Z/formats/storage medium image/NES Game Pak/UNIF.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
____________________________________________
| |
| Extensions: unf, unif |
| Created by: Carmel-Veilleux, Tennessee |
| |
| Reference: |
| https://wiki.nesdev.com/w/index.php/UNIF |
| |
'===========================================*/
#ifndef Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H
#define Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE ({
ZInt32 signature; /* 55h, 4Eh, 49h, 46h ('UNIF') */
zuint32 minimum_version_required;
zuint8 zero[24];
}, Z_UNIFHeader);
#if Z_ISA_INTEGRAL_ENDIANNESS == Z_ENDIANNESS_LITTLE
# define Z_UNIF_SIGNATURE 0x46494E55
#else
# define Z_UNIF_SIGNATURE 0x554E4946
#endif
#endif /* Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H */

View File

@@ -0,0 +1,134 @@
/* Zeta API - Z/formats/storage medium image/NES Game Pak/iNES.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
___________________________________________________________
| |
| Daft: Public.StorageMediumImage.NESGamePak.iNES |
| Author: Fayzullin, Marat |
| Extensions: .nes |
| Created by: aka kevtris |
| aka NewRisingSun |
| Used by: Any NES emulator |
| |
| Reference: |
| https://wiki.nesdev.com/w/index.php/INES |
| http://forums.nesdev.com/viewtopic.php?p=17727#p17727 |
| http://forums.nesdev.com/viewtopic.php?p=220624#p220624 |
| |
'==========================================================*/
#ifndef Z_formats_storage_medium_image_NES_Game_Pak_iNES_H
#define Z_formats_storage_medium_image_NES_Game_Pak_iNES_H
#include <Z/types/bitwise.h>
Z_DEFINE_PACKED_STRUCTURE_BEGIN {
/* 0 */ ZInt32 signature; /* 4Eh, 45h, 53h, 1Ah ('NES' + MS-DOS EOF) */
/* 4 */ zuint8 prg_rom_page_count;
/* 5 */ zuint8 chr_rom_page_count;
/* 6 */ struct {Z_BIT_FIELD_MEMBERS(8, 5) (
zuint8 mapper_index_low_nibble :4,
zuint8 has_4_screen_vram_layout :1,
zuint8 has_trainer :1,
zuint8 has_persistent_wram :1,
zuint8 mirroring :1
)} flags_6;
union { struct {
/* 7 */ struct {Z_BIT_FIELD_MEMBERS(8, 4) (
zuint8 mapper_index_high_nibble :4,
zuint8 rom_image_format :1,
zuint8 is_play_choice_10 :1,
zuint8 is_vs_system :1
)} flags_7;
/*----------------------------------------.
| This field was a later extension to the |
| iNES format. It is not widely used. |
'========================================*/
/* 8 */ zuint8 wram_size;
/*--------------------------------------------.
| Though in the official specification, very |
| few programs honor yhis field, as virtually |
| no ROM images in circulation make use of it.|
'============================================*/
/* 9 */ struct {Z_BIT_FIELD_MEMBERS(8, 2) (
zuint8 zero :7,
zuint8 is_pal :1
)} flags_9;
/* A */ zuint8 unused[6];
} v1;
struct {
} v2;
} as;
} Z_DEFINE_PACKED_STRUCTURE_END (Z_iNESHeader);
#if Z_ISA_INTEGRAL_ENDIANNESS == Z_ENDIANNESS_LITTLE
# define Z_INES_SIGNATURE 0x1A53454E
#else
# define Z_INES_SIGNATURE 0x4E45531A
#endif
#define Z_INES_PRG_ROM_SIZE_UNIT 16384
#define Z_INES_CHR_ROM_SIZE_UNIT 8192
#define Z_INES_WRAM_SIZE_UNIT 8192
/* ZiNESHeader::flags_6.mirroring */
#define Z_INES_MIRRORING_VERTICAL 0
#define Z_INES_MIRRORING_HORIZONTAL 1
#define Z_INES_TV_SYSTEM_NTSC 0
#define Z_INES_TV_SYSTEM_DUAL_1 1
#define Z_INES_TV_SYSTEM_PAL 2
#define Z_INES_TV_SYSTEM_DUAL_3 3
/*#define Z_INES_MAPPER_NONE 0
#define Z_INES_MAPPER_NINTENDO_MMC1 1
#define Z_INES_MAPPER_PRG_ROM_SWITCH 2
#define Z_INES_MAPPER_CHR_VROM_SWITCH 3
#define Z_INES_MAPPER_NINTENDO_MMC3 4
#define Z_INES_MAPPER_NINTENDO_MMC5 5
#define Z_INES_MAPPER_FFE_F4XXX_GAMES 6
#define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 7
#define Z_INES_MAPPER_FFE_F3XXX_GAMES 8
#define Z_INES_MAPPER_NINTENDO_MMC2 9
#define Z_INES_MAPPER_NINTENDO_MMC4 10
#define Z_INES_MAPPER_COLOR_DREAMS_CHIPSET 11
#define Z_INES_MAPPER_FFE_F6XXX_GAMES 12
#define Z_INES_MAPPER_100_IN_1_CART_SWITCH 15
#define Z_INES_MAPPER_BAN_DAI_CHIPSET 16
#define Z_INES_MAPPER_FFE_F8XXX_GAMES 17
#define Z_INES_MAPPER_JALECO_SS8806_CHIPSET 18
#define Z_INES_MAPPER_NAMCOT_106_CHIPSET 19
#define Z_INES_MAPPER_FAMICOM_DISK_SYSTEM 20
#define Z_INES_MAPPER_KONAMI_VRC4_2A_CHIPSET 21
#define Z_INES_MAPPER_KONAMI_VRC4_1B_CHIPSET 22
#define Z_INES_MAPPER_KONAMI_VRC4_1A_CHIPSET 23
#define Z_INES_MAPPER_KONAMI_VRC6_CHIPSET 24
#define Z_INES_MAPPER_KONAMI_VRC4_CHIPSET 25
#define Z_INES_MAPPER_IREM_G_101_CHIPSET 32
#define Z_INES_MAPPER_TAITO_TC0190_TC0350 33
#define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 34
#define Z_INES_MAPPER_IREM_H3001_CHIPSET 65
#define Z_INES_MAPPER_74161_32_CHIPSET 66
#define Z_INES_MAPPER_SUNSOFT_MAPPER_3 67
#define Z_INES_MAPPER_SUNSOFT_MAPPER_4 69
#define Z_INES_MAPPER_74161_32_CHIPSET 70
#define Z_INES_MAPPER_X_005_CHIPSET 80
#define Z_INES_MAPPER_C075_CHIPSET 81
#define Z_INES_MAPPER_X1_17_CHIPSET 82
#define Z_INES_MAPPER_CONY_MAPPER 83
#define Z_INES_MAPPER_PASOFAMI_MAPPER 84*/
#endif /* Z_formats_storage_medium_image_NES_Game_Pak_iNES_H */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
/* Zeta API - Z/formats/storage medium image/audio/Warajevo TAP.h
______ ____________ ___
|__ /| ___|__ __|/ \
/ /_| __| | | / * \
/_____|_____| |__|/__/ \__\
Copyright (C) 2006-2022 Manuel Sainz de Baranda y Goñi.
Released under the terms of the GNU Lesser General Public License v3.
.------------------------------------------------------------------.
| Extensions: tap |
| Endianness: Little |
| Created by: Juric, Zeljko - Ribic, Samir (aka Megaribi) |
| Used by: Warajevo [MS-DOS] and some old ZX Spectrum emulators |
'=================================================================*/
#ifndef Z_formats_storage_medium_image_audio_Warajevo_TAP_H
#define Z_formats_storage_medium_image_audio_Warajevo_TAP_H
#include <Z/types/integral.h>
#include <Z/macros/language.h>
Z_DEFINE_PACKED_STRUCTURE ({
zsint32 first_block_offset;
zsint32 last_block_offset;
zuint32 eof_marker;
}, Z_WarajevoTAPHeader);
Z_DEFINE_PACKED_STRUCTURE ({
zsint32 previous_block_offset;
zsint32 next_block_offset;
zuint16 data_size;
}, Z_WarajevoTAPBlockHeader);
#endif /* Z_formats_storage_medium_image_audio_Warajevo_TAP_H */

Some files were not shown because too many files have changed in this diff Show More