Initial Commit
This commit is contained in:
parent
882a9c99d6
commit
774ad0e693
24
CMake/CMakeASM_WDCInformation.cmake
Normal file
24
CMake/CMakeASM_WDCInformation.cmake
Normal file
@ -0,0 +1,24 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(CMAKE_ASM_WDC_SOURCE_FILE_EXTENSIONS asm;S;s)
|
||||
set(CMAKE_ASM_WDC_COMPILER_ARG1 "")
|
||||
set(CMAKE_ASM_WDC_DEFINE_FLAG "-D")
|
||||
set(CMAKE_ASM_WDC_FLAGS_DEBUG_INIT "-g -DDEBUG")
|
||||
set(CMAKE_ASM_WDC_VERBOSE_FLAG "-V" )
|
||||
set(CMAKE_DEPFILE_FLAGS_ASM_WDC "-K <DEP_FILE>")
|
||||
|
||||
set(CMAKE_ASM_WDC_COMPILER_AR wdclib CACHE PATH "WDC archiver")
|
||||
set(CMAKE_LINKER wdcld CACHE PATH "WDC linker")
|
||||
|
||||
set(CMAKE_ASM_WDC_COMPILE_OBJECT
|
||||
"<CMAKE_ASM_WDC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -O <OBJECT> <SOURCE>")
|
||||
|
||||
set(CMAKE_ASM_WDC_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -O <TARGET>")
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeASMInformation)
|
||||
set(CMAKE_INCLUDE_FLAG_ASM_WDC "-I")
|
||||
set(ASM_DIALECT)
|
36
CMake/CMakeDetermineASM_WDCCompiler.cmake
Normal file
36
CMake/CMakeDetermineASM_WDCCompiler.cmake
Normal file
@ -0,0 +1,36 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
if(NOT CMAKE_ASM_WDC_COMPILER)
|
||||
SET(_COMPILER_LIST ca65)
|
||||
|
||||
find_program(
|
||||
CMAKE_ASM_WDC_COMPILER
|
||||
NAMES ${_COMPILER_LIST}
|
||||
DOC "WDC assembler")
|
||||
|
||||
unset(_COMPILER_LIST)
|
||||
|
||||
if(CMAKE_ASM_WDC_COMPILER)
|
||||
set(CMAKE_ASM_WDC_COMPILER_ID CA65 CACHE PATH "WDC assembler ID")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_ASM_WDC_COMPILER} --version
|
||||
OUTPUT_VARIABLE _OUTPUT1
|
||||
ERROR_VARIABLE _OUTPUT2)
|
||||
|
||||
if("${_OUTPUT1};${_OUTPUT2}" MATCHES ".*ca65 V([^\n]*)-.*")
|
||||
set(CMAKE_ASM_WDC_COMPILER_VERSION "${CMAKE_MATCH_1}" CACHE PATH "WDC assembler version")
|
||||
endif()
|
||||
|
||||
unset(_OUTPUT1)
|
||||
unset(_OUTPUT2)
|
||||
|
||||
include(Compiler/WDC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeDetermineASMCompiler)
|
||||
set(ASM_DIALECT)
|
7
CMake/CMakeTestASM_WDCCompiler.cmake
Normal file
7
CMake/CMakeTestASM_WDCCompiler.cmake
Normal file
@ -0,0 +1,7 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeTestASMCompiler)
|
||||
set(ASM_DIALECT)
|
31
CMake/Compiler/WDC-C.cmake
Normal file
31
CMake/Compiler/WDC-C.cmake
Normal file
@ -0,0 +1,31 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
include(Compiler/WDC)
|
||||
|
||||
set(CMAKE_C_COMPILER_ID_RUN YES)
|
||||
set(CMAKE_C_COMPILER_ID_WORKS YES)
|
||||
set(CMAKE_C_COMPILER_ID_FORCED YES)
|
||||
|
||||
set(CMAKE_C_DEFINE_FLAG "-D")
|
||||
set(CMAKE_C_VERBOSE_FLAG "-V" )
|
||||
set(CMAKE_C_FLAGS_DEBUG_INIT "-g -DDEBUG")
|
||||
set(CMAKE_DEPFILE_FLAGS_C "--create-dep <DEP_FILE>")
|
||||
set(CMAKE_INCLUDE_FLAG_C "-I ")
|
||||
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "--standard c89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "--standard c99")
|
||||
|
||||
set(CMAKE_C_CREATE_ASSEMBLY_SOURCE
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -A -O <OBJECT> <SOURCE>")
|
||||
|
||||
set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -LT -O <PREPROCESSED_SOURCE> <SOURCE>")
|
||||
|
||||
set(CMAKE_C_COMPILE_OBJECT
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -O <OBJECT> <SOURCE> && \
|
||||
<CMAKE_ASM_WDC_COMPILER> -O <OBJECT> <OBJECT>")
|
||||
|
||||
set(CMAKE_C_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -O <TARGET>")
|
104
CMake/Compiler/WDC.cmake
Normal file
104
CMake/Compiler/WDC.cmake
Normal file
@ -0,0 +1,104 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
include_guard()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES AppleII)
|
||||
set(_SYSTEM apple2)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES AppleIIeEnhanced)
|
||||
set(_SYSTEM apple2enh)
|
||||
set(_CPU 65C02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atari2600)
|
||||
set(_SYSTEM atari2600)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atari5200)
|
||||
set(_SYSTEM atari5200)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atmos)
|
||||
set(_SYSTEM atmos)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES BBCMicro)
|
||||
set(_SYSTEM bbc)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CBMIIB)
|
||||
set(_SYSTEM cbm610)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CBMIIP)
|
||||
set(_SYSTEM cbm510)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Challenger1P)
|
||||
set(_SYSTEM osic1p)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CommanderX16)
|
||||
set(_SYSTEM cx16)
|
||||
set(_CPU 65C02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore16)
|
||||
set(_SYSTEM c16)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore64)
|
||||
set(_SYSTEM c64)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore128)
|
||||
set(_SYSTEM c128)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CreatiVision)
|
||||
set(_SYSTEM creativision)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Gamate)
|
||||
set(_SYSTEM gamate)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Lynx)
|
||||
set(_SYSTEM lynx)
|
||||
set(_CPU 65SC02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES LUnix)
|
||||
set(_SYSTEM lunix)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES NES)
|
||||
set(_SYSTEM nes)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES PCEngine)
|
||||
set(_SYSTEM pce)
|
||||
set(_CPU HuC6280)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES PET)
|
||||
set(_SYSTEM pet)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Plus4)
|
||||
set(_SYSTEM plus4)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Supervision)
|
||||
set(_SYSTEM supervision)
|
||||
set(_CPU 65SC02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Telestrat)
|
||||
set(_SYSTEM telestrat)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES VIC20)
|
||||
set(_SYSTEM vic20)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT _SYSTEM)
|
||||
set(_SYSTEM none)
|
||||
endif()
|
||||
|
||||
if(NOT _CPU)
|
||||
set(_CPU 6502)
|
||||
endif()
|
||||
|
||||
add_compile_options(--cpu ${_CPU} --target ${_SYSTEM})
|
||||
|
||||
unset(_SYSTEM)
|
||||
unset(_CPU)
|
||||
|
||||
find_program(CMAKE_AR wdclib DOC "WDC archiver")
|
||||
set(CMAKE_${lang}_COMPILER_AR ${CMAKE_AR} CACHE FILEPATH "WDC archiver" FORCE)
|
||||
find_program(CMAKE_LINKER wdcld DOC "WDC linker")
|
||||
|
||||
set(CMAKE_${lang}_RANLIB "" CACHE FILEPATH "")
|
33
CMake/Platform/NES-Determine-C.cmake
Normal file
33
CMake/Platform/NES-Determine-C.cmake
Normal file
@ -0,0 +1,33 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
if(NOT CMAKE_C_COMPILER)
|
||||
SET(_COMPILER_LIST WDC)
|
||||
|
||||
find_program(
|
||||
CMAKE_C_COMPILER
|
||||
NAMES ${_COMPILER_LIST}
|
||||
DOC "WDC C compiler")
|
||||
|
||||
unset(_COMPILER_LIST)
|
||||
|
||||
if(CMAKE_C_COMPILER)
|
||||
set(CMAKE_C_COMPILER_ID WDC CACHE PATH "C compiler ID")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} --version
|
||||
OUTPUT_VARIABLE _OUTPUT1
|
||||
ERROR_VARIABLE _OUTPUT2)
|
||||
|
||||
if("${_OUTPUT1};${_OUTPUT2}" MATCHES ".*WDC V([^\n]*)-.*")
|
||||
set(CMAKE_C_COMPILER_VERSION "${CMAKE_MATCH_1}" CACHE PATH "C compiler version")
|
||||
endif()
|
||||
|
||||
unset(_OUTPUT1)
|
||||
unset(_OUTPUT2)
|
||||
|
||||
set(CMAKE_C_ABI_COMPILED YES)
|
||||
set(CMAKE_C_COMPILER_WORKS YES)
|
||||
endif()
|
||||
endif()
|
6
CMake/Platform/NES.cmake
Normal file
6
CMake/Platform/NES.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(NES 1)
|
||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS NO)
|
57
bin/wdc-config
Executable file
57
bin/wdc-config
Executable file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
exec_prefix=${prefix}
|
||||
exec_prefix_set=no
|
||||
|
||||
usage="\
|
||||
Usage: wdc-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo "${usage}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
*) optarg= ;;
|
||||
esac
|
||||
|
||||
case $1 in
|
||||
--prefix=*)
|
||||
prefix=$optarg
|
||||
if test $exec_prefix_set = no ; then
|
||||
exec_prefix=$optarg
|
||||
fi
|
||||
;;
|
||||
--prefix)
|
||||
echo $prefix
|
||||
;;
|
||||
--exec-prefix=*)
|
||||
exec_prefix=$optarg
|
||||
exec_prefix_set=yes
|
||||
;;
|
||||
--exec-prefix)
|
||||
echo $exec_prefix
|
||||
;;
|
||||
--version)
|
||||
echo 3.49.1
|
||||
;;
|
||||
--cflags)
|
||||
includes=-I${prefix}/include
|
||||
echo $includes
|
||||
;;
|
||||
--libs)
|
||||
libdirs=-L${prefix}/lib
|
||||
echo $libdirs
|
||||
;;
|
||||
*)
|
||||
echo "${usage}" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
1
bin/wdc.cfg
Normal file
1
bin/wdc.cfg
Normal file
@ -0,0 +1 @@
|
||||
prefix=/opt/wdc
|
7
bin/wdc02as
Executable file
7
bin/wdc02as
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC02AS.exe $*
|
9
bin/wdc02cc
Executable file
9
bin/wdc02cc
Executable file
@ -0,0 +1,9 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC02CC.exe $*
|
||||
echo $'\n'
|
||||
|
7
bin/wdc02op
Executable file
7
bin/wdc02op
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC02OP.exe $*
|
7
bin/wdc816as
Executable file
7
bin/wdc816as
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC816AS.exe $*
|
7
bin/wdc816cc
Executable file
7
bin/wdc816cc
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC816CC.exe $*
|
7
bin/wdc816op
Executable file
7
bin/wdc816op
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDC816OP.exe $*
|
7
bin/wdcdumpobj
Executable file
7
bin/wdcdumpobj
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/wdcdumpobj.exe $*
|
||||
echo $'\n'
|
9
bin/wdclib
Executable file
9
bin/wdclib
Executable file
@ -0,0 +1,9 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_LIB=`winepath -w ${prefix}/lib`
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDCLIB.exe $*
|
7
bin/wdclink
Executable file
7
bin/wdclink
Executable file
@ -0,0 +1,7 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/wdclink.exe $*
|
||||
echo $'\n'
|
10
bin/wdcln
Executable file
10
bin/wdcln
Executable file
@ -0,0 +1,10 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_LIB=`winepath -w ${prefix}/lib`
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDCLN.exe $*
|
||||
echo $'\n'
|
9
bin/wdcobj
Executable file
9
bin/wdcobj
Executable file
@ -0,0 +1,9 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_LIB=`winepath -w ${prefix}/lib`
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDCOBJ.exe $*
|
9
bin/wdcsym
Executable file
9
bin/wdcsym
Executable file
@ -0,0 +1,9 @@
|
||||
#! /bin/bash
|
||||
|
||||
source wdc.cfg
|
||||
|
||||
export WINEPATH=${prefix}/libexec
|
||||
export WDC_LIB=`winepath -w ${prefix}/lib`
|
||||
export WDC_INC_6502=`winepath -w ${prefix}/include`
|
||||
export WDC_INC_65816=`winepath -w ${prefix}/include`
|
||||
WINEDEBUG=fixme-all WINEFSYNC=1 wine ${prefix}/libexec/WDCSYM.exe $*
|
40
include/alloc.h
Normal file
40
include/alloc.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: ALLOC.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Allocation of memory Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Allocation of Memory functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include <malloc.h>
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File ALLOC.H */
|
||||
/**************************************************/
|
||||
|
52
include/assert.h
Normal file
52
include/assert.h
Normal file
@ -0,0 +1,52 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: ASSERT.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Assert Function.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Assert function.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __ASSERT_H
|
||||
#define __ASSERT_H
|
||||
|
||||
#ifndef NDEBUG
|
||||
void _assert(char *, char *, unsigned int);
|
||||
#define assert(x) (x == 0 ? _assert(#x, __FILE__, __LINE__):(void)0)
|
||||
#else
|
||||
#define assert(x) ((void)0)
|
||||
#endif
|
||||
|
||||
#endif // End of __AAert_H
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File ASSERT.H */
|
||||
/**************************************************/
|
||||
|
322
include/bits/stdint.txt
Normal file
322
include/bits/stdint.txt
Normal file
@ -0,0 +1,322 @@
|
||||
stdint.hFile: /usr/include/stdint.h
|
||||
1 /* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
2 This file is part of the GNU C Library.
|
||||
3
|
||||
4 The GNU C Library is free software; you can redistribute it and/or
|
||||
5 modify it under the terms of the GNU Lesser General Public
|
||||
6 License as published by the Free Software Foundation; either
|
||||
7 version 2.1 of the License, or (at your option) any later version.
|
||||
8
|
||||
9 The GNU C Library is distributed in the hope that it will be useful,
|
||||
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
12 Lesser General Public License for more details.
|
||||
13
|
||||
14 You should have received a copy of the GNU Lesser General Public
|
||||
15 License along with the GNU C Library; if not, write to the Free
|
||||
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
17 02111-1307 USA. */
|
||||
18
|
||||
19 /*
|
||||
20 * ISO C99: 7.18 Integer types <stdint.h>
|
||||
21 */
|
||||
22
|
||||
23 #ifndef _STDINT_H
|
||||
24 #define _STDINT_H 1
|
||||
25
|
||||
26 #include <features.h>
|
||||
27 #include <bits/wchar.h>
|
||||
28 #include <bits/wordsize.h>
|
||||
29
|
||||
30 /* Exact integral types. */
|
||||
31
|
||||
32 /* Signed. */
|
||||
33
|
||||
34 /* There is some amount of overlap with <sys/types.h> as known by inet code */
|
||||
35 #ifndef __int8_t_defined
|
||||
36 # define __int8_t_defined
|
||||
37 typedef signed char int8_t;
|
||||
38 typedef short int int16_t;
|
||||
39 typedef int int32_t;
|
||||
40 # if __WORDSIZE == 64
|
||||
41 typedef long int int64_t;
|
||||
42 # else
|
||||
43 __extension__
|
||||
44 typedef long long int int64_t;
|
||||
45 # endif
|
||||
46 #endif
|
||||
47
|
||||
48 /* Unsigned. */
|
||||
49 typedef unsigned char uint8_t;
|
||||
50 typedef unsigned short int uint16_t;
|
||||
51 #ifndef __uint32_t_defined
|
||||
52 typedef unsigned int uint32_t;
|
||||
53 # define __uint32_t_defined
|
||||
54 #endif
|
||||
55 #if __WORDSIZE == 64
|
||||
56 typedef unsigned long int uint64_t;
|
||||
57 #else
|
||||
58 __extension__
|
||||
59 typedef unsigned long long int uint64_t;
|
||||
60 #endif
|
||||
61
|
||||
62
|
||||
63 /* Small types. */
|
||||
64
|
||||
65 /* Signed. */
|
||||
66 typedef signed char int_least8_t;
|
||||
67 typedef short int int_least16_t;
|
||||
68 typedef int int_least32_t;
|
||||
69 #if __WORDSIZE == 64
|
||||
70 typedef long int int_least64_t;
|
||||
71 #else
|
||||
72 __extension__
|
||||
73 typedef long long int int_least64_t;
|
||||
74 #endif
|
||||
75
|
||||
76 /* Unsigned. */
|
||||
77 typedef unsigned char uint_least8_t;
|
||||
78 typedef unsigned short int uint_least16_t;
|
||||
79 typedef unsigned int uint_least32_t;
|
||||
80 #if __WORDSIZE == 64
|
||||
81 typedef unsigned long int uint_least64_t;
|
||||
82 #else
|
||||
83 __extension__
|
||||
84 typedef unsigned long long int uint_least64_t;
|
||||
85 #endif
|
||||
86
|
||||
87
|
||||
88 /* Fast types. */
|
||||
89
|
||||
90 /* Signed. */
|
||||
91 typedef signed char int_fast8_t;
|
||||
92 #if __WORDSIZE == 64
|
||||
93 typedef long int int_fast16_t;
|
||||
94 typedef long int int_fast32_t;
|
||||
95 typedef long int int_fast64_t;
|
||||
96 #else
|
||||
97 typedef int int_fast16_t;
|
||||
98 typedef int int_fast32_t;
|
||||
99 __extension__
|
||||
100 typedef long long int int_fast64_t;
|
||||
101 #endif
|
||||
102
|
||||
103 /* Unsigned. */
|
||||
104 typedef unsigned char uint_fast8_t;
|
||||
105 #if __WORDSIZE == 64
|
||||
106 typedef unsigned long int uint_fast16_t;
|
||||
107 typedef unsigned long int uint_fast32_t;
|
||||
108 typedef unsigned long int uint_fast64_t;
|
||||
109 #else
|
||||
110 typedef unsigned int uint_fast16_t;
|
||||
111 typedef unsigned int uint_fast32_t;
|
||||
112 __extension__
|
||||
113 typedef unsigned long long int uint_fast64_t;
|
||||
114 #endif
|
||||
115
|
||||
116
|
||||
117 /* Types for `void *' pointers. */
|
||||
118 #if __WORDSIZE == 64
|
||||
119 # ifndef __intptr_t_defined
|
||||
120 typedef long int intptr_t;
|
||||
121 # define __intptr_t_defined
|
||||
122 # endif
|
||||
123 typedef unsigned long int uintptr_t;
|
||||
124 #else
|
||||
125 # ifndef __intptr_t_defined
|
||||
126 typedef int intptr_t;
|
||||
127 # define __intptr_t_defined
|
||||
128 # endif
|
||||
129 typedef unsigned int uintptr_t;
|
||||
130 #endif
|
||||
131
|
||||
132
|
||||
133 /* Largest integral types. */
|
||||
134 #if __WORDSIZE == 64
|
||||
135 typedef long int intmax_t;
|
||||
136 typedef unsigned long int uintmax_t;
|
||||
137 #else
|
||||
138 __extension__
|
||||
139 typedef long long int intmax_t;
|
||||
140 __extension__
|
||||
141 typedef unsigned long long int uintmax_t;
|
||||
142 #endif
|
||||
143
|
||||
144
|
||||
145 /* The ISO C99 standard specifies that in C++ implementations these
|
||||
146 macros should only be defined if explicitly requested. */
|
||||
147 #if !defined __cplusplus || defined __STDC_LIMIT_MACROS
|
||||
148
|
||||
149 # if __WORDSIZE == 64
|
||||
150 # define __INT64_C(c) c ## L
|
||||
151 # define __UINT64_C(c) c ## UL
|
||||
152 # else
|
||||
153 # define __INT64_C(c) c ## LL
|
||||
154 # define __UINT64_C(c) c ## ULL
|
||||
155 # endif
|
||||
156
|
||||
157 /* Limits of integral types. */
|
||||
158
|
||||
159 /* Minimum of signed integral types. */
|
||||
160 # define INT8_MIN (-128)
|
||||
161 # define INT16_MIN (-32767-1)
|
||||
162 # define INT32_MIN (-2147483647-1)
|
||||
163 # define INT64_MIN (-__INT64_C(9223372036854775807)-1)
|
||||
164 /* Maximum of signed integral types. */
|
||||
165 # define INT8_MAX (127)
|
||||
166 # define INT16_MAX (32767)
|
||||
167 # define INT32_MAX (2147483647)
|
||||
168 # define INT64_MAX (__INT64_C(9223372036854775807))
|
||||
169
|
||||
170 /* Maximum of unsigned integral types. */
|
||||
171 # define UINT8_MAX (255)
|
||||
172 # define UINT16_MAX (65535)
|
||||
173 # define UINT32_MAX (4294967295U)
|
||||
174 # define UINT64_MAX (__UINT64_C(18446744073709551615))
|
||||
175
|
||||
176
|
||||
177 /* Minimum of signed integral types having a minimum size. */
|
||||
178 # define INT_LEAST8_MIN (-128)
|
||||
179 # define INT_LEAST16_MIN (-32767-1)
|
||||
180 # define INT_LEAST32_MIN (-2147483647-1)
|
||||
181 # define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
|
||||
182 /* Maximum of signed integral types having a minimum size. */
|
||||
183 # define INT_LEAST8_MAX (127)
|
||||
184 # define INT_LEAST16_MAX (32767)
|
||||
185 # define INT_LEAST32_MAX (2147483647)
|
||||
186 # define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
|
||||
187
|
||||
188 /* Maximum of unsigned integral types having a minimum size. */
|
||||
189 # define UINT_LEAST8_MAX (255)
|
||||
190 # define UINT_LEAST16_MAX (65535)
|
||||
191 # define UINT_LEAST32_MAX (4294967295U)
|
||||
192 # define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
|
||||
193
|
||||
194
|
||||
195 /* Minimum of fast signed integral types having a minimum size. */
|
||||
196 # define INT_FAST8_MIN (-128)
|
||||
197 # if __WORDSIZE == 64
|
||||
198 # define INT_FAST16_MIN (-9223372036854775807L-1)
|
||||
199 # define INT_FAST32_MIN (-9223372036854775807L-1)
|
||||
200 # else
|
||||
201 # define INT_FAST16_MIN (-2147483647-1)
|
||||
202 # define INT_FAST32_MIN (-2147483647-1)
|
||||
203 # endif
|
||||
204 # define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
|
||||
205 /* Maximum of fast signed integral types having a minimum size. */
|
||||
206 # define INT_FAST8_MAX (127)
|
||||
207 # if __WORDSIZE == 64
|
||||
208 # define INT_FAST16_MAX (9223372036854775807L)
|
||||
209 # define INT_FAST32_MAX (9223372036854775807L)
|
||||
210 # else
|
||||
211 # define INT_FAST16_MAX (2147483647)
|
||||
212 # define INT_FAST32_MAX (2147483647)
|
||||
213 # endif
|
||||
214 # define INT_FAST64_MAX (__INT64_C(9223372036854775807))
|
||||
215
|
||||
216 /* Maximum of fast unsigned integral types having a minimum size. */
|
||||
217 # define UINT_FAST8_MAX (255)
|
||||
218 # if __WORDSIZE == 64
|
||||
219 # define UINT_FAST16_MAX (18446744073709551615UL)
|
||||
220 # define UINT_FAST32_MAX (18446744073709551615UL)
|
||||
221 # else
|
||||
222 # define UINT_FAST16_MAX (4294967295U)
|
||||
223 # define UINT_FAST32_MAX (4294967295U)
|
||||
224 # endif
|
||||
225 # define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
|
||||
226
|
||||
227
|
||||
228 /* Values to test for integral types holding `void *' pointer. */
|
||||
229 # if __WORDSIZE == 64
|
||||
230 # define INTPTR_MIN (-9223372036854775807L-1)
|
||||
231 # define INTPTR_MAX (9223372036854775807L)
|
||||
232 # define UINTPTR_MAX (18446744073709551615UL)
|
||||
233 # else
|
||||
234 # define INTPTR_MIN (-2147483647-1)
|
||||
235 # define INTPTR_MAX (2147483647)
|
||||
236 # define UINTPTR_MAX (4294967295U)
|
||||
237 # endif
|
||||
238
|
||||
239
|
||||
240 /* Minimum for largest signed integral type. */
|
||||
241 # define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
|
||||
242 /* Maximum for largest signed integral type. */
|
||||
243 # define INTMAX_MAX (__INT64_C(9223372036854775807))
|
||||
244
|
||||
245 /* Maximum for largest unsigned integral type. */
|
||||
246 # define UINTMAX_MAX (__UINT64_C(18446744073709551615))
|
||||
247
|
||||
248
|
||||
249 /* Limits of other integer types. */
|
||||
250
|
||||
251 /* Limits of `ptrdiff_t' type. */
|
||||
252 # if __WORDSIZE == 64
|
||||
253 # define PTRDIFF_MIN (-9223372036854775807L-1)
|
||||
254 # define PTRDIFF_MAX (9223372036854775807L)
|
||||
255 # else
|
||||
256 # define PTRDIFF_MIN (-2147483647-1)
|
||||
257 # define PTRDIFF_MAX (2147483647)
|
||||
258 # endif
|
||||
259
|
||||
260 /* Limits of `sig_atomic_t'. */
|
||||
261 # define SIG_ATOMIC_MIN (-2147483647-1)
|
||||
262 # define SIG_ATOMIC_MAX (2147483647)
|
||||
263
|
||||
264 /* Limit of `size_t' type. */
|
||||
265 # if __WORDSIZE == 64
|
||||
266 # define SIZE_MAX (18446744073709551615UL)
|
||||
267 # else
|
||||
268 # define SIZE_MAX (4294967295U)
|
||||
269 # endif
|
||||
270
|
||||
271 /* Limits of `wchar_t'. */
|
||||
272 # ifndef WCHAR_MIN
|
||||
273 /* These constants might also be defined in <wchar.h>. */
|
||||
274 # define WCHAR_MIN __WCHAR_MIN
|
||||
275 # define WCHAR_MAX __WCHAR_MAX
|
||||
276 # endif
|
||||
277
|
||||
278 /* Limits of `wint_t'. */
|
||||
279 # define WINT_MIN (0u)
|
||||
280 # define WINT_MAX (4294967295u)
|
||||
281
|
||||
282 #endif /* C++ && limit macros */
|
||||
283
|
||||
284
|
||||
285 /* The ISO C99 standard specifies that in C++ implementations these
|
||||
286 should only be defined if explicitly requested. */
|
||||
287 #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
|
||||
288
|
||||
289 /* Signed. */
|
||||
290 # define INT8_C(c) c
|
||||
291 # define INT16_C(c) c
|
||||
292 # define INT32_C(c) c
|
||||
293 # if __WORDSIZE == 64
|
||||
294 # define INT64_C(c) c ## L
|
||||
295 # else
|
||||
296 # define INT64_C(c) c ## LL
|
||||
297 # endif
|
||||
298
|
||||
299 /* Unsigned. */
|
||||
300 # define UINT8_C(c) c ## U
|
||||
301 # define UINT16_C(c) c ## U
|
||||
302 # define UINT32_C(c) c ## U
|
||||
303 # if __WORDSIZE == 64
|
||||
304 # define UINT64_C(c) c ## UL
|
||||
305 # else
|
||||
306 # define UINT64_C(c) c ## ULL
|
||||
307 # endif
|
||||
308
|
||||
309 /* Maximal type. */
|
||||
310 # if __WORDSIZE == 64
|
||||
311 # define INTMAX_C(c) c ## L
|
||||
312 # define UINTMAX_C(c) c ## UL
|
||||
313 # else
|
||||
314 # define INTMAX_C(c) c ## LL
|
||||
315 # define UINTMAX_C(c) c ## ULL
|
||||
316 # endif
|
||||
317
|
||||
318 #endif /* C++ && constant macros */
|
||||
319
|
||||
320 #endif /* stdint.h */
|
||||
321
|
148
include/bits/types.h
Normal file
148
include/bits/types.h
Normal file
@ -0,0 +1,148 @@
|
||||
/* Copyright (C) 1991,92,1994-1999,2000,2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/types.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
#define _BITS_TYPES_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
/* Convenience types. */
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long __u_long;
|
||||
#ifdef __GLIBC_HAVE_LONG_LONG
|
||||
__extension__ typedef unsigned long long int __u_quad_t;
|
||||
__extension__ typedef long long int __quad_t;
|
||||
#else
|
||||
typedef struct
|
||||
{
|
||||
long int __val[2];
|
||||
} __quad_t;
|
||||
typedef struct
|
||||
{
|
||||
__u_long __val[2];
|
||||
} __u_quad_t;
|
||||
#endif
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#ifdef __GLIBC_HAVE_LONG_LONG
|
||||
__extension__ typedef signed long long int __int64_t;
|
||||
__extension__ typedef unsigned long long int __uint64_t;
|
||||
#endif
|
||||
typedef __quad_t *__qaddr_t;
|
||||
|
||||
typedef __u_quad_t __dev_t; /* Type of device numbers. */
|
||||
typedef __u_int __uid_t; /* Type of user identifications. */
|
||||
typedef __u_int __gid_t; /* Type of group identifications. */
|
||||
typedef __u_long __ino_t; /* Type of file serial numbers. */
|
||||
typedef __u_int __mode_t; /* Type of file attribute bitmasks. */
|
||||
typedef __u_int __nlink_t; /* Type of file link counts. */
|
||||
typedef long int __off_t; /* Type of file sizes and offsets. */
|
||||
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
|
||||
typedef int __pid_t; /* Type of process identifications. */
|
||||
typedef int __ssize_t; /* Type of a byte count, or error. */
|
||||
typedef __u_long __rlim_t; /* Type of resource counts. */
|
||||
typedef __u_quad_t __rlim64_t; /* Type of resource counts (LFS). */
|
||||
typedef __u_int __id_t; /* General type for ID. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int __val[2];
|
||||
} __fsid_t; /* Type of file system IDs. */
|
||||
|
||||
/* Everythin' else. */
|
||||
typedef int __daddr_t; /* The type of a disk address. */
|
||||
typedef char *__caddr_t;
|
||||
typedef long int __time_t;
|
||||
typedef unsigned int __useconds_t;
|
||||
typedef long int __suseconds_t;
|
||||
typedef long int __swblk_t; /* Type of a swap block maybe? */
|
||||
|
||||
typedef long int __clock_t;
|
||||
|
||||
/* Clock ID used in clock and timer functions. */
|
||||
typedef int __clockid_t;
|
||||
|
||||
/* Timer ID returned by `timer_create'. */
|
||||
typedef int __timer_t;
|
||||
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
#define __FD_SETSIZE 1024
|
||||
|
||||
|
||||
typedef int __key_t;
|
||||
|
||||
/* Used in `struct shmid_ds'. */
|
||||
typedef unsigned short int __ipc_pid_t;
|
||||
|
||||
|
||||
/* Type to represent block size. */
|
||||
typedef long int __blksize_t;
|
||||
|
||||
/* Types from the Large File Support interface. */
|
||||
|
||||
/* Type to count number os disk blocks. */
|
||||
typedef long int __blkcnt_t;
|
||||
typedef __quad_t __blkcnt64_t;
|
||||
|
||||
/* Type to count file system blocks. */
|
||||
typedef __u_long __fsblkcnt_t;
|
||||
typedef __u_quad_t __fsblkcnt64_t;
|
||||
|
||||
/* Type to count file system inodes. */
|
||||
typedef __u_long __fsfilcnt_t;
|
||||
typedef __u_quad_t __fsfilcnt64_t;
|
||||
|
||||
/* Type of file serial numbers. */
|
||||
typedef __u_quad_t __ino64_t;
|
||||
|
||||
/* Type of file sizes and offsets. */
|
||||
typedef __loff_t __off64_t;
|
||||
|
||||
/* Used in XTI. */
|
||||
typedef long int __t_scalar_t;
|
||||
typedef unsigned long int __t_uscalar_t;
|
||||
|
||||
/* Duplicates info from stdint.h but this is used in unistd.h. */
|
||||
typedef int __intptr_t;
|
||||
|
||||
/* Duplicate info from sys/socket.h. */
|
||||
typedef unsigned int __socklen_t;
|
||||
|
||||
|
||||
/* Now add the thread types. */
|
||||
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||
# include <bits/pthreadtypes.h>
|
||||
#endif
|
||||
|
||||
#endif /* bits/types.h */
|
||||
|
||||
|
240
include/complex.h
Normal file
240
include/complex.h
Normal file
@ -0,0 +1,240 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: COMPLEX.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Complex Math Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Complex Math functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _COMPLEX_H
|
||||
#define _COMPLEX_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
/***********************************
|
||||
Special Structures Used by
|
||||
Double Precision Complex
|
||||
Math Functions
|
||||
************************************/
|
||||
|
||||
typedef struct {double r; double i;} Complex;
|
||||
typedef Complex far* Complex_Vector;
|
||||
typedef Complex *Complex_Ptr;
|
||||
|
||||
/***********************************
|
||||
Special Structures Used by
|
||||
Single Precision Complex
|
||||
Math Functions
|
||||
************************************/
|
||||
|
||||
typedef struct {float r; float i;} f_Complex;
|
||||
typedef f_Complex far* f_Complex_Vector;
|
||||
|
||||
|
||||
/***********************************
|
||||
Special Structures Used by
|
||||
Long Double Precision Complex
|
||||
Math Functions
|
||||
************************************/
|
||||
|
||||
typedef struct {long double r; long double i;} ld_Complex;
|
||||
typedef ld_Complex far* ld_Complex_Vector;
|
||||
|
||||
|
||||
|
||||
//typedef double _Complex Complex
|
||||
//typedef float _Complex f_Complex
|
||||
//typedef long double _Complex ld_Complex
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
//**************************
|
||||
// Simple Complex Functions
|
||||
//**************************
|
||||
Complex complx(double , double ); // Convert 2 doubles to a Complex variable
|
||||
f_Complex complxf(float , float );
|
||||
ld_Complex Complxl(long double , long double );
|
||||
|
||||
double cabs(Complex ); // Absolute value of a Complex number
|
||||
float cabsf(f_Complex );
|
||||
long double cabsl(ld_Complex );
|
||||
|
||||
Complex cadd(Complex , Complex ); // Add two Complex numbers
|
||||
f_Complex caddf(f_Complex , f_Complex );
|
||||
ld_Complex caddl(ld_Complex , ld_Complex );
|
||||
|
||||
Complex csub(Complex , Complex ); // Subtract two Complex numbers
|
||||
f_Complex csubf(f_Complex , f_Complex );
|
||||
ld_Complex csubl(ld_Complex , ld_Complex );
|
||||
|
||||
Complex cmul(Complex , Complex ); // Multiply two Complex numbers
|
||||
f_Complex cmulf(f_Complex , f_Complex );
|
||||
ld_Complex cmull(ld_Complex , ld_Complex );
|
||||
|
||||
Complex cdiv(Complex , Complex ); // Divide two Complex numbers
|
||||
f_Complex cdivf(f_Complex , f_Complex );
|
||||
ld_Complex cdivl(ld_Complex , ld_Complex );
|
||||
|
||||
Complex conj(Complex ); // Conjugate of a Complex number
|
||||
f_Complex conjf(f_Complex ); // Conjugate of a Complex number
|
||||
ld_Complex conjl(ld_Complex ); // Conjugate of a Complex number
|
||||
|
||||
double creal(Complex z); // Real part of a complex #
|
||||
float crealf(f_Complex z);
|
||||
long double creall(ld_Complex z);
|
||||
|
||||
double cimag(Complex z); // Imaginary part of a complex #
|
||||
float cimagf(f_Complex z);
|
||||
long double cimagl(ld_Complex z);
|
||||
|
||||
|
||||
//***********************************************
|
||||
// Complex Functions
|
||||
//***********************************************
|
||||
|
||||
|
||||
|
||||
double cmag(Complex ); // Magnitude of a Complex number
|
||||
Complex cscalr(Complex , double ); // Multiply a complex number, x, by a real number, y
|
||||
|
||||
|
||||
|
||||
double carg(Complex z); // Calculate the Complex argument
|
||||
float cargf(f_Complex z);
|
||||
long double cargl(ld_Complex z);
|
||||
|
||||
Complex cacos(Complex z); // Complex circular arc cosine
|
||||
f_Complex cacosf(f_Complex z);
|
||||
ld_Complex cacosl(ld_Complex z);
|
||||
|
||||
Complex cacosh(Complex z); // Complex inverse hyperbolic cosineComplex casin(Complex z); // Complex circular arc sine
|
||||
f_Complex cacoshf(f_Complex z);
|
||||
ld_Complex cacoshl(ld_Complex z);
|
||||
|
||||
Complex casin(Complex z); // Complex inverse sine
|
||||
f_Complex casinf(f_Complex z);
|
||||
ld_Complex casinl(ld_Complex z);
|
||||
|
||||
Complex casinh(Complex z); // Complex inverse hyperbolic sine
|
||||
f_Complex casinhf(f_Complex z);
|
||||
ld_Complex casinhl(ld_Complex z);
|
||||
|
||||
Complex catan(Complex z); // Complex circular arc tangent
|
||||
f_Complex catanf(f_Complex z);
|
||||
ld_Complex catanl(ld_Complex z);
|
||||
|
||||
Complex catanh(Complex z); // Complex inverse hyperbolic tangent
|
||||
f_Complex catanhf(f_Complex z);
|
||||
ld_Complex catanhl(ld_Complex z);
|
||||
|
||||
Complex ccos(Complex z); // Complex circular cosine
|
||||
f_Complex ccosf(f_Complex z);
|
||||
ld_Complex ccosl(ld_Complex z);
|
||||
|
||||
Complex ccosh(Complex z); // Complex hyperbolic cosine
|
||||
f_Complex ccoshf(f_Complex z);
|
||||
ld_Complex ccoshl(ld_Complex z);
|
||||
|
||||
Complex ccot(Complex z); // Complex circular cotangent
|
||||
f_Complex ccotf(f_Complex z);
|
||||
ld_Complex ccotl(ld_Complex z);
|
||||
|
||||
Complex cexp(Complex z); // Exponential of the complex argument z
|
||||
f_Complex cexpf(f_Complex z);
|
||||
ld_Complex cexpl(ld_Complex z);
|
||||
|
||||
Complex clog(Complex z); // Complex logarithm to the base e
|
||||
f_Complex clogf(f_Complex z);
|
||||
ld_Complex clogl(ld_Complex z);
|
||||
|
||||
Complex cpow(Complex a, Complex z); // Complex power function
|
||||
f_Complex cpowf(f_Complex a, f_Complex z);
|
||||
ld_Complex cpowl(ld_Complex a, ld_Complex z);
|
||||
|
||||
Complex csin(Complex z); // Complex circular sine
|
||||
f_Complex csinf(f_Complex z);
|
||||
ld_Complex csinl(ld_Complex z);
|
||||
|
||||
Complex csinh(Complex z); // Complex hyperbolic sine
|
||||
f_Complex csinhf(f_Complex z);
|
||||
ld_Complex csinhl(ld_Complex z);
|
||||
|
||||
Complex csqrt(Complex ); // Square Root of a Complex number
|
||||
f_Complex csqrtf(f_Complex );
|
||||
ld_Complex csqrtl(ld_Complex );
|
||||
|
||||
Complex ctan(Complex z); // Complex circular tangent
|
||||
f_Complex ctanf(f_Complex z);
|
||||
ld_Complex ctanl(ld_Complex z);
|
||||
|
||||
Complex ctanh(Complex z); // Complex hyperbolic tangent
|
||||
f_Complex ctanhf(f_Complex z);
|
||||
ld_Complex ctanhl(ld_Complex z);
|
||||
|
||||
double modulus(Complex z); // sqrt(z.real * z.real + z.imag * z.imag)
|
||||
float modulusf(f_Complex z);
|
||||
long double modulusl(ld_Complex z);
|
||||
|
||||
double phase(Complex z); // atan(z.i / z.r)
|
||||
float phasef(f_Complex z);
|
||||
long double phasel(ld_Complex z);
|
||||
|
||||
|
||||
|
||||
|
||||
//***********************************************
|
||||
// DSP/FFT Functions
|
||||
//***********************************************
|
||||
|
||||
void fft42(Complex_Vector data, unsigned n, int isign); // Computes the FFT using a "radix-4+2" algorithm
|
||||
void fft42f(f_Complex_Vector data, unsigned n, int isign);
|
||||
|
||||
void fftrad2(Complex_Vector data, unsigned n, int isign);
|
||||
|
||||
|
||||
|
||||
|
||||
// Symmetric FIR bandpass filter using a Kaiser-Bessel window
|
||||
//double *Cpowspec(Complex_Vector v, unsigned nv, unsigned npw, double *w);
|
||||
//
|
||||
|
||||
|
||||
#endif /* End of _COMPLEX_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File COMPLEX.H
|
||||
***************************************/
|
103
include/ctype.h
Normal file
103
include/ctype.h
Normal file
@ -0,0 +1,103 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: TGMATH.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Character Types.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Character Typess.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __CTYPE_H
|
||||
#define __CTYPE_H
|
||||
|
||||
extern char _ctype[];
|
||||
|
||||
#define _U 0x01 /* Upper-case */
|
||||
#define _L 0x02 /* Lower-case */
|
||||
#define _D 0x04 /* Decimal-digit */
|
||||
#define _H 0x08 /* Hex-digit */
|
||||
#define _W 0x10 /* White-space */
|
||||
#define _C 0x20 /* Control char */
|
||||
#define _P 0x40 /* Punctuation */
|
||||
#define _B 0x80 /* Blank */
|
||||
|
||||
int isalnum(int _c);
|
||||
int isalpha(int _c);
|
||||
int iscntrl(int _c);
|
||||
int isdigit(int _c);
|
||||
int isgraph(int _c);
|
||||
int islower(int _c);
|
||||
int isprint(int _c);
|
||||
int ispunct(int _c);
|
||||
int isspace(int _c);
|
||||
int isupper(int _c);
|
||||
int isxdigit(int _c);
|
||||
int tolower(int _c);
|
||||
int toupper(int _c);
|
||||
/**************************/
|
||||
/* NON-ANSI - Systtem V */
|
||||
/**************************/
|
||||
int isascii(int _c);
|
||||
//int isatty(int fd); //TBD
|
||||
int toascii(int ); /* return ASCII equivalent of c */
|
||||
|
||||
//#define iswhite(x) ((_ctype+1)[x]&(_W)) //TBD
|
||||
//#define isodigit(x) ((_ctype+1)[x]&(_W)) //TBD Is Octal 0-7
|
||||
//int _tolower(int c);
|
||||
//int _toupper(int c);
|
||||
|
||||
|
||||
#ifdef __C_MACROS__
|
||||
#define isalpha(x) ((_ctype+1)[x]&(_L|_U))
|
||||
#define isupper(x) ((_ctype+1)[x]&(_U))
|
||||
#define islower(x) ((_ctype+1)[x]&(_L))
|
||||
#define isdigit(x) ((_ctype+1)[x]&(_D))
|
||||
#define isxdigit(x) ((_ctype+1)[x]&(_H))
|
||||
#define isalnum(x) ((_ctype+1)[x]&(_L|_U|_D))
|
||||
#define isspace(x) ((_ctype+1)[x]&(_W))
|
||||
#define ispunct(x) ((_ctype+1)[x]&(_P))
|
||||
#define iscntrl(x) ((_ctype+1)[x]&(_C))
|
||||
#define isprint(x) ((_ctype+1)[x]&(_P|_L|_U|_D|_B))
|
||||
#define isgraph(x) ((_ctype+1)[x]&(_P|_L|_U|_D))
|
||||
#define isascii(x) (((x)&0x80)==0)
|
||||
//#define iswhite(x) ((_ctype+1)[x]&(_W)) //TBD
|
||||
//#define isodigit(x) ((_ctype+1)[x]&(_W)) //TBD Is Octal 0-7
|
||||
#endif
|
||||
|
||||
#define toascii(x) ((x)&0x7f)
|
||||
#define _tolower(x) ((x)-'a'+'A')
|
||||
#define _toupper(x) ((x)-'A'+'a')
|
||||
|
||||
#endif /* _CTYPE_H */
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File CTYPE.H */
|
||||
/**************************************************/
|
||||
|
131
include/errno.h
Normal file
131
include/errno.h
Normal file
@ -0,0 +1,131 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: ERRNO.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Error Defs.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Error Defs.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __ERRNO_H
|
||||
#define __ERRNO_H
|
||||
|
||||
#ifndef ERRNO
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
#define ENOENT 1 /* No such file or directory */
|
||||
#define E2BIG 2 /* Argument list too long */
|
||||
#define EBADF 3 /* Bad file descriptor */
|
||||
#define ENOMEM 4 /* Not enough memory */
|
||||
#define EEXIST 5 /* File (already) exists */
|
||||
#define EINVAL 6 /* Invalid argument */
|
||||
#define ENFILE 7 /* Too many open files in the system */
|
||||
#define EMFILE 8 /* Too many open files in a process */
|
||||
#define ENOTTY 9 /* Not a console device */
|
||||
#define EACCES 10 /* Permission denied */
|
||||
#define EIO 11 /* I/O error (physical, usually) */
|
||||
#define ENOSPC 12 /* No space left on device */
|
||||
#define ERANGE 13 /* (math) Result too large */
|
||||
#define EDOM 14 /* (math) Argument domain error */
|
||||
#define ENOEXEC 15 /* (f)exec format error */
|
||||
#define EROFS 16 /* Read-only file system */
|
||||
#define EXDEV 17 /* Cross-device rename */
|
||||
#define EAGAIN 18 /* Nothing to read */
|
||||
|
||||
//New Error Numbers
|
||||
#define EZERO 19 /* Zero */
|
||||
#define EINVFNC 20 /* Invalid Function */
|
||||
#define ENOPATH 21 /* No Path */
|
||||
#define ECONTR 22 /* Cont */
|
||||
#define EINVMEM 23 /* Invalid Nemory */
|
||||
#define EINVENV 24 /* Invalid Enviroment */
|
||||
#define EINVFMT 25 /* Invalid Format */
|
||||
#define EINVACC 26 /* Invalid */
|
||||
#define EINVDAT 27 /* Invalid Data */
|
||||
#define ENODEV 28 /* No */
|
||||
#define ECURDIR 29 /* Current Directory */
|
||||
#define ENMFILE 30 /* N File */
|
||||
#define EDEADLOCK 31 /* */
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
define error constants (0 .. n)
|
||||
change matherr_.c when new error constants are added
|
||||
--------------------------------------------------------------------*/
|
||||
#define E_NOERROR 0 /* No errors detected */
|
||||
#define E_MALLOC 1 /* Not enough memory */
|
||||
#define E_MSIZE 2 /* Array too large */
|
||||
#define E_NULLPTR 3 /* NULL pointer (uninitialized pointer ) */
|
||||
#define E_MSING 4 /* Singular Matrix (ie. determinant = 0) */
|
||||
#define E_NEQNS 5 /* More unknowns than equations */
|
||||
#define E_WINDOW 6 /* Invalid window type specified */
|
||||
#define E_DOMERR 7 /* argument outside domain of function */
|
||||
#define E_FACTOR 8 /* Argument 'factor' must be between 2 and 10 */
|
||||
#define E_DECIMATE 9 /* Argument 'ndec' must be between 2 and 10 */
|
||||
#define E_NOTENOUGH 10 /* Not enough input data,the input array must be longer*/
|
||||
#define E_INTERP 11 /* Interpolated length must be >= input length */
|
||||
#define E_LAGRANGE 12 /* Interpolation not defined at input value t */
|
||||
#define E_NEGPROB 13 /* Negative probability undefined */
|
||||
#define E_FFTSIZE 14 /* Data length must be >= FFT length */
|
||||
#define E_FFTPOWER2 15 /* FFT length must be a power of two */
|
||||
#define E_LIMITS 16 /* Limits on definite integral must be distinct */
|
||||
#define E_ROUNDOFF 17 /* Rounding errors prohibit required accuracy */
|
||||
#define E_STEPSIZE 18 /* Step size must be nonzero to estimate derivative*/
|
||||
#define E_DISCRETE 19 /* k0 must be less than total number of objects n */
|
||||
#define E_SAMEX 20 /* The input table has two identical x values */
|
||||
#define E_ORDER 21 /* The polynomial order must be between 1 and 9 */
|
||||
#define E_OPEN 22 /* Could not open file */
|
||||
#define E_WRITE 23 /* Error writing to file */
|
||||
#define E_READ 24 /* Error reading from file */
|
||||
#define E_CURVES 25 /* Argument 'curves' must be between 1 and 9 */
|
||||
#define E_HEADER 26 /* Invalid file header */
|
||||
#define E_RSIZE 27 /* Sizeof(Real) in file != sizeof(Real) in program */
|
||||
#define E_NO_MIN 28 /* Minimum probably does not exist */
|
||||
#define E_DIVERGE 29 /* No convergence in LIMIT iterations */
|
||||
#define E_GRAD_ERR 30 /* Encountered errors in calculating the gradient */
|
||||
#define E_USERFUNC 31 /* User function called by least_sq returned error */
|
||||
/* add additional error constants here */
|
||||
|
||||
|
||||
/**************************/
|
||||
/* non ANSI C definitions */
|
||||
/**************************/
|
||||
// MAY NEED TO DEFINE as a FIXED Size array with circular features so too many errors just get lost!
|
||||
extern char *sys_errlist[]; // Array of System Errors encountered, needs to be limited!
|
||||
extern int sys_nerr; // Number of System Errors encountered
|
||||
|
||||
#endif // End of __ERRNO_H
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File ERRNO.H */
|
||||
/**************************************************/
|
||||
|
||||
|
118
include/fcntl.h
Normal file
118
include/fcntl.h
Normal file
@ -0,0 +1,118 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: FCNTL.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Disk Control.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Feb 05,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 02/05/2004 Initial, added peek & poke
|
||||
* R. Greenthal 0x/0x/2004
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __FCNTL_H
|
||||
#define __FCNTL_H
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
#define O_RDONLY 0x0000 // Open as Read ONLY
|
||||
#define O_WRONLY 0x0001 // Open as Write ONLY
|
||||
#define O_RDWR 0x0002 // Open as Read &/or Write
|
||||
#define O_CREAT 0x0100 // Create a New File
|
||||
#define O_TRUNC 0x0200 //
|
||||
#define O_EXCL 0x0400 //
|
||||
#define O_APPEND 0x0800 // Open an existing File & Append to the end of it
|
||||
#define O_TEXT 0x1000 // Open as ASCII Text (Character) Read &/or Write (needs more)
|
||||
#define O_BINARY 0x8000 // TBD Binary Byte Read &/or Write
|
||||
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
#endif
|
||||
|
||||
extern struct _dev {
|
||||
void *fd;
|
||||
short mode;
|
||||
} *_devtab;
|
||||
|
||||
extern short _numdev;
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
void _abort(void);
|
||||
int close(int);
|
||||
int creat(const char *_name, int _mode);
|
||||
void _exit(int _code);
|
||||
long lseek(int, long, int);
|
||||
int open(const char * _name, int _mode);
|
||||
size_t read(int, void *, size_t);
|
||||
int unlink(const char *);
|
||||
size_t write(int, void *, size_t);
|
||||
|
||||
//int access(char *, int);
|
||||
|
||||
|
||||
#define PEEK(a) (*(char *)(a))
|
||||
#define peek(a) (*(char *)(a))
|
||||
#define PEEKB(a) (*(char *)(a))
|
||||
#define peekb(a) (*(char *)(a))
|
||||
#define PEEKW(a) (*(int *)(a))
|
||||
#define peekw(a) (*(int *)(a))
|
||||
#define PEEKL(a) (*(long *)(a))
|
||||
#define peekl(a) (*(long *)(a))
|
||||
//#define PEEKLL(a) (*(long long *)(a))
|
||||
//#define peekll(a) (*(long long *)(a))
|
||||
|
||||
#define POKE(a,b) (*(unsigned char *)(a))=(b)
|
||||
#define poke(a,b) (*(unsigned char *)(a))=(b)
|
||||
#define POKEB(a,b) (*(unsigned char *)(a))=(b)
|
||||
#define pokeb(a,b) (*(unsigned char *)(a))=(b)
|
||||
#define POKEW(a,b) (*(unsigned int *)(a))=(b)
|
||||
#define pokew(a,b) (*(unsigned int *)(a))=(b)
|
||||
#define POKEL(a,b) (*(unsigned long *)(a))=(b)
|
||||
#define pokel(a,b) (*(unsigned long *)(a))=(b)
|
||||
//#define POKELL(a,b) (*(unsigned long long *)(a))=(b)
|
||||
//#define pokell(a,b) (*(unsigned long long *)(a))=(b)
|
||||
|
||||
|
||||
|
||||
#endif /* FCNTL_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************************/
|
||||
/* End of File FCNTL.H */
|
||||
/**************************************************/
|
||||
|
204
include/fenv.h
Normal file
204
include/fenv.h
Normal file
@ -0,0 +1,204 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: FENV.h
|
||||
*
|
||||
* TITLE: These function prototypes and data type definitions for the Floating Point Exceptions (FPE).
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Floating Point Exceptions (FPE).
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* This is just Templates for REAL Hardware Math Coprocesser
|
||||
* The User Must enhance the existing code to mesh with their
|
||||
* Math Coprocesser interrupt vectors and registers.
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _FENV_H
|
||||
#define _FENV_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
/* fexcept_t: a type for representing the floating-point exception flags
|
||||
collectively, including any status associated with the flags. */
|
||||
|
||||
|
||||
#define FE_DENORM_OP 0x02 /* 80x87, Not mentioned by NCEG */
|
||||
#define FE_STACK_FLT 0x40 /* 80x87, Not mentioned by NCEG */
|
||||
#define FE_ALL_EXCEPT ( FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DENORM_OP )
|
||||
#define FE_FLTPREC 0x000
|
||||
#define FE_INVALIDPREC 0x100
|
||||
#define FE_DBLPREC 0x200
|
||||
#define FE_LDBLPREC 0x300
|
||||
|
||||
|
||||
/**********************************/
|
||||
/* Floating-Point Exception Flags */
|
||||
/**********************************/
|
||||
#define FE_INEXACT 0x02000000 /* inexact */
|
||||
#define FE_DIVBYZERO 0x04000000 /* divide-by-zero */
|
||||
#define FE_UNDERFLOW 0x08000000 /* underflow */
|
||||
#define FE_OVERFLOW 0x10000000 /* overflow */
|
||||
#define FE_INVALID 0x20000000 /* invalid */
|
||||
|
||||
|
||||
/****************************/
|
||||
/* Rounding Direction Modes */
|
||||
/****************************/
|
||||
#define FE_TONEAREST 0x00000000
|
||||
#define FE_TOWARDZERO 0x00000001
|
||||
#define FE_UPWARD 0x00000002
|
||||
#define FE_DOWNWARD 0x00000003
|
||||
#define FE_DFL_ENV &_FE_DFL_ENV /* pointer to default environment*/
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
typedef unsigned char ftrap_t; // This may need resizing!
|
||||
|
||||
/**********************************/
|
||||
/* Data Types */
|
||||
/**********************************/
|
||||
struct __fenv {
|
||||
unsigned long control;
|
||||
unsigned long status;
|
||||
unsigned long tags;
|
||||
unsigned long ip_offset;
|
||||
unsigned long opcode;
|
||||
unsigned long data_offset;
|
||||
unsigned long op_sel;
|
||||
};
|
||||
typedef struct __fenv fenv_t;
|
||||
|
||||
|
||||
struct __fexcept {
|
||||
int excepts;
|
||||
void *code_address;
|
||||
void *data_address;
|
||||
};
|
||||
typedef struct __fexcept fexcept_t;
|
||||
|
||||
|
||||
/* These may be like your FPE Vectors */
|
||||
struct fptraps {
|
||||
ftrap_t invalid;
|
||||
ftrap_t stack_flt;
|
||||
ftrap_t denorm_op;
|
||||
ftrap_t divbyzero;
|
||||
ftrap_t overflow;
|
||||
ftrap_t underflow;
|
||||
ftrap_t inexact;
|
||||
int trap_invalid;
|
||||
int trap_stack_flt;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* A place to keep the unmasked "sticky" bits. */
|
||||
extern int sticky;
|
||||
|
||||
|
||||
extern fenv_t __default_fp_env;
|
||||
|
||||
/************************************************************/
|
||||
/* Definition of pointer to IEEE default environment object */
|
||||
/************************************************************/
|
||||
extern fenv_t _FE_DFL_ENV; // default environment object
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* This is just Templates for REAL Hardware Math Coprocesser
|
||||
* The User Must enhance the existing code to mesh with their
|
||||
* Math Coprocesser interrupt vectors and registers.
|
||||
********************************************************************************/
|
||||
/* fenv_t: a type for representing the entire floating-point environment. */
|
||||
/* fenv_t is not defined in detail by NCEG.
|
||||
For Linux, we use the FPU environment: */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
These eleven functions were defined in C99, and describe the handling of
|
||||
floating point rounding and exceptions (overflow, zero-divide etc.).
|
||||
*/
|
||||
|
||||
/*******************************************************/
|
||||
/* Functions Controlling the Floating-Point Exceptions */
|
||||
/*******************************************************/
|
||||
void feclearexcept(int excepts);
|
||||
void fegetexceptflag(fexcept_t *flagp, int excepts);
|
||||
void feraiseexcept(int excepts);
|
||||
void fesetexceptflag(const fexcept_t *flagp, int excepts);
|
||||
int fetestexcept(int excepts);
|
||||
|
||||
|
||||
/**************************************/
|
||||
/* Controlling the Rounding Direction */
|
||||
/**************************************/
|
||||
int fegetround(void);
|
||||
int fesetround(int rounding_mode);
|
||||
|
||||
|
||||
/**********************************************/
|
||||
/* Controlling the Floating-Point Environment */
|
||||
/**********************************************/
|
||||
void fegetenv (fenv_t *envp);
|
||||
int feholdexcept (fenv_t *envp);
|
||||
void fesetenv (const fenv_t *envp);
|
||||
void feupdateenv (const fenv_t *envp);
|
||||
|
||||
|
||||
|
||||
/*******************************************************/
|
||||
/*******************************************************/
|
||||
/* Extra */
|
||||
/* Functions Controlling the Floating-Point Precision */
|
||||
/*******************************************************/
|
||||
/*******************************************************/
|
||||
|
||||
int fegetprecision(void);
|
||||
int fesetprecision(int prec);
|
||||
|
||||
int fegetvector(ftrap_t *trap, int except);
|
||||
int fesetvector(ftrap_t *trap, int except);
|
||||
int fegettraps(void);
|
||||
int fedisabletraps(int excepts);
|
||||
int feenabletraps(int excepts);
|
||||
|
||||
int __sigfpe_abort(char *s, void *p);
|
||||
void __set_sticky(int bits);
|
||||
|
||||
|
||||
|
||||
#endif /* End of _FENV_H */
|
||||
|
||||
/**************************************
|
||||
End of File FENV.H
|
||||
***************************************/
|
386
include/float.h
Normal file
386
include/float.h
Normal file
@ -0,0 +1,386 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: FLOAT.H
|
||||
*
|
||||
* TITLE: This File has data type definitions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes data type definitions used for MATH.H.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Dec 25,2003
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 12/16/2003 Initial
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __FLOAT_H
|
||||
#define __FLOAT_H
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_ROUNDS - rounding modes
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* / #define FLT_ROUNT {-1,0,1,2,3}
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_ROUNDS indicates to the rounding mode for floats point values:
|
||||
* / -1, undetermined
|
||||
* / 0 toward zero
|
||||
* / 1 to the nearest
|
||||
* / 2 towards positive infinity
|
||||
* / 3 towards negative infinity
|
||||
* /
|
||||
* / Notes
|
||||
* / The floating-point representation in apeNEXT is inasmach as
|
||||
* / fixed hardware-impemented, we might not need to redefind its
|
||||
* / rounding modes. But at this prestage we cannot exclude the need
|
||||
* / for rounding in certain claculation.
|
||||
* /
|
||||
* /----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_ROUNDS
|
||||
#define FLT_ROUNDS -1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_EVAL_METHOD - evaluation formats
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* / #define FLT_EVAL_METHOD {-1,0,1,2}
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_EVAL_METHOD defines the evaluation methos used to determine
|
||||
* / the evaluation formats of all floating types. It defines the
|
||||
* / precision/representation of operations proceeded with foating-point
|
||||
* /
|
||||
* / RETURN VALUE
|
||||
* / None
|
||||
* /
|
||||
* / Notes
|
||||
* / If-1, range and precision of evaluation are not determined.
|
||||
* / If 0, all operations and constants will be
|
||||
* / evaluated to the range and precisions of the current type.
|
||||
* / If 1, all operations and constants of types
|
||||
* / float and double will be evaluated to the range and precisions
|
||||
* / of double (long double will be evaluated as long double also).
|
||||
* / Also the product of two floating_complex
|
||||
* / operands is represented in double _Complex format,
|
||||
* / and its parts are evaluated to double.
|
||||
* / If 2, all operations and constants will be
|
||||
* / evaluated to the range and precision of long double.
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_EVAL_METHOD
|
||||
#define FLT_EVAL_METHOD 0
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_RADIX - (base) radix representation of the exponent
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* / #define FLT_RADIX {2,8,10,16}
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_RADIX is the radix of exponent representing (or the base)
|
||||
* / typically defined as 2 (binary),
|
||||
* / but there are other definitions like 8, 10, 16
|
||||
* / 8 is octal,
|
||||
* / 10 is the normal decimal,
|
||||
* / 16 is Hex, representations
|
||||
* /
|
||||
* / RETURN VALUE
|
||||
* / None
|
||||
* /
|
||||
* / Notes
|
||||
* /
|
||||
* /----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_RADIX
|
||||
#define FLT_RADIX 2
|
||||
#endif
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MANT_DIG - number of base-FLT_RADIX digits
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_MANT_DIG defines the number of base-FLT_RADIX digits
|
||||
* / in the floating-point significant p.
|
||||
* /
|
||||
* / RETURN VALUE
|
||||
* / None
|
||||
* /
|
||||
* / Notes
|
||||
* / It belongs to FLT_RADIX like DBL_MANT_DIG, LDBL_MANT_DIG.
|
||||
* / According to EC 60559 FLT_MANT_DIG has 53 bit
|
||||
* / (where mantissa is always less than 1)
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MANT_DIG
|
||||
#define FLT_MANT_DIG 24 // Number of Bits in the Mantissa
|
||||
#endif
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / DECIMAL_DIG - number of decimals
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* / #define DECIMAL_DIG
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / Number of decimal digits, n, such that any floating-point
|
||||
* / number in the widest supported floating type with pmax
|
||||
* / radix b digits can be rounded to a floating-point number
|
||||
* / with n decimal digits and back again without
|
||||
* / change to the value.
|
||||
* / [p * log_{10} b] if b is a power of 10
|
||||
* / [1 + p * log_{10} b] otherwise
|
||||
* /
|
||||
* / RETURN VALUE
|
||||
* / None
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#undef DECIMAL_DIG
|
||||
#if LDBL_MANT_DIG == 53
|
||||
//#define DECIMAL_DIG 12
|
||||
#define DECIMAL_DIG 17
|
||||
#else
|
||||
#define DECIMAL_DIG 36
|
||||
#endif
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_DIG - minimun negative interger for exponent in FLT_RADIX
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_DIG is the minimum negative integer value, q, such that
|
||||
* / any floaring-point number with q decimal digits can be rounded
|
||||
* / into a floating-point number with p radix b digits and back
|
||||
* / again without change to the q decimal digits and the value
|
||||
* / p*log_{10} b + 1 if b is a power of 10
|
||||
* / [1 - p*log_{10} b] + 0 otherwise
|
||||
* /
|
||||
* / RETURN VALUE
|
||||
* / None
|
||||
* /
|
||||
* / Notes
|
||||
* / The value of this macro is supposed to be at least 6,
|
||||
* / to satisfy ISO c
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_DIG
|
||||
#define FLT_DIG 6 // The maximum number decimal digits (base-10) that can be represented without change after rounding
|
||||
#endif
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MIN_EXP - minimun negative that FLT_RADIX to n-1
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / Minimum negative integer such that FLT_RADIX raised to that power
|
||||
* / minus 1 is a normalized floating-point number e_{min},
|
||||
* /
|
||||
* / Notes
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MIN_EXP
|
||||
#define FLT_MIN_EXP -125 //The min integer value for an exponent in base 10
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MIN_10_EXP - ninimum negative integer for exponent in base 10
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* / DESCRIPTION
|
||||
* / FLT_MIN_10_EXP is the minimum negative integer value for an
|
||||
* / exponent in base 10 (float)
|
||||
* /
|
||||
* / Note
|
||||
* / Minimum int x such that 10**x is a normalised float
|
||||
* / log_10 b^{e_min}
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MIN_10_EXP
|
||||
#define FLT_MIN_10_EXP -37 //The maximum integer value for an exponent in base 10
|
||||
#endif
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MAX_10_EXP - maximum negative integer for exponent in base 10
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_MAX_10_EXP is the maximum negative integer value for an
|
||||
* / exponent in base 10 (float)
|
||||
* /
|
||||
* / Note
|
||||
* / Maximum int x such that 10**x is a normalised float
|
||||
* / log_10 ([1-b^{-p}] b^{e_max})
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MAX_10_EXP
|
||||
#define FLT_MAX_10_EXP +38 //The maximum integer value for an exponent in base 10
|
||||
#endif
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MAX_EXP - maximun negative that FLT_RADIX to n-1
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_MAX_EXP the maximum number n such that base to the power
|
||||
* / of n-1 (float). The minimum negative integer value for an
|
||||
* / exponent in base FLT_RADIX
|
||||
* /
|
||||
* / Notes
|
||||
* / Maximum negative integer such that FLT_RADIX raised to that power
|
||||
* / minus 1 is a normalized floating-point number e_{min},
|
||||
* / In apeNEXT the exponent has 11 bit
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MAX_EXP
|
||||
#define FLT_MAX_EXP +128 //The maximum integer value for an exponent in base FLT_RADIX
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MAX - maximum normalized finite representable value
|
||||
* / of type float
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / Maximum floating-point value
|
||||
* /
|
||||
* / Note
|
||||
* / (1-b^{p}) b^{e_{max}}
|
||||
* / (1.-pow(2.,-52.))*pow(2.,1023) =
|
||||
* / 8.9884656743115775E+307
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MAX
|
||||
#define FLT_MAX 3.40282347E+38F //Maximum finite floating-point value
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_MIN - minimum normalized finite representable value
|
||||
* / of type float
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / Minimum floating-point value
|
||||
* /
|
||||
* / Note
|
||||
* / b^{e_{min}-1} = pow(2., -1023)
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_MIN
|
||||
#define FLT_MIN 1.17549435E-38F //Minimum floating-point value
|
||||
#endif
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* / NAME
|
||||
* / FLT_EPSELON - smallest number
|
||||
* /
|
||||
* / SYNOPSIS
|
||||
* /
|
||||
* / DESCRIPTION
|
||||
* / FLT_EPSILON is smallest number x such that 1.0+x!=1.0 defined as
|
||||
* / Least significant digit representable for floating-point.
|
||||
* /
|
||||
* / Note
|
||||
* / Difference between 1.0 and the least value greater that
|
||||
* / 1.0 that is reperesentable in the given floating-point type
|
||||
* / (here double float)
|
||||
* / b^{1-p} pow(2.,1-52) = pow(2.,-51)
|
||||
* /
|
||||
* /-----------------------------------------------------------------------------*/
|
||||
#ifndef FLT_EPSILON
|
||||
#define FLT_EPSILON 1.19209290E-07F //Least significant digit representable
|
||||
#endif
|
||||
|
||||
/******************************************/
|
||||
/* Double Precision Floating Point Limits */
|
||||
/******************************************/
|
||||
|
||||
#define DBL_MANT_DIG 53 // Number of Bits in the Mantissa
|
||||
#define DBL_EPSILON 2.2204460492503131E-16 //Least significant digit representable
|
||||
#define DBL_DIG 15 // Number of Significant Digits
|
||||
#define DBL_MIN_EXP -1021
|
||||
#define DBL_MIN 2.225073858507201E-308
|
||||
#define DBL_MIN_10_EXP -307
|
||||
#define DBL_MAX_EXP +1024
|
||||
#define DBL_MAX 1.797693134862316E+308
|
||||
#define DBL_MAX_10_EXP +308
|
||||
|
||||
/***********************************************/
|
||||
/* Long Double Precision Floating Point Limits */
|
||||
/***********************************************/
|
||||
|
||||
#define LDBL_MANT_DIG 106 // Number of Bits in the Mantissa
|
||||
#define LDBL_EPSILON 2.2204460492503131E-16L //Least significant digit representable
|
||||
#define LDBL_DIG 15 // Number of Significant Digits
|
||||
#define LDBL_MIN_EXP -1021
|
||||
#define LDBL_MIN 2.225073858507201E-308L
|
||||
#define LDBL_MIN_10_EXP -307
|
||||
#define LDBL_MAX_EXP +1024
|
||||
#define LDBL_MAX 1.797693134862316E+308L // 0x7FEFFFFFFFFFFFFF, 0x7C8FFFFFFFFFFFFF
|
||||
#define LDBL_MAX_10_EXP +308
|
||||
|
||||
/* Follows IEEE standards for 128-bit floating point */
|
||||
//#define LDBL_MANT_DIG 113
|
||||
//#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L
|
||||
//#define LDBL_DIG 33
|
||||
//#define LDBL_MIN_EXP (-16381)
|
||||
//#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L
|
||||
//#define LDBL_MIN_10_EXP (-4931)
|
||||
//#define LDBL_MAX_EXP (+16384)
|
||||
//#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L
|
||||
//#define LDBL_MAX_10_EXP (+4932)
|
||||
|
||||
#endif /* FLOAT_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File FLOAT.H */
|
||||
/**************************************************/
|
||||
|
89
include/intrins.h
Normal file
89
include/intrins.h
Normal file
@ -0,0 +1,89 @@
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: INTRINS.H
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for HW.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for .
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Feb 05,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 02/05/2004 Initial
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef INTRINS_H
|
||||
#define INTRINS_H
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*============================= FUNCTION PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Instructions that can be added to 'C' code
|
||||
*/
|
||||
#define CLI asm{cli;} /* enable interrupt response */
|
||||
#define _atomic_ asm{cli;} /* enable interrupt response */
|
||||
|
||||
#define SEI asm{sei;} /* disable it */
|
||||
#define _endatomic_ asm{sei;} /* disable it */
|
||||
|
||||
#define BRK(n) asm{ brk n;} /* 65C02/65c816-BRK */
|
||||
#define _TRAP_(n) asm{ brk n;} /* 65C02/65c816-BRK */
|
||||
|
||||
#define COP(n) asm{ cop n;} /* 65c816-COP */
|
||||
|
||||
#define IDLE asm{ wai;} /* 65c816-WAI */
|
||||
#define WAIT asm{ wai;} /* 65c816-WAI */
|
||||
|
||||
|
||||
|
||||
|
||||
// _crol_(x, b) // Rotates a "char" Left so many bits
|
||||
// _cror_(x, b) // Rotates a "char" Right so many bits
|
||||
// _irol_(x, b) // Rotates a "int" Left so many bits
|
||||
// _iror_(x, b) // Rotates a "int" Right so many bits
|
||||
// _lrol_(x, b) // Rotates a "long" Left so many bits
|
||||
// _lror_(x, b) // Rotates a "long" Right so many bits
|
||||
|
||||
|
||||
#endif /* INTRINS_H */
|
||||
|
||||
/**************************************************/
|
||||
/* End of File INTRINS.H */
|
||||
/**************************************************/
|
||||
|
111
include/inttypes.h
Normal file
111
include/inttypes.h
Normal file
@ -0,0 +1,111 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: INTTYPES.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Wide Character functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _INTTYPES_H
|
||||
#define _INTTYPES_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
#ifndef _WCHAR_T
|
||||
#define _WCHAR_T
|
||||
typedef char wchar_t;
|
||||
#endif
|
||||
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef int int16_t;
|
||||
typedef unsigned int uint16_t;
|
||||
typedef long int32_t;
|
||||
typedef unsigned long uint32_t;
|
||||
//typedef long long int64_t;
|
||||
//typedef unsigned long long uint64_t;
|
||||
typedef int16_t intptr_t;
|
||||
typedef uint16_t uintptr_t;
|
||||
|
||||
//typedef long long intmax_t; /* Max size of int */
|
||||
//typedef unsigned long long uintmax_t; /* Max size of uint */
|
||||
typedef long intmax_t;
|
||||
typedef unsigned long uintmax_t;
|
||||
|
||||
|
||||
//#define INTMAX_MAX 63 /* Max size of long long */
|
||||
//#define INTMAX_MIN 15 /* Max size of int */
|
||||
//#define UINTMAX_MAX 64 /* Max size of unsigned long long */
|
||||
#define INTMAX_MAX 31 /* Max size of long */
|
||||
#define INTMAX_MIN 15 /* Max size of int */
|
||||
#define UINTMAX_MAX 32 /* Max size of unsigned long */
|
||||
|
||||
|
||||
/*
|
||||
type defined by this header (only)
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
intmax_t quot; /* member order must match function */
|
||||
intmax_t rem;
|
||||
}imaxdiv_t;
|
||||
|
||||
|
||||
#define WCHAR_MIN 0
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
intmax_t strtoimax(register const char *nptr, wchar_t **endptr, register int base);
|
||||
uintmax_t strtoumax(register const char *nptr, wchar_t **endptr, register int base);
|
||||
intmax_t wcstoimax(register const char *nptr, wchar_t **endptr, register int base);
|
||||
uintmax_t wcstoumax(register const wchar_t *nptr, wchar_t **endptr, register int base);
|
||||
|
||||
/***************/
|
||||
/* Non ANSI */
|
||||
/***************/
|
||||
intmax_t imaxabs(intmax_t j);
|
||||
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
|
||||
|
||||
|
||||
#endif /* End of _INTTYPES_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File INTTYPES.H
|
||||
***************************************/
|
64
include/iso646.h
Normal file
64
include/iso646.h
Normal file
@ -0,0 +1,64 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: ISO646.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Wide Character functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _ISO646_H
|
||||
#define _ISO646_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
#define and &&
|
||||
#define and_eq &=
|
||||
#define bitand &
|
||||
#define bitor |
|
||||
#define compl ~
|
||||
#define not !
|
||||
#define not_eq !=
|
||||
#define or ||
|
||||
#define or_eq |=
|
||||
#define xor ^
|
||||
#define xor_eq ^=
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* End of _ISO646_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File ISO646.H
|
||||
***************************************/
|
65
include/limits.h
Normal file
65
include/limits.h
Normal file
@ -0,0 +1,65 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: LIMITS.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Limits.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Character Limitss.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LIMITS_H
|
||||
#define __LIMITS_H
|
||||
|
||||
#define CHAR_BIT 8
|
||||
#define CHAR_MAX 255U
|
||||
#define CHAR_MIN 0
|
||||
#define INT_MAX +32767
|
||||
#define INT_MIN -32767
|
||||
#define LONG_MAX +2147483647
|
||||
#define LONG_MIN -2147483647
|
||||
#define MB_LEN_MAX 1
|
||||
#define SCHAR_MAX +127
|
||||
#define SCHAR_MIN -127
|
||||
#define SHRT_MAX +32767
|
||||
#define SHRT_MIN -32767
|
||||
#define UCHAR_MAX 255U
|
||||
#define UCHAR_MIN 0
|
||||
#define UINT_MAX 65535U
|
||||
#define ULONG_MAX 4294967295U
|
||||
#define USHORT_MAX 65535U
|
||||
#define USHRT_MAX 65535U
|
||||
|
||||
|
||||
#endif // End of __LIMITS_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File LIMITS.H */
|
||||
/**************************************************/
|
||||
|
||||
|
49
include/locale.h
Normal file
49
include/locale.h
Normal file
@ -0,0 +1,49 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
|
||||
#ifndef __LOCALE_H
|
||||
#define __LOCALE_H
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
#define LC_ALL 0
|
||||
#define LC_COLLATE 1
|
||||
#define LC_CTYPE 2
|
||||
#define LC_MONETARY 3
|
||||
#define LC_NUMERIC 4
|
||||
#define LC_TIME 5
|
||||
|
||||
typedef struct lconv {
|
||||
char *decimal_point; /* "." */
|
||||
char *thousands_sep; /* "" */
|
||||
char *grouping; /* "" */
|
||||
char *int_curr_symbol; /* "" */
|
||||
char *currency_symbol; /* "" */
|
||||
char *mon_decimal_point; /* "" */
|
||||
char *mon_thousands_sep; /* "" */
|
||||
char *mon_grouping; /* "" */
|
||||
char *positive_sign; /* "" */
|
||||
char *negative_sign; /* "" */
|
||||
char int_frac_digits; /* CHAR_MAX */
|
||||
char frac_digits; /* CHAR_MAX */
|
||||
char p_cs_precedes; /* CHAR_MAX */
|
||||
char p_sep_by_space; /* CHAR_MAX */
|
||||
char n_cs_precedes; /* CHAR_MAX */
|
||||
char n_sep_by_space; /* CHAR_MAX */
|
||||
char p_sign_posn; /* CHAR_MAX */
|
||||
char n_sign_posn; /* CHAR_MAX */
|
||||
} lconv;
|
||||
|
||||
struct lconv *localeconv(void);
|
||||
|
||||
|
||||
char *setlocale(int _category, const char *_locale);
|
||||
|
||||
#endif // End of __LOCALE_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File LOCALE.H */
|
||||
/**************************************************/
|
||||
|
||||
|
99
include/malloc.h
Normal file
99
include/malloc.h
Normal file
@ -0,0 +1,99 @@
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: MALLOC.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for General purpose RAM Allocation functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Feb 11,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 02/11/200 Initial
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _MALLOC_H
|
||||
#define _MALLOC_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
#ifndef ALLOC_L_LEN
|
||||
//int alloc_list_length;
|
||||
//void *alloc_list[];
|
||||
#endif
|
||||
|
||||
#ifndef ALIGN_SIZE
|
||||
#define ALIGN_SIZE sizeof(double)
|
||||
#endif
|
||||
|
||||
|
||||
#define SIZE_T_MAX ((size_t) ~0)
|
||||
#define MALLOC_MAX SIZE_T_MAX
|
||||
#define ARRAY_MAX SIZE_T_MAX
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
//int add_alloc_list(void *p); //
|
||||
void *calloc(size_t _nmemb, size_t _size); // Complex alloc
|
||||
void far *farcalloc(unsigned long _nmemb, unsigned long _size);
|
||||
void farfree(void far *_ptr); //
|
||||
void far *farmalloc(unsigned long _size); //
|
||||
void far *farrealloc(void far *_ptr, unsigned long _size);
|
||||
void free(void *_ptr); //
|
||||
void *malloc(size_t _size); //
|
||||
//int pmalloc(int nbytes); // Permanent alloc
|
||||
//void *realloc(void *_ptr, size_t _size); //
|
||||
int remove_alloc_list(void *p); //
|
||||
double *valloc(double *address, unsigned npts); //
|
||||
|
||||
//unsigned stackavail(void); // Check on how much STACK is Available
|
||||
|
||||
|
||||
#endif /* End of _MALLOC_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File MALLOC.H
|
||||
***************************************/
|
||||
|
772
include/math.h
Normal file
772
include/math.h
Normal file
@ -0,0 +1,772 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: MATH.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Math Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for General purpose Math functions.
|
||||
*
|
||||
* Double precison floating point format:
|
||||
*
|
||||
* 6 6 5 5 0
|
||||
* 3 2 2 1 0
|
||||
* ___________________________
|
||||
* |s|exponent| fraction |
|
||||
* +-+--------+--------------+
|
||||
*
|
||||
*
|
||||
* Single/Float precison floating point format:
|
||||
*
|
||||
* 3 3 2 2 0
|
||||
* 1 0 X X 0
|
||||
* ___________________________
|
||||
* |s|exponent| fraction |
|
||||
* +-+--------+--------------+
|
||||
*
|
||||
*
|
||||
* Long Double precison floating point format:
|
||||
*
|
||||
* 1 1 1
|
||||
* 2 2 X X 0
|
||||
* 7 6 X X 0
|
||||
* ___________________________
|
||||
* |s|exponent| fraction |
|
||||
* +-+--------+--------------+
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: November 17,2003
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* Jim Goodnow 1993 Initial
|
||||
* R. Greenthal 11/17/2003 Added Single Precision Math Functions
|
||||
* And templates for "long double" - 128 bit Math
|
||||
*
|
||||
* 01/21/2004 Added cadd, asinh, rad2deg, etc.
|
||||
* 01/29/2004 Added constants
|
||||
* 02/05/2004 Added more Gamma, FFT, & Bessel Functions
|
||||
* 02/18/2004 Added Integra...
|
||||
* 03/08/2004 Added Transcendental with built in Rad/Deg/Grad
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _MATH_H
|
||||
#define _MATH_H
|
||||
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _FLOAT_T
|
||||
#define _FLOAT_T
|
||||
typedef float float_t;
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _DOUBLE_T
|
||||
#define _DOUBLE_T
|
||||
typedef double double_t;
|
||||
#endif
|
||||
|
||||
#define FP_INFINITE 2
|
||||
#define FP_NAN 3
|
||||
#define FP_NORMAL 1
|
||||
#define FP_SUBNORMAL 1
|
||||
#define FP_ZERO 4
|
||||
|
||||
#define FP_FAST_FMA
|
||||
|
||||
#define FP_FAST_FMAF FP_FAST_FMA
|
||||
#define FP_FAST_FMAL FP_FAST_FMA
|
||||
|
||||
#define FP_ILOGB0 -INT_MAX
|
||||
#define FP_ILOGBNAN INT_MAX
|
||||
|
||||
|
||||
#define fpclassify(x) _fpclassify(x)
|
||||
#define isfinite(x) _isfinite(x)
|
||||
#define isinf(x) _isinf(x)
|
||||
#define isnan(x) _isnan(x)
|
||||
#define isnormal(x) _isfinite(x)
|
||||
#define signbit(x) _signbit(x)
|
||||
|
||||
#define NAN nan("255")
|
||||
|
||||
|
||||
|
||||
|
||||
#define SIGDIGLEN 36 // significant decimal digits
|
||||
#define DECSTROUTLEN 80 // max length for dec2str output
|
||||
#define FLOATDECIMAL ((char)(0))
|
||||
#define FIXEDDECIMAL ((char)(1))
|
||||
|
||||
|
||||
|
||||
/***********************************
|
||||
Limiting Constants Used by
|
||||
Double Precision Functions
|
||||
************************************/
|
||||
|
||||
#define HUGE_VAL 1.797693134862316E+308
|
||||
#define LOGHUGE (709.778)
|
||||
#define TINY_VAL (2.2e-308)
|
||||
#define LOGTINY (-708.396)
|
||||
|
||||
|
||||
// We are currently EQUATING long double & double
|
||||
//#define LONG_DOUBLE_SIZE 16 // 128 Bits/16 Bytes
|
||||
#define LONG_DOUBLE_SIZE 8 // 64 Bits/8 Bytes
|
||||
|
||||
#define DOUBLE_SIZE 8 // 64 Bits/8 Bytes
|
||||
//#define HUGE_VAL __inf()
|
||||
#define INFINITY __inf()
|
||||
//#define HUGE_VAL INFINITY
|
||||
|
||||
#define HUGE_VALF HUGE_VAL
|
||||
#define HUGE_VALL HUGE_VAL
|
||||
|
||||
|
||||
/***********************************
|
||||
General Math Constants Used by
|
||||
Double Precision Functions
|
||||
(20 places to the Right of
|
||||
the Decimal point)
|
||||
************************************/
|
||||
|
||||
#define PI 3.14159265358979323846
|
||||
#define PIOVR2 1.57079632679489661923 // PI/2
|
||||
#define M_1_PI 0.318309886183790671538 // 1/PI
|
||||
#define PI2 6.28318530717958647692 // 2*PI
|
||||
#define SIN45 0.70710678118654752440 // SIN(45 degrees)
|
||||
#define SQRT2 1.41421356237309504880 // SQRT(2)
|
||||
#define LN2 0.69314718055994530942 // Ln 2 constant
|
||||
#define EULER 0.577215664901532860607 // Euler number
|
||||
#define LN10 2.30258509299404568402 // ln(10)
|
||||
#define SQRTPI 1.77245385090551602730 // sqrt(PI)
|
||||
#define LOG10E 0.43429448190325182765 // Log(e)
|
||||
//#define 180_PI 57.2957795130823208768 // One Radian in degrees = 180/PI
|
||||
//#define
|
||||
//#define M_3PI_4 2.35619449019234492884698253745962716
|
||||
//#define M_3PI_8 1.17809724509617246442349126872981358
|
||||
//#define M_PI_4 0.78539816339744830961566084581987572
|
||||
//#define M_PI_8 0.39269908169872415480783042290993786
|
||||
//#define M_1_PI 0.31830988618379067153776752674502872
|
||||
//#define M_2_PI 0.63661977236758134307553505349005744
|
||||
//#define M_4_PI 1.27323954473516268615107010698011488
|
||||
#define M_E 2.71828182845904523536028747135266250 //constant "e"
|
||||
//#define M_1_SQRT2 0.70710678118654752440084436210484904
|
||||
#define LOGPI 1.14472988584940017414
|
||||
|
||||
/***********************************
|
||||
Limiting Constants Used by
|
||||
Single Precision Functions
|
||||
************************************/
|
||||
|
||||
#define FLT_HUGE_VAL 1.797693135E+308f
|
||||
#define FLT_LOGHUGE 709.778f
|
||||
#define FLT_TINY_VAL 2.2e-308f
|
||||
#define FLT_LOGTINY -708.396f
|
||||
|
||||
|
||||
/***********************************
|
||||
General Math Constants Used by
|
||||
Double Precision Functions
|
||||
(xx places to the Right of
|
||||
the Decimal point)
|
||||
************************************/
|
||||
|
||||
#define F_PI 3.141592653f
|
||||
#define F_PIOVR2 1.570796327f // PI/2
|
||||
#define F_PI2 6.283185307f // 2*PI
|
||||
#define F_SIN45 0.707106781f // SIN()
|
||||
#define F_SQRT2 1.414213562f // SQRT(2)
|
||||
#define F_LN2 0.693147181f // Ln 2 constant
|
||||
#define F_LN10 2.302585092f // ln(10)
|
||||
#define F_LOG10E 0.434294481f // Log(e)
|
||||
|
||||
|
||||
/***********************************
|
||||
Limiting Constants Used by
|
||||
Long Double Precision Functions
|
||||
************************************/
|
||||
|
||||
#define LDBL_HUGE_VAL 1.797693134862316E+308L
|
||||
#define LDBL_LOGHUGE 709.778L
|
||||
#define LDBL_TINY_VAL 2.2e-308L
|
||||
#define LDBL_LOGTINY -708.396L
|
||||
|
||||
/***********************************
|
||||
General Math Constants Used by
|
||||
Long Double Precision Functions
|
||||
(xx places to the Right of
|
||||
the Decimal point)
|
||||
************************************/
|
||||
|
||||
#define LDBL_PI 3.14159265358979323846L
|
||||
#define LDBL_PI2 6.28318530717958647692L // 2*PI
|
||||
#define LDBL_PIOVR2 1.57079632679489661923L // PI/2
|
||||
#define LDBL_SIN45 0.70710678118654752440L // SIN()
|
||||
#define LDBL_SQRT2 1.41421356237309504880L // SQRT(2)
|
||||
#define LDBL_LN2 0.69314718055994530942L // Ln 2 constant
|
||||
#define LDBL_LN10 2.30258509299404568402L // ln(10)
|
||||
#define LDBL_LOG10E 0.43429448190325182765L // Log(e)
|
||||
|
||||
//#define M_PI 3.14159265358979323846264338327950288
|
||||
//#define M_2PI 6.28318530717958647692528676655900576
|
||||
//#define M_3PI_4 2.35619449019234492884698253745962716
|
||||
//#define M_PI_2 1.57079632679489661923132169163975144
|
||||
//#define M_3PI_8 1.17809724509617246442349126872981358
|
||||
//#define M_PI_4 0.78539816339744830961566084581987572
|
||||
//#define M_PI_8 0.39269908169872415480783042290993786
|
||||
//#define M_1_PI 0.31830988618379067153776752674502872
|
||||
//#define M_2_PI 0.63661977236758134307553505349005744
|
||||
//#define M_4_PI 1.27323954473516268615107010698011488
|
||||
#define M_E 2.71828182845904523536028747135266250 //constant "e"
|
||||
//#define M_LOG2E 1.44269504088896340735992468100189213
|
||||
//#define M_LOG10E 0.43429448190325182765112891891660508
|
||||
//#define M_LN2 0.69314718055994530941723212145817657
|
||||
//#define M_LN10 2.30258509299404568401799145468436421
|
||||
//#define M_SQRT2 1.41421356237309504880168872420969808
|
||||
//#define M_1_SQRT2 0.70710678118654752440084436210484904
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
#ifndef ERRNO
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
struct exception {
|
||||
int type; /* type of exception */
|
||||
char *name; /* name of function */
|
||||
double arg1; /* first argument to function */
|
||||
double arg2; /* second argument to function */
|
||||
double retval; /* value to be returned if error is not fatal */
|
||||
};
|
||||
|
||||
/* exception types */
|
||||
|
||||
#define DOMAIN 1 /* not in domain of function (i.e. number passed either to small or too large) */
|
||||
#define SING 2 /* singularity (function not defined)(i.e. x/0) */
|
||||
#define OVERFLOW 3 /* result too large */
|
||||
#define UNDERFLOW 4 /* result too small */
|
||||
#define TLOSS 5 /* total loss of precision */
|
||||
#define PLOSS 6 /* partial loss of precision */
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/************************************************************************************
|
||||
************************************************************************************
|
||||
Double Precision Math Functions - (General ANSI Standard Functions)
|
||||
*************************************************************************************
|
||||
*************************************************************************************/
|
||||
|
||||
|
||||
double acos(double); // Arc Cosine
|
||||
float acosf(float);
|
||||
long double acosl(long double);
|
||||
|
||||
double acosh(double); // Arc Hyperbolic Cosine
|
||||
float acoshf(float);
|
||||
long double acoshl(long double);
|
||||
|
||||
double asin(double); // Arc Sine
|
||||
float asinf(float);
|
||||
long double asinl(long double);
|
||||
|
||||
double asinh(double); // Arc Hyperbolic Sine
|
||||
float asinhf(float);
|
||||
long double asinhl(long double);
|
||||
|
||||
double atan(double); // Arc Tangent
|
||||
float atanf(float);
|
||||
long double atanl(long double);
|
||||
|
||||
double atanh(double); // Arc Hyperbolic Tangent
|
||||
float atanhf(float);
|
||||
long double atanhl(long double);
|
||||
|
||||
double atan2(double, double); // Inverse tangent of y/x
|
||||
float atan2f(float, float);
|
||||
long double atan2l(long double, long double);
|
||||
|
||||
double atof(const char *); // ASCII to Float
|
||||
|
||||
double cbrt(double ); // Cube Root
|
||||
float cbrtf(float );
|
||||
long double cbrtl(long double );
|
||||
|
||||
double ceil(double); // Smallest integer >= argument (as double)
|
||||
float ceilf(float );
|
||||
long double ceill(long double );
|
||||
|
||||
double cos(double); // Cosine of a Radian
|
||||
float cosf(float);
|
||||
long double cosl(long double);
|
||||
|
||||
double cosh(double); // Hyperbolic Cosine
|
||||
float coshf(float);
|
||||
long double coshl(long double);
|
||||
|
||||
double cotan(double); // Cotangent
|
||||
float cotanf(float);
|
||||
long double cotanl(long double);
|
||||
|
||||
double deg2rad(double ); // Degrees to Radians
|
||||
float deg2radf(float );
|
||||
long double deg2radl(long double);
|
||||
|
||||
//double drand(int n); //
|
||||
|
||||
double exp(double); // Natural ("e") Exponential (e^x)
|
||||
float expf(float);
|
||||
long double expl(long double);
|
||||
|
||||
double fabs(double); // Floating Absolute value
|
||||
float fabsf(float);
|
||||
long double fabsl(long double);
|
||||
|
||||
double floor(double); // Largest integer <= argument
|
||||
float floorf(float );
|
||||
long double floorl(long double );
|
||||
|
||||
double fma(double x, double y, double z); // Calculate (x * y) + z
|
||||
float fmaf(float x, float y, float z); // Calculate (x * y) + z
|
||||
long double fmal(long double x, long double y, long double z);
|
||||
|
||||
double fmod(double, double); // Floating modulus
|
||||
float fmodf(float, float);
|
||||
long double fmodl(long double, long double);
|
||||
|
||||
double frexp(double, int *); // Returns the mantissa of the floating point number
|
||||
float frexpf(float, int *);
|
||||
long double frexpl(long double, int *);
|
||||
|
||||
double hypot(double x, double y); // Calculate the Hypotenuse
|
||||
float hypotf(float x, float y); //
|
||||
long double hypotl(long double x, long double y); //
|
||||
|
||||
double ipow(double x, int n); // return x^n where n is an integer???????????????
|
||||
|
||||
double ldexp(double, int); // Returns the value of x times 2 raised to the exp power
|
||||
float ldexpf(float, int);
|
||||
long double ldexpl(long double, int);
|
||||
|
||||
//long _lrand()
|
||||
|
||||
double log(double); // Logarithm base "e" or natural
|
||||
float logf(float);
|
||||
long double logl(long double);
|
||||
|
||||
double log10(double); // Logarithm base 10
|
||||
float log10f(float);
|
||||
long double log10l(long double);
|
||||
|
||||
double modf(double, double *); // Return integer and fractional parts of number
|
||||
float modff(float, float *);
|
||||
long double modfl(long double, long double *);
|
||||
|
||||
double pseries(double , double coef[], unsigned ); // Expand polynomial series - sum = coef[0]+x*coef[1]+x^2*coef[2]+...+x^(n-1)*coef[n-1]
|
||||
|
||||
#if 0
|
||||
#define pow(x,y) power(x,y) // same as "pow"
|
||||
#endif
|
||||
#if 0
|
||||
#define powf(x,y) powerf(x,y)
|
||||
#endif
|
||||
#if 0
|
||||
#define powl(x,y) powerl(x,y)
|
||||
#endif
|
||||
|
||||
double pow(double, double); // Calculates "x" to the "y" power
|
||||
float powf(float, float);
|
||||
long double powl(long double, long double);
|
||||
|
||||
double rad2deg(double ); // Radians to Degrees
|
||||
float rad2degf(float );
|
||||
long double rad2degl(long double);
|
||||
|
||||
double sin(double); // Sine of a Radian
|
||||
float sinf(float);
|
||||
long double sinl(long double);
|
||||
|
||||
double sinh(double); // Hyperbolic Sine
|
||||
float sinhf(float);
|
||||
long double sinhl(long double);
|
||||
|
||||
double sqrt(double); // Square Root
|
||||
float sqrtf(float);
|
||||
long double sqrtl(long double);
|
||||
|
||||
double tan(double); // Tangent (Sine/Cosine)
|
||||
float tanf(float);
|
||||
long double tanl(long double);
|
||||
|
||||
double tanh(double); // Hyperbolic Tangent
|
||||
float tanhf(float);
|
||||
long double tanhl(long double);
|
||||
|
||||
double tgamma(double x); // gamma function of the argument
|
||||
float tgammaf(float x);
|
||||
long double tgammal(long double x);
|
||||
|
||||
|
||||
//long double atoldl(const char *);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//*******************************************************************
|
||||
// Gamma & Error Functions
|
||||
//*******************************************************************
|
||||
double erf(double ); // Error Function
|
||||
float erff(float );
|
||||
|
||||
double erfc(double ); // Error Function
|
||||
float erfcf(float );
|
||||
|
||||
double ierfc(double ); // Inverse Error Function
|
||||
float ierfcf(float );
|
||||
|
||||
double gamma(double ); // Gamma function
|
||||
float gammaf(float );
|
||||
|
||||
double lgamma(double ); // Log Gamma function
|
||||
float lgammaf(float );
|
||||
|
||||
//******************
|
||||
// Bessel Functions
|
||||
//******************
|
||||
double j0(double x); // First Bessel function of the first kind (Order 0)
|
||||
double j1(double x); // Second Bessel function of the first kind (Order 1)
|
||||
double jn(int n, double x); // Bessel Function Order n of the first kind
|
||||
double y0(double x); // First Bessel function of the second Kind (Order 0)
|
||||
double y1(double x); // Second Bessel function of the second Kind
|
||||
double yn(int n, double x); // Bessel Function Order n of the second kind
|
||||
|
||||
double besi0_(double x); // Zeroth order modified bessel function of first kind.
|
||||
|
||||
|
||||
|
||||
|
||||
//*************************
|
||||
// Error handling Functions
|
||||
//*************************
|
||||
double _domerr(char *name, double arg1, double arg2);
|
||||
double _tloss(char *name, double arg1, double arg2);
|
||||
double _ploss(char *name, double arg1, double arg2);
|
||||
double _rangerr(char *name, double arg1, double arg2, double dflt);
|
||||
int matherr(struct exception *x);
|
||||
void matherr_(char *funcname, int errnum);
|
||||
|
||||
|
||||
|
||||
/************************************************************************************
|
||||
************************************************************************************
|
||||
************************************************************************************
|
||||
N O N A N S I
|
||||
************************************************************************************
|
||||
************************************************************************************
|
||||
************************************************************************************
|
||||
***********************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//*******************
|
||||
// Calculus Functions
|
||||
//*******************
|
||||
double *convolve(double *data, int ndata, double weights[], int nweights,
|
||||
int ndec, int itype, int isym, int *length);
|
||||
double *deriv(double *data, double delta, int ndata);
|
||||
double *integrat(double *xin, double dx, int ndata);
|
||||
|
||||
|
||||
//******************
|
||||
// Lowpass Filter Functions
|
||||
// Smoothing Functions
|
||||
//******************
|
||||
void lowpass(double weights[], int nweights, double fc, double dB, int half); // Digital Lowpass filter of uniform time intervals (a Kaiser-Bessel window)
|
||||
double *smooth(double *data, int ndata, int factor); // a Kaiser lowpass filter (Reduces the high frequency noise)
|
||||
|
||||
//******************
|
||||
// DSP/FFT Functions
|
||||
//******************
|
||||
double stopbnd_(double ); // Used by bandpass()
|
||||
void bandpass(double weights[], int nweights, double fh, double fl,
|
||||
double dB, int half);
|
||||
// Subroutine computes power spectral density of complex array v[] of length
|
||||
// nv and returns it in the real array pw[] length npw.
|
||||
//double *powspec(double *v, unsigned nv, unsigned npw, double *w);
|
||||
// Computes power spectral density of real array
|
||||
|
||||
|
||||
|
||||
|
||||
/********************************************************************/
|
||||
/* This library is concerned entirely with angles in general and */
|
||||
/* trigonometric functions in particular. */
|
||||
/********************************************************************/
|
||||
|
||||
#ifndef ANGLE_TYPE
|
||||
#define ANGLE_TYPE
|
||||
enum angle_type {RAD, DEG, GRAD};
|
||||
#endif
|
||||
|
||||
/********************************************************************/
|
||||
/* The following three routines 'normalize' the supplied angle to */
|
||||
/* be within limits appropiate for the trigonemetric routines. */
|
||||
/* normalize_radians ensures that the supplied angle is between -PI */
|
||||
/* and +PI, normalize_degrees between -180.0 and +180.0 and */
|
||||
/* normalize_grade between -200.0 and +200.0. NOTE - ALL the */
|
||||
/* normal trigonometric functions normalize the angle before use, */
|
||||
/* and the inverse functions after. */
|
||||
/********************************************************************/
|
||||
|
||||
void normalize_radians(double *radians);
|
||||
void normalize_radiansf(float *radians);
|
||||
void normalize_radiansl(long double *radians);
|
||||
|
||||
void normalize_degrees(double *degrees);
|
||||
void normalize_degreesf(float *degrees);
|
||||
void normalize_degreesl(long double *degrees);
|
||||
|
||||
void normalize_grade(double *grade);
|
||||
void normalize_gradef(float *grade);
|
||||
void normalize_gradel(long double *grade);
|
||||
|
||||
/********************************************************************/
|
||||
/* These six routines enable conversion, of angles, between */
|
||||
/* radians, degrees and grade. NOTE there is no need to normalize */
|
||||
/* the angle to be converted before calling any of these routines */
|
||||
/* as they all call the appropriate normalisation routine. */
|
||||
/********************************************************************/
|
||||
|
||||
double radians_to_degrees(double radians);
|
||||
float radians_to_degreesf(float radians);
|
||||
long double radians_to_degreesl(long double radians);
|
||||
|
||||
double radians_to_grade(double radians);
|
||||
float radians_to_gradef(float radians);
|
||||
long double radians_to_gradel(long double radians);
|
||||
|
||||
double degrees_to_radians(double degrees);
|
||||
float degrees_to_radiansf(float degrees);
|
||||
long double degrees_to_radiansl(long double degrees);
|
||||
|
||||
double degrees_to_grade(double degrees);
|
||||
float degrees_to_gradef(float degrees);
|
||||
long double degrees_to_gradel(long double degrees);
|
||||
|
||||
double grade_to_radians(double grade);
|
||||
float grade_to_radiansf(float grade);
|
||||
long double grade_to_radiansl(long double grade);
|
||||
|
||||
double grade_to_degrees(double grade);
|
||||
float grade_to_degreesf(float grade);
|
||||
long double grade_to_degreesl(long double grade);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the normal trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double sine(double angle, enum angle_type atype);
|
||||
float sinef(float angle, enum angle_type atype);
|
||||
long double sinel(long double angle, enum angle_type atype);
|
||||
|
||||
double cosine(double angle, enum angle_type atype);
|
||||
float cosinef(float angle, enum angle_type atype);
|
||||
long double cosinel(long double angle, enum angle_type atype);
|
||||
|
||||
double tangent(double angle, enum angle_type atype);
|
||||
float tangentf(float angle, enum angle_type atype);
|
||||
long double tangentl(long double angle, enum angle_type atype);
|
||||
|
||||
double secant(double angle, enum angle_type atype);
|
||||
float secantf(float angle, enum angle_type atype);
|
||||
long double secantl(long double angle, enum angle_type atype);
|
||||
|
||||
double cosecant(double angle, enum angle_type atype);
|
||||
float cosecantf(float angle, enum angle_type atype);
|
||||
long double cosecantl(long double angle, enum angle_type atype);
|
||||
|
||||
double cotangent(double angle, enum angle_type atype);
|
||||
float cotangentf(float angle, enum angle_type atype);
|
||||
long double cotangentl(long double angle, enum angle_type atype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the normal inverse trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double arc_sine(double x, enum angle_type outtype);
|
||||
float arc_sinef(float x, enum angle_type outtype);
|
||||
long double arc_sinel(long double x, enum angle_type outtype);
|
||||
|
||||
double arc_cosine(double x, enum angle_type outtype);
|
||||
float arc_cosinef(float x, enum angle_type outtype);
|
||||
long double arc_cosinel(long double x, enum angle_type outtype);
|
||||
|
||||
double arc_tangent(double x, enum angle_type outtype);
|
||||
float arc_tangentf(float x, enum angle_type outtype);
|
||||
long double arc_tangentl(long double x, enum angle_type outtype);
|
||||
|
||||
double arc_secant(double x, enum angle_type outtype);
|
||||
float arc_secantf(float x, enum angle_type outtype);
|
||||
long double arc_secantl(long double x, enum angle_type outtype);
|
||||
|
||||
double arc_cosecant(double x, enum angle_type outtype);
|
||||
float arc_cosecantf(float x, enum angle_type outtype);
|
||||
long double arc_cosecantl(long double x, enum angle_type outtype);
|
||||
|
||||
double arc_cotangent(double x, enum angle_type outtype);
|
||||
float arc_cotangentf(float x, enum angle_type outtype);
|
||||
long double arc_cotangentl(long double x, enum angle_type outtype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the hyperbolic trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double hyperbolic_sine(double angle, enum angle_type atype);
|
||||
float hyperbolic_sinef(float angle, enum angle_type atype);
|
||||
long double hyperbolic_sinel(long double angle, enum angle_type atype);
|
||||
|
||||
double hyperbolic_cosine(double angle, enum angle_type atype);
|
||||
float hyperbolic_cosinef(float angle, enum angle_type atype);
|
||||
long double hyperbolic_cosinel(long double angle, enum angle_type atype);
|
||||
|
||||
double hyperbolic_tangent(double angle, enum angle_type atype);
|
||||
float hyperbolic_tangentf(float angle, enum angle_type atype);
|
||||
long double hyperbolic_tangentl(long double angle, enum angle_type atype);
|
||||
|
||||
double hyperbolic_secant(double angle, enum angle_type atype);
|
||||
float hyperbolic_secantf(float angle, enum angle_type atype);
|
||||
long double hyperbolic_secantl(long double angle, enum angle_type atype);
|
||||
|
||||
double hyperbolic_cosecant(double angle, enum angle_type atype);
|
||||
float hyperbolic_cosecantf(float angle, enum angle_type atype);
|
||||
long double hyperbolic_cosecantl(long double angle, enum angle_type atype);
|
||||
|
||||
double hyperbolic_cotangent(double angle, enum angle_type atype);
|
||||
float hyperbolic_cotangentf(float angle, enum angle_type atype);
|
||||
long double hyperbolic_cotangentl(long double angle, enum angle_type atype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the hyperbolic inverse */
|
||||
/* trigonometric functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double hyperbolic_arc_sine(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_sinef(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_sinel(long double x, enum angle_type outtype);
|
||||
|
||||
double hyperbolic_arc_cosine(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_cosinef(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_cosinel(long double x, enum angle_type outtype);
|
||||
|
||||
double hyperbolic_arc_tangent(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_tangentf(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_tangentl(long double x, enum angle_type outtype);
|
||||
|
||||
double hyperbolic_arc_secant(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_secantf(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_secantl(long double x, enum angle_type outtype);
|
||||
|
||||
double hyperbolic_arc_cosecant(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_cosecantf(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_cosecantl(long double x, enum angle_type outtype);
|
||||
|
||||
double hyperbolic_arc_cotangent(double x, enum angle_type outtype);
|
||||
float hyperbolic_arc_cotangentf(float x, enum angle_type outtype);
|
||||
long double hyperbolic_arc_cotangentl(long double x, enum angle_type outtype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following four routines "complete" the standard library */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double sech(double x);
|
||||
float sechf(float x);
|
||||
long double sechl(long double x);
|
||||
|
||||
double csch(double x);
|
||||
float cschf(float x);
|
||||
long double cschl(long double x);
|
||||
|
||||
double coth(double x);
|
||||
float cothf(float x);
|
||||
long double cothl(long double x);
|
||||
|
||||
double acoth(double x);
|
||||
float acothf(float x);
|
||||
long double acothl(long double x);
|
||||
|
||||
|
||||
|
||||
/************************************************************************************
|
||||
************************************************************************************
|
||||
(Special Embedded Functions)
|
||||
NON ANSI
|
||||
*************************************************************************************
|
||||
*************************************************************************************/
|
||||
|
||||
char *ecvt(double x, int digits, int *decimal, int *sign); // Convert the Double Precision number to Character string
|
||||
char *fcvt(double x, int digits, int *decimal, int *sign); // Convert the Double Precision number to Character string - almost same as ecvt - digits arg is diff
|
||||
char *gcvt(double x, int digits, char *buffer); // Convert the Float Precision number to Character string
|
||||
|
||||
BOOL dtoa(char *szLabel, double dNumber, int nChars, BOOL bUseSciNot );
|
||||
|
||||
long Gcd(long a, long b); // Greatest common divisor of a and b
|
||||
//long long Gcd(long long a, long long b);
|
||||
|
||||
double Fac(long number); // Factorial of a number
|
||||
float Facf(int number);
|
||||
//long double Facl(long long number);
|
||||
|
||||
#endif /* End of _MATH_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File MATH.H
|
||||
***************************************/
|
172
include/obj816.h
Normal file
172
include/obj816.h
Normal file
@ -0,0 +1,172 @@
|
||||
#pragma Align_members(1)
|
||||
|
||||
#define VERS " 3.01 " /* version number for programs */
|
||||
#define CDATE "1992-1997" /* copyright date for programs */
|
||||
|
||||
typedef struct Mod_head {
|
||||
long h_magic; /* magic number for detection */
|
||||
short h_version; /* version number of object format */
|
||||
char h_filtyp; /* file type, object or library */
|
||||
char h_namlen; /* length of module name */
|
||||
long h_recsize; /* sizeof records section */
|
||||
short h_secsize; /* sizeof section section */
|
||||
long h_symsize; /* sizeof symbol section */
|
||||
short h_optsize; /* sizeof options section */
|
||||
unsigned char h_tot_secs; /* total number of sections in module */
|
||||
unsigned char h_num_secs; /* number of sections referenced */
|
||||
unsigned short h_num_syms; /* number of symbols */
|
||||
} Mod_head;
|
||||
|
||||
typedef struct Lib_head {
|
||||
long l_magic; /* magic number for detection */
|
||||
short l_version; /* version number of object format */
|
||||
char l_filtyp; /* file type, object or library */
|
||||
char l_unused1;
|
||||
long l_modstart; /* offset of modules start */
|
||||
long l_numsyms; /* number of symbol entries */
|
||||
long l_symsize; /* sizeof symbol section */
|
||||
long l_numfiles; /* number of files */
|
||||
} Lib_head;
|
||||
|
||||
#define MOD_CONVERT "lwbblslsbbw"
|
||||
#define LIB_CONVERT "lwbbllll"
|
||||
|
||||
#define MOD_REC_OFF(x) (sizeof(x)+x.h_namlen)
|
||||
#define MOD_SEC_OFF(x) (MOD_REC_OFF(x)+x.h_recsize)
|
||||
#define MOD_SYM_OFF(x) (MOD_SEC_OFF(x)+x.h_secsize)
|
||||
#define MOD_OPT_OFF(x) (MOD_SYM_OFF(x)+x.h_symsize)
|
||||
#define MOD_NEXT_OFF(x) (MOD_OPT_OFF(x)+x.h_optsize)
|
||||
|
||||
#define MOD_MAGIC 0x5a44525a /* 'ZRDZ' */
|
||||
#define MOD_VERSION 1
|
||||
#define MOD_OBJECT 1
|
||||
#define MOD_LIBRARY 2
|
||||
#define MOD_OBJ68K 3
|
||||
|
||||
#define REC_END 0
|
||||
/* 1-xx are numbers of constant data bytes */
|
||||
#define REC_SECT 0xf0 /* next word is section number */
|
||||
#define REC_EXPR 0xf1 /* expression follows */
|
||||
#define REC_SPACE 0xf2 /* word count of bytes to reserve */
|
||||
#define REC_ORG 0xf3 /* long word new pc */
|
||||
#define REC_RELEXP 0xf4 /* pc-relative expression */
|
||||
#define REC_DEBUG 0xf5 /* debug info record */
|
||||
#define REC_LINE 0xf6 /* bump line counter */
|
||||
|
||||
enum {
|
||||
OP_END=0, /* end of expression */
|
||||
OP_SYM, /* ref to extern symbol */
|
||||
OP_VAL, /* constant value */
|
||||
OP_LOC, /* ref to offset from start of section */
|
||||
|
||||
OP_UNA=10,
|
||||
OP_NOT=10,
|
||||
OP_NEG,
|
||||
OP_FLP,
|
||||
|
||||
OP_BIN=20,
|
||||
OP_EXP=20, OP_MUL, OP_DIV, OP_MOD, OP_SHR,
|
||||
OP_SHL, OP_ADD, OP_SUB, OP_AND, OP_OR,
|
||||
OP_XOR, OP_EQ, OP_GT, OP_LT, OP_UGT,
|
||||
OP_ULT,
|
||||
OP_LAST
|
||||
};
|
||||
|
||||
enum { S_UND, S_ABS, S_REL, S_EXP, S_REG, S_FREG }; /* symbol type */
|
||||
enum { ST_NOSIZE, ST_8BIT, ST_16BIT, ST_32BIT,
|
||||
ST_FLOAT, ST_DOUBLE, ST_8051, ST_Z8, ST_DS, ST_EQU };
|
||||
|
||||
enum {
|
||||
D_C_FILE=100,
|
||||
D_C_LINE,
|
||||
D_C_SYM,
|
||||
D_C_STAG,
|
||||
D_C_ETAG,
|
||||
D_C_UTAG,
|
||||
D_C_MEMBER,
|
||||
D_C_EOS,
|
||||
D_C_FUNC,
|
||||
D_C_ENDFUNC,
|
||||
D_C_BLOCK,
|
||||
D_C_ENDBLOCK,
|
||||
D_LONGA_ON,
|
||||
D_LONGA_OFF,
|
||||
D_LONGI_ON,
|
||||
D_LONGI_OFF
|
||||
};
|
||||
|
||||
/* used for generating source level debugging information */
|
||||
|
||||
enum { DT_NON, DT_PTR, DT_FCN, DT_ARY, DT_FPTR, DT_FFCN };
|
||||
enum { T_NULL, T_VOID, T_SCHAR, T_CHAR, T_SHORT, T_INT16, T_INT32, T_LONG,
|
||||
T_FLOAT, T_DOUBLE, T_STRUCT, T_UNION, T_ENUM, T_LDOUBLE,
|
||||
T_UCHAR, T_USHORT, T_UINT16, T_UINT32, T_ULONG };
|
||||
enum { C_NULL, C_AUTO, C_EXT, C_STAT, C_REG, C_EXTDEF, C_ARG,
|
||||
C_STRTAG, C_MOS, C_EOS, C_UNTAG, C_MOU, C_ENTAG, C_MOE,
|
||||
C_TPDEF, C_USTATIC, C_REGPARM, C_FIELD, C_UEXT, C_STATLAB,
|
||||
C_EXTLAB, C_BLOCK, C_EBLOCK, C_FUNC, C_EFUNC, C_FILE, C_LINE,
|
||||
C_FRAME };
|
||||
|
||||
|
||||
#define SF_GBL 0x01 /* label is global */
|
||||
#define SF_DEF 0x02 /* label is defined in this module */
|
||||
#define SF_REF 0x04 /* label is referenced in this module */
|
||||
#define SF_VAR 0x08 /* label is variable */
|
||||
#define SF_PG0 0x10 /* label is Page0 type */
|
||||
#define SF_TMP 0x20 /* label is temporary (LLCHAR) */
|
||||
#define SF_DEF2 0x40 /* label has been defined in pass 2 ( ZAS only ) */
|
||||
#define SF_LIB 0x40 /* label in library (used by ZLN) */
|
||||
|
||||
#define SEC_OFFSET 0x0001
|
||||
#define SEC_INDIRECT 0x0002
|
||||
#define SEC_STACKED 0x0004
|
||||
#define SEC_REF_ONLY 0x0008
|
||||
#define SEC_CONST 0x0010
|
||||
#define SEC_DIRECT 0x0020
|
||||
#define SEC_NONAME 0x0040
|
||||
|
||||
/* pre-defined sections */
|
||||
enum {SECT_PAGE0, SECT_CODE, SECT_KDATA, SECT_DATA, SECT_UDATA };
|
||||
|
||||
/*
|
||||
Module format:
|
||||
Module header
|
||||
s: Module name (null terminated)
|
||||
Records
|
||||
Each record is in stack order terminated by REC_END
|
||||
Section info
|
||||
Section info format: --- for each section that has references
|
||||
b: section number
|
||||
b: section flags
|
||||
l: size
|
||||
l: org
|
||||
s: name of section (only if SEC_NONAME not in flags)
|
||||
Symbol info
|
||||
Symbol info format: --- for each symbol
|
||||
b: type
|
||||
b: flags
|
||||
b: section number
|
||||
l: offset (only if type != S_UND)
|
||||
s: name of symbol (null terminated)
|
||||
|
||||
Library format:
|
||||
Library header
|
||||
File info - for each file
|
||||
w: file number
|
||||
b: file name len
|
||||
c: file name (no null)
|
||||
Symbol data - for each symbol
|
||||
w: offset of name
|
||||
w: file number
|
||||
l: module offset - Hdr.l_modstart
|
||||
Symbol names - for each symbol
|
||||
b: length of name
|
||||
c: symbol name (no null)
|
||||
Modules - each module
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************/
|
||||
/* End of File OBJ816.H */
|
||||
/**************************************************/
|
||||
|
60
include/search.h
Normal file
60
include/search.h
Normal file
@ -0,0 +1,60 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: SEARCH.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Search Tree Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Search Tree functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __SEARCH_H
|
||||
#define __SEARCH_H
|
||||
|
||||
|
||||
|
||||
#ifndef size_t
|
||||
typedef unsigned size_t;
|
||||
#endif
|
||||
|
||||
|
||||
void *bsearch(const void *_key, const void *_base, size_t _nmemb, size_t _size,
|
||||
int (*_compar)(const void *, const void *));
|
||||
char *lfind(void *key, void *base, unsigned *number, unsigned size,
|
||||
int (*compare)(void *, void *));
|
||||
char *lsearch(void *key, void *base, unsigned *number, unsigned size,
|
||||
int (*compare)(void *, void *));
|
||||
void qsort(void *_base, size_t _nmemb, size_t _size,
|
||||
int (*_compar)(const void *, const void *));
|
||||
|
||||
|
||||
#endif // End of __SEARCH_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File SEARCH.H */
|
||||
/**************************************************/
|
||||
|
90
include/setjmp.h
Normal file
90
include/setjmp.h
Normal file
@ -0,0 +1,90 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: SETJMP.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Setjmp Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Setjmp functions.
|
||||
*
|
||||
* The <setjmp.h> header relates to the C phenomenon known as setjmp/longjmp.
|
||||
* It is used to escape out of the current situation into a previous one.
|
||||
* A typical example is in an editor, where hitting DEL breaks off the current
|
||||
* command and puts the editor back in the main loop, though care has to be
|
||||
* taken when the DEL occurs while executing a library function, since
|
||||
* some of them are not reentrant.
|
||||
*
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* __SetJmp_Struct_802: ; Structure for SetJmp
|
||||
* __SetJmp_PC rmb 2 ; actual Long Jump "to" address in code (16 bit Address)
|
||||
* __SetJmp_SP rmb 1 ; Don't need to save the Status Reg, X 0r Acc?
|
||||
* __SetJmp_Y rmb 1 ;Y Reg
|
||||
*
|
||||
* __SetJmp_Struct_816: Structure for SetJmp
|
||||
* __SetJmp_PC rmb 3 Program Counter, actual Long Jump "to" address in code (24 bit Address)
|
||||
* __SetJmp_SP rmb 2 Stack Pointer Don't need to save the Status Reg, X 0r Acc?
|
||||
* __SetJmp_Y rmb 2 Y Reg
|
||||
* __SetJmp_DP rmb 2 Direct Page Reg
|
||||
* __SetJmp_DB rmb 1 Data Bank Reg
|
||||
* Program Bank Reg (NOT NEEDED!!!)
|
||||
*
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 05/01/2004 Added SetJmp_Struct Def
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __SETJMP_H
|
||||
#define __SETJMP_H
|
||||
|
||||
|
||||
#if USING_134
|
||||
#define __JBUFSIZE (4*sizeof(char)) // 4 Bytes, Don't need to save Acc, X, & Status Reg
|
||||
#elif USING_02
|
||||
#define __JBUFSIZE (4*sizeof(char))
|
||||
#elif USING_265
|
||||
#define __JBUFSIZE (3*sizeof(char)+3*2*sizeof(char)+sizeof(char)) // 10 Bytes, Don't need to save Acc, X, & Status Reg
|
||||
#elif USING_816
|
||||
#define __JBUFSIZE (3*sizeof(char)+3*2*sizeof(char)+sizeof(char))
|
||||
#else
|
||||
#asm
|
||||
EXIT "Not Valid Processor: Use -DUSING_816, -DUSING_02, etc. ! ! ! ! ! ! ! ! ! ! ! !"
|
||||
#endasm
|
||||
#endif
|
||||
|
||||
#ifndef __JBUFSIZE
|
||||
EXIT "Not Valid Processor: Use -DUSING_816, -DUSING_02, etc. ! ! ! ! ! ! ! ! ! ! ! !"
|
||||
#endif
|
||||
|
||||
|
||||
typedef char jmp_buf[__JBUFSIZE];
|
||||
|
||||
int setjmp(jmp_buf _env);
|
||||
void longjmp(jmp_buf _env, int _val);
|
||||
|
||||
#endif // End of __SETJMP_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File SETJMP.H */
|
||||
/**************************************************/
|
||||
|
||||
|
73
include/signal.h
Normal file
73
include/signal.h
Normal file
@ -0,0 +1,73 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: SIGNAL.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Signal Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Signal functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __SIGNAL_H
|
||||
#define __SIGNAL_H
|
||||
|
||||
/* atomic-access data type: */
|
||||
//typedef int sig_atomic_t; /* this type works nearly everywhere */
|
||||
|
||||
typedef char sig_atomic_t;
|
||||
|
||||
|
||||
#define SIGINT 1 /* Interrupt (IRQ)? - interactive attention signal */
|
||||
#define SIGTERM 2 /* Term - termination request */
|
||||
#define SIGABRT 3 /* Abort - abnormal termination */
|
||||
#define SIGFPE 4 /* Floating Point Signal(IRQ/COP) - erroneous arithmetic operation */
|
||||
#define SIGILL 5 /* Illegal - invalid function image */
|
||||
#define SIGSEGV 6 /* Segment violation - invalid access to storage */
|
||||
#define SIGEND 7 /* End of SIG #'s */
|
||||
|
||||
#define _NUMSIG 6
|
||||
#define _FSTSIG 1
|
||||
|
||||
#define SIG_DFL ((void (*)(int))0) /* default */
|
||||
#define SIG_IGN ((void (*)(int))1) /* ignore */
|
||||
#define SIG_ERR ((void (*)(int))-1) /* error return from signal() */
|
||||
|
||||
|
||||
void (*signal(int _sig, void (*_func)(int)))(int);
|
||||
int raise(int _sig);
|
||||
|
||||
|
||||
#define LOCK asm{sei;}
|
||||
#define UNLOCK asm{cli;}
|
||||
|
||||
#endif /* End of __SIGNAL_H */
|
||||
|
||||
/**************************************************/
|
||||
/* End of File SIGNAL.H */
|
||||
/**************************************************/
|
||||
|
51
include/stdarg.h
Normal file
51
include/stdarg.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDARG.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the
|
||||
* Standard Arguments Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Standard Arguments functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __STDARG_H
|
||||
#define __STDARG_H
|
||||
|
||||
#define _VA_LIST
|
||||
typedef char *va_list;
|
||||
|
||||
#define va_start(ap, parmN) ((ap) = (char *)(&parmN + 1))
|
||||
#define va_arg(ap, type) ((ap) += sizeof(type), ((type *)(ap))[-1])
|
||||
#define va_end(ap)
|
||||
|
||||
#endif // End of __STDARG_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File STDARG.H */
|
||||
/**************************************************/
|
||||
|
70
include/stdbool.h
Normal file
70
include/stdbool.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDBOOL.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Wide Character functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _STDBOOL_H
|
||||
#define _STDBOOL_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
typedef int _Bool; /* not built into pre-C99 compilers */
|
||||
|
||||
#define bool _Bool
|
||||
#define true 1
|
||||
#define false 0
|
||||
#define __bool_true_false_are_defined 1
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* End of _STDBOOL_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File STDBOOL.H
|
||||
***************************************/
|
88
include/stddef.h
Normal file
88
include/stddef.h
Normal file
@ -0,0 +1,88 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDDEF.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Std Defs.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Standard Defs.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __STDDEF_H
|
||||
#define __STDDEF_H
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
#endif
|
||||
|
||||
#ifndef _PTRDIFF_T
|
||||
#define _PTRDIFF_T
|
||||
#ifdef _LARGE_DATA
|
||||
typedef long ptrdiff_t;
|
||||
#else
|
||||
typedef short ptrdiff_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _WCHAR_T
|
||||
#define _WCHAR_T
|
||||
typedef unsigned char wchar_t;
|
||||
#endif
|
||||
|
||||
#ifndef _WINT_T
|
||||
#define _WINT_T
|
||||
typedef unsigned int wint_t; /* Wide character */
|
||||
#endif
|
||||
|
||||
#ifndef _WCTYPE_T
|
||||
#define _WCTYPE_T
|
||||
typedef unsigned int wctype_t; /* Wide */
|
||||
#endif
|
||||
|
||||
#ifndef _WEOF
|
||||
#define _WEOF
|
||||
#define WEOF (wint_t)(-1)
|
||||
#endif /* _WEOF */
|
||||
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef ERRNO
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
#define offsetof(type,memb) ((size_t)((unsigned long)&((type *)0)->memb))
|
||||
|
||||
#endif // End of __STDDEF_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File STDDEF.H */
|
||||
/**************************************************/
|
||||
|
92
include/stdint.h
Normal file
92
include/stdint.h
Normal file
@ -0,0 +1,92 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDINT.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Standard Int Types.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Standard Int Types.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _STDINT_H
|
||||
#define _STDINT_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
#ifndef uint32_t
|
||||
|
||||
#if SIZEOF_INT == 4
|
||||
#define uint32_t unsigned int
|
||||
#define int32_t int
|
||||
#elif SIZEOF_SHORT == 4
|
||||
#define uint32_t unsigned short
|
||||
#define int32_t short
|
||||
#elif SIZEOF_LONG == 4
|
||||
#define uint32_t unsigned long
|
||||
#define int32_t long
|
||||
#endif
|
||||
|
||||
#endif/* !uint32_t */
|
||||
|
||||
#ifndef uint16_t
|
||||
|
||||
#if SIZEOF_INT == 2
|
||||
#define uint16_t unsigned int
|
||||
#define int16_t int
|
||||
#elif SIZEOF_SHORT == 2
|
||||
#define uint16_t unsigned short
|
||||
#define int16_t short
|
||||
#elif SIZEOF_LONG == 2
|
||||
#define uint16_t unsigned long
|
||||
#define int16_t long
|
||||
#endif
|
||||
|
||||
#endif/* !uint16_t */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* End of _STDINT_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File STDINT.H
|
||||
***************************************/
|
219
include/stdio.h
Normal file
219
include/stdio.h
Normal file
@ -0,0 +1,219 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDIO.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the
|
||||
* Standard I/O Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Standard I/O functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __STDIO_H
|
||||
#define __STDIO_H
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
|
||||
# ifndef _SIZE_T
|
||||
# define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
# endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
#ifndef FARNULL
|
||||
#define FARNULL ((void far *)0)
|
||||
#endif
|
||||
|
||||
|
||||
#define BUFSIZ 1024
|
||||
|
||||
#define EOF (-1)
|
||||
|
||||
#define L_tmpnam 40
|
||||
#define FOPEN_MAX 20 /* must agree with FCntl.h */
|
||||
#define FILENAME_MAX 126
|
||||
#define TMP_MAX 25
|
||||
//#define TMP_MAX 32767
|
||||
|
||||
|
||||
#define SEEK_SET 0 /* from beginning of file */
|
||||
#define SEEK_CUR 1 /* from current position */
|
||||
#define SEEK_END 2 /* from end of file */
|
||||
|
||||
#define stdin (&_iob[0])
|
||||
#define stdout (&_iob[1])
|
||||
#define stderr (&_iob[2])
|
||||
#define stdaux (&_iob[3])
|
||||
#define stdprn (&_iob[4])
|
||||
|
||||
typedef long int fpos_t;
|
||||
|
||||
typedef struct __stdio {
|
||||
unsigned char *_bp; /* current position in buffer */
|
||||
unsigned char *_bend; /* last character in buffer + 1 */
|
||||
unsigned char *_buff; /* address of buffer */
|
||||
unsigned short _flags; /* open mode, etc. */
|
||||
char _unit; /* fd returned by open */
|
||||
unsigned char _bytbuf; /* single byte buffer for unbuffered streams */
|
||||
size_t _buflen; /* length of buffer */
|
||||
unsigned short _tmpnum; /* name of file for temporaries */
|
||||
} FILE;
|
||||
extern FILE _iob[];
|
||||
|
||||
|
||||
|
||||
#define _IOMYBUF 0x0001 /* malloced buffer */
|
||||
#define _IOEOF 0x0002 /* end-of-file encountered */
|
||||
#define _IOERR 0x0004 /* error occurred */
|
||||
#define _IOSTRNG 0x0008 /* special string stream */
|
||||
#define _IOBIN 0x0010 /* file is binary ("b") */
|
||||
#define _IOLBF 0x0020 /* line buffered */
|
||||
#define _IOFBF 0x0040 /* fully buffered */
|
||||
#define _IONBF 0x0080 /* completely unbuffered */
|
||||
#define _IOCON 0x0100 /* console device */
|
||||
#define _IOR 0x0200 /* stream opened in read mode */
|
||||
#define _IOW 0x0400 /* stream opened in write mode */
|
||||
#define _IORW 0x0800 /* stream opened in update mode */
|
||||
#define _IOUNG 0x1000 /* ungetc was called */
|
||||
#define _IOSYNC 0x2000 /* MPW compatibility */
|
||||
#define _IODIRTY 0x4000 /* buffer has been written */
|
||||
|
||||
int _format(FILE *_stream, const char *format, va_list varg); // Special Internal Functions for pharsing
|
||||
int _scan(FILE *_stream, const char *format, va_list varg); // Special Internal Functions for pharsing
|
||||
|
||||
void clearerr(FILE *_stream); //
|
||||
int fclose(FILE *_stream); //
|
||||
int feof(FILE *_stream); //
|
||||
int ferror(FILE *_stream); //
|
||||
int fflush(FILE *_stream); //
|
||||
int fgetc(FILE *_stream);
|
||||
int fgetpos(FILE *_stream, fpos_t *_pos); //
|
||||
char *fgets(char *_s, int _n, FILE *_stream); //
|
||||
FILE *fopen(const char *_filename, const char *_mode);
|
||||
int fprintf(FILE *_stream, const char *format, ...);
|
||||
int fputc(int _c, FILE *_stream);
|
||||
int fputs(const char *_s, FILE *_stream);
|
||||
size_t fread(void *_ptr, size_t _size, size_t _nmemb, FILE *_stream);
|
||||
FILE *freopen(const char *_filename, const char *_mode, FILE *_stream);
|
||||
int fscanf(FILE *_stream, const char *format, ...);
|
||||
int fseek(FILE *_stream, long int _offset, int _whence);
|
||||
int fsetpos(FILE *_stream, const fpos_t *_pos);
|
||||
long ftell(FILE *_stream);
|
||||
size_t fwrite(const void *_ptr, size_t _size, size_t _nmemb, FILE *_stream);
|
||||
int getc(FILE *_stream);
|
||||
int getchar( void);
|
||||
char *gets(char *_s);
|
||||
void perror(const char *_s);
|
||||
int printf(const char *_format, ...);
|
||||
int putc(int _c, FILE *_stream);
|
||||
int putchar( int c);
|
||||
int puts(const char *_s);
|
||||
int remove(const char *_filename);
|
||||
int rename(const char *_old, const char *_new);
|
||||
void rewind(FILE *_stream);
|
||||
int scanf(const char *_format, ...);
|
||||
void setbuf(FILE *_stream, char *_buf);
|
||||
int setvbuf(FILE *_stream, char *_buf, int _mode, size_t _size);
|
||||
//int snprintf (char *str, size_t count, const char *format, ...);
|
||||
int sprintf(char *str, const char *format, ...);
|
||||
int sscanf(const char *str, const char *format, ...);
|
||||
FILE *tmpfile(void);
|
||||
char *tmpnam(char *_s);
|
||||
int ungetc(int _c, FILE *_stream);
|
||||
int vfprintf(FILE *_stream, const char *format, char *_arg);
|
||||
//int vfscanf(FILE *stream, const char *format, va_list ap);
|
||||
int vprintf(const char *_format, char *_arg);
|
||||
//int vscanf(const char *format, va_list ap);
|
||||
//int vsnprintf(char *str, size_t size, const char *format, va_list ap);
|
||||
int vsprintf(char *str, const char *format, char *arg);
|
||||
//int vsscanf(const char *str, const char *format, va_list args); //Similar to sscanf with the variable argument list specified directly as for vprintf.
|
||||
|
||||
|
||||
//#ifndef STRING
|
||||
//typedef struct {
|
||||
// int length;
|
||||
// char string[80];
|
||||
//} STRING;
|
||||
//#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int _filbuf(FILE *);
|
||||
int _flsbuf(FILE *, int);
|
||||
|
||||
#ifdef __C_MACROS__
|
||||
#define getc(fp) ((fp)->_bp < (fp)->_bend ? *(fp)->_bp++ :_filbuf((fp)))
|
||||
#define putc(c,fp) ((fp)->_bp < (fp)->_bend ? *(fp)->_bp++ = (c) : \
|
||||
_flsbuf((fp),(int)(unsigned char)(c)))
|
||||
#define getchar() getc(stdin)
|
||||
#define putchar(c) putc((c), stdout)
|
||||
#define clearerr(fp) ((void)((fp)->_flags &= ~(_IOERR|_IOEOF)))
|
||||
#define feof(fp) ((fp)->_flags&_IOEOF)
|
||||
#define ferror(fp) ((fp)->_flags&_IOERR)
|
||||
#endif
|
||||
|
||||
|
||||
/*****************************/
|
||||
/* NON ANSI C functions */
|
||||
/* System V Berkley */
|
||||
/* UNIX/Linux */
|
||||
/*****************************/
|
||||
|
||||
|
||||
/*********************************/
|
||||
/* NON ANSI C user-visible stuff */
|
||||
/*********************************/
|
||||
//int fcloseall(void);
|
||||
FILE *fdopen(int, const char *);
|
||||
#define fileno(fp) ((int)(fp)->_unit)
|
||||
//int flushall(void);
|
||||
//int fputchar(int c);
|
||||
//int getw(FILE *_stream);
|
||||
//int putw(int _w, FILE *_stream);
|
||||
//int rmtmp(void);
|
||||
//char *tempnam(char *dir, char *prename);
|
||||
//int unlink(char *filename);
|
||||
//ungetch(int c); // Reverse action of getch (unbuffered input from keyboard)
|
||||
|
||||
|
||||
#define puterr(c) (putc((c),stderr))
|
||||
|
||||
|
||||
|
||||
#endif /* _STDIO_H */
|
||||
|
||||
/**************************************************/
|
||||
/* End of File STDIO.H */
|
||||
/**************************************************/
|
||||
|
205
include/stdlib.h
Normal file
205
include/stdlib.h
Normal file
@ -0,0 +1,205 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STDLIB.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the
|
||||
* Standard Library Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Standard Library functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 07/13/2004 Removed ltostr, will add later & lltostr
|
||||
* 0x/xx/2004
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __STDLIB_H
|
||||
#define __STDLIB_H
|
||||
|
||||
|
||||
#ifndef _WCHAR_T
|
||||
#include <stddef.h> // Define size_t, wchar_t, NULL
|
||||
#endif
|
||||
|
||||
|
||||
# ifndef ERANGE
|
||||
#define ERANGE 13
|
||||
# endif
|
||||
|
||||
|
||||
#define EXIT_FAILURE (-1)
|
||||
#define EXIT_SUCCESS 0
|
||||
|
||||
#ifdef __FLOATS__
|
||||
#define HUGE_VAL 1.797693134862316E+308
|
||||
#endif
|
||||
|
||||
#define RAND_MAX 32767
|
||||
|
||||
#define MB_CUR_MAX 1
|
||||
#define MB_LEN_MAX 1
|
||||
|
||||
/* quotient and remainder for div() */
|
||||
typedef struct {
|
||||
int quot;
|
||||
int rem;
|
||||
} div_t;
|
||||
|
||||
|
||||
/* quotient and remainder for ldiv() */
|
||||
typedef struct {
|
||||
long quot;
|
||||
long rem;
|
||||
} ldiv_t;
|
||||
|
||||
/* quotient and remainder for lldiv() */
|
||||
/*
|
||||
typedef struct {
|
||||
long long quot;
|
||||
long long rem;
|
||||
} lldiv_t;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
struct int_sqrt {
|
||||
unsigned sqrt;
|
||||
unsigned frac;
|
||||
};
|
||||
|
||||
|
||||
void abort(void);
|
||||
int abs(int _j);
|
||||
int atexit(void (*_func)(void));
|
||||
double atof(const char *); // Ascii to Float
|
||||
int atoi(const char *_nptr); // Ascii to Integer
|
||||
long atol(const char *_nptr); // Converts string pointed to by nptr to long int representation
|
||||
/*
|
||||
long long int atoll(const char *_nptr); // Converts string pointed to by nptr to long int representation
|
||||
*/
|
||||
void *bsearch(const void *_key, const void *_base, size_t _nmemb, size_t _size,
|
||||
int (*_compar)(const void *, const void *));
|
||||
void *calloc(size_t _nmemb, size_t _size);
|
||||
div_t div(int _numer, int _denom);
|
||||
void exit(int _status);
|
||||
void free(void *_ptr);
|
||||
char *getenv(const char *_name);
|
||||
long labs(long int _j);
|
||||
//long long int llabs( long long int j);
|
||||
ldiv_t ldiv(long int _numer, long int _denom);
|
||||
//lldiv_t lldiv(long long int _numer, long long int _denom);
|
||||
void *malloc(size_t _size);
|
||||
int mblen(const char *_s, size_t _n);
|
||||
size_t mbstowcs(wchar_t *_pwcs, const char *_s, size_t _n);
|
||||
int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
|
||||
void qsort(void *_base, size_t _nmemb, size_t _size,
|
||||
int (*_compar)(const void *, const void *));
|
||||
int rand(void);
|
||||
void *realloc(void *_ptr, size_t _size);
|
||||
void srand(unsigned int _seed);
|
||||
|
||||
#define strtodf strtof // strtof is the same as strtodf
|
||||
|
||||
double strtod(const char *_nptr, char **_endptr); // converts the string pointed to a double
|
||||
double strtodf(const char *_nptr, char **_endptr); // same as strtodf, but for float
|
||||
|
||||
long double strtold(const char *_nptr, char **_endptr); // same as strtod, but for long double
|
||||
long strtol(const char *_nptr, char **_endptr, int _base);
|
||||
unsigned long strtoul(const char *_nptr, char **_endptr, int _base);
|
||||
/*
|
||||
unsigned long long strtoull(const char *_nptr, char **_endptr, int _base);
|
||||
*/
|
||||
int system(const char *_string);
|
||||
int wctomb(char *_s, wchar_t _wchar);
|
||||
size_t wcstombs(char *_s, const wchar_t *_pwcs, size_t _n);
|
||||
|
||||
|
||||
|
||||
/*****************************/
|
||||
/* NON ANSI C functions */
|
||||
/* System V Berkley */
|
||||
/* UNIX/Linux */
|
||||
/*****************************/
|
||||
|
||||
int putenv (char *string);
|
||||
int setenv (char *name, char *value, int replace);
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************************/
|
||||
/* NON ANSI C functions */
|
||||
/*****************************/
|
||||
//int _atoi(ptr); /* decode an integer */
|
||||
int atoib(char *s, int b); /* Convert s to "unsigned" integer in base b. */
|
||||
int dtoi(char *decstr, int *); /* convert signed decimal string to integer number */
|
||||
void ftoa(double _val, char *_buf, int, int);
|
||||
//int isatty(int ); /* Return "true" if fd is a device, else "false" */
|
||||
int iscons(int ); /* kludge. need a way to tell what iocb is open on */
|
||||
void itoa(int value, char string[], int radix); /* Converts integer to ASCII string */
|
||||
int itoab(int , char *, int ); /* Convert "unsigned" n to characters in s using base b */
|
||||
char *itoo(int , char str[], int ); /* converts number to octal string of length sz */
|
||||
char *ltoa(long val, char *buf, int base); /* convert a long int to the specified numeric base, from 2 to 36. */
|
||||
//char *ltostr(long num, char *string, size_t max_chars, unsigned base); /* Convert a long int to a String */
|
||||
|
||||
int otoi(char *, int *); /* convert unsigned octal string to integer number */
|
||||
int _parseline(char *line, int *); /* line-parsing routine */
|
||||
int round_div(int n, int d); /* Rounded integer division */
|
||||
long round_ldiv(long n, long d); /* Rounded long integer division */
|
||||
|
||||
//char *ultoa(unsigned long value, char *digits, int base); /* Convert Unsigned Long (32 bits) to ASCII string */
|
||||
//void usqrt(unsigned long x, struct int_sqrts *q); /* squar root of a "long" integer */
|
||||
int utoi(char *, int *); /* convert unsigned decimal string to integer number */
|
||||
int xtoi(char *, int *); /* convert hex string to integer number */
|
||||
|
||||
|
||||
|
||||
/*********************************************/
|
||||
/* Should be in MALLOC.H or ALLOC.H */
|
||||
/*********************************************/
|
||||
/************************/
|
||||
/* NON ANSI C functions */
|
||||
/************************/
|
||||
#ifndef _ANSI
|
||||
void far *farcalloc(unsigned long _nmemb, unsigned long _size);
|
||||
void farfree(void far *_ptr);
|
||||
void far *farmalloc(unsigned long _size);
|
||||
void far *farrealloc(void far *_ptr, unsigned long _size);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __FLOATS__
|
||||
long double strtold(const char *_nptr, char **_endptr);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __STDLIB_H */
|
||||
|
||||
/**************************************************/
|
||||
/* End of File STDLIB.H */
|
||||
/**************************************************/
|
||||
|
134
include/string.h
Normal file
134
include/string.h
Normal file
@ -0,0 +1,134 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: STRING.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the String Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for String functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 31,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/31/2004 Initial
|
||||
* 07/13/2004 Removed ltostr, will add later & lltostr
|
||||
* 0x/xx/2004
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __STRING_H
|
||||
#define __STRING_H
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
#ifndef Boolean_T
|
||||
typedef enum {Error_ = -1, Success_, False_ = 0, True_} Boolean_T;
|
||||
#endif
|
||||
|
||||
|
||||
void *memchr(const void *_s, int _c, size_t _n); // Returns a pointer to the first occurrence of c (converted to an unsigned char) in the first n bytes
|
||||
int memcmp(const void *_s1, const void *_s2, size_t _n); // Compares n bytes of two regions of memory, treating each byte as an unsigned character
|
||||
void *memcpy(void *_dst, const void *_src, size_t _num); // Copies num bytes from src buffer to memory location pointed by dst
|
||||
void *memmove(void *_dst,const void *_src, size_t _n); // Copies n bytes from memory areas src to dst
|
||||
void *memset(void *_s, int _c, size_t _n); // Sets the first n bytes in memory area s to the value of c
|
||||
|
||||
char *strcat(char *_dst, const char *_src); // Appends the src string to the dst string overwriting the `\0' character at the end of dest, and then adds a terminating `\0' character
|
||||
char *strchr(const char *_s, int _c); // Locates the first occurrence of c, cast to char, in the string pointed to by s
|
||||
int strcmp(const char *_s1, const char *_s2); // Compares the string pointed to by s1 to the string pointed to by s2
|
||||
int strcoll(const char *_s1, const char *_s2); // Compares the string pointed to by s1 to the string pointed to by s2, both interpreted as appropriate to the LC_COLLATE category of the current locale
|
||||
char *strcpy(char *_dst, const char *_src); // Copies the string pointed to by src (including the terminating null character) into the array pointed to by dst. If copying occurs between objects that overlap, the behavior is undefined.
|
||||
size_t strcspn(const char *_s1, const char *_s2); // Spans the initial part of the null-terminated string s1 as long as the characters from s do not occur in string s2
|
||||
char *strerror(int _errnum); // Return string describing error code
|
||||
//size_t strftime(char *_s, size_t _maxsize, const char *_format,
|
||||
// const struct tm *_timeptr); /* Much like a sprintf for time/date output */
|
||||
size_t strlen(const char *_s); // Caclulates the length of a string _s
|
||||
char *strncat(char *_dst, const char *_src, size_t _n); // Concatenates src to the end of dst, where n is the Max # of characters
|
||||
int strncmp(const char *_s1, const char *_s2, size_t _n); // Compares s1 with s2 case insensetive, comparing n characters
|
||||
char *strncpy(char *_dst, const char *_src, size_t _n); // Copies up to n characters, including the terminating null character, from the string pointed to by src into the buffer pointed to by dst.
|
||||
char *strpbrk(const char *_s1, const char *_s2); // Search a string for any of a set of characters
|
||||
char *strrchr(const char *_s, int _c); // Locates the last occurrence of c, cast to char, in the string pointed to by s
|
||||
size_t strspn(const char *_s1, const char *_s2); // Determines the span (i.e. length) of the initial substring within the string
|
||||
char *strstr(const char *_s1, const char *_s2); // Locate first occurrence of a substring within a string
|
||||
char *strtok(char *_s1, const char *_s2); // Find the next token in s1(strToken). The set of characters in s2(strDelimit) specifies possible delimiters of the token to be found in strToken
|
||||
size_t strxfrm(char *_s1, const char *_s2, size_t _n); // Transforms the string pointed to by s2 and places the resulting string into the array pointed to by s1
|
||||
|
||||
|
||||
|
||||
|
||||
/********************************************/
|
||||
/* NON ANSI C functions */
|
||||
/********************************************/
|
||||
int stricmp(char *str1, char *str2); // Compare strings ignoring case
|
||||
|
||||
#define strsave(s) strdup(s) // Makes a copy of the string pointed to by s
|
||||
#define rindex(s,c) strrchr(s,c) // Locates the last occurrence of c, cast to char, in the string pointed to by s
|
||||
#define index(s,c) strchr(s,c) // Locates the first occurrence of c, cast to char, in the string pointed to by s
|
||||
#define strcmpi(s1, s2) stricmp(s1, s2) // Compare strings s1 and s2, ignoring case
|
||||
#define strncmp(s1, s2, n) strnicmp(s1, s2, n) // Compares s1 with s2 case insensetive, comparing n characters
|
||||
|
||||
void bzero(char *ptr, int nbytes); /* Copies n bytes, each with a value of zero, into string s */
|
||||
void bcopy(const void *src, void *dst, int n); /* Copies n bytes, from src into string dst */
|
||||
|
||||
int getopt(int argc, char **argv, char *opts); /* Parses command lines */
|
||||
|
||||
char *itoo(int nbr, char str[], int sz);
|
||||
//char *ltostr(long num, char *string, size_t max_chars, unsigned base); /* Convert a long int to a String */
|
||||
|
||||
void *memccpy(void *_dst, const void *_src, int _c, size_t _n); /* Copies at most num bytes from source to dest, stopping if the character ch is copied */
|
||||
int memicmp(void *addr1, void *addr2, size_t n); /* Compares the first cnt bytes of buf1 and buf2 without regard to the case of letters in the two buffers */
|
||||
void memrev(char *buf, size_t count); /* Reverse "count" bytes starting at "buf" (exchange two adjacent areas of storage which might be of two different lengths) */
|
||||
|
||||
char *sstrdel(char *s, ...); /* Delete multiple substrings */
|
||||
char *str27seg(char *string); /* Convert numeric strings to 7-segment LED strings */
|
||||
char *strchcat(char *string, int ch, size_t buflen); /* Append a character to a string */
|
||||
char *strdel(char *str, size_t posn, size_t len); /* Removes specified characters from a string */
|
||||
char *strdelch(char *string, const char *lose); /* Removes specified character(s) from a string */
|
||||
|
||||
char *strdup(char *_s); /* Makes a copy of the string pointed to by s */
|
||||
char *stristr(char *str1, char *str2); /* Location of 1st occurance of str2 within str1 */
|
||||
char *strlwr(char *str); /* Convert only Upper case Alpha characters to lower case */
|
||||
int strnicmp(char *str1, char *str2, size_t n); /* Converts any uppercase letters in the given null-terminated string to lowercase. Other characters are not affected */
|
||||
char *strnset(char *str, int c, size_t n); /* Sets a specified number of characters in a string to a given character */
|
||||
char *strrev(char *str); /* Reverse the order of chatacters in a string */
|
||||
char *strrset (char *p, char *set); /* Returns a ptr to last char from set in p, else 0 */
|
||||
char *strset(char *str, int c); /* Fills the string pointed to by str with the character c */
|
||||
void strsort(char **v, unsigned n); /* Shell sort an array of string pointers via strcmp() */
|
||||
char *strupr(char *str); /* Convert only lower case Alpha characters to Upper case */
|
||||
void swapmem(void *_s1, void *_s2, size_t _n); /* Swaps n characters between the object pointed to by s1 and the object pointed to by s2 */
|
||||
|
||||
|
||||
Boolean_T xstrcmp(const char *pat, const char *str); /* Case Sensitve Simple string pattern matching functions using wildcards ('?' & '*'). */
|
||||
Boolean_T xstricmp(const char *pat, const char *str); /* Case Insensitve Simple string pattern matching functions using wildcards ('?' & '*'). */
|
||||
|
||||
|
||||
#endif /* _STRING_H */
|
||||
|
||||
/**************************************************/
|
||||
/* End of File STRING.H */
|
||||
/**************************************************/
|
||||
|
234
include/sys/flash_sk_io.h
Normal file
234
include/sys/flash_sk_io.h
Normal file
@ -0,0 +1,234 @@
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: Flash_SK_IO.ch
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for .
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Feb 05,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 02/05/2004 Initial
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef Flash_SK_IO_H
|
||||
#define Flash_SK_IO_H
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*============================= FUNCTION PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define CLI asm{cli;} /* enable interrupt response */
|
||||
#define SEI asm{sei;} /* disable it */
|
||||
|
||||
#define BRK(n) asm{ brk n;} /* 65C02/65c816-BRK */
|
||||
|
||||
#define COP(n) asm{ cop n;} /* 65c816-COP */
|
||||
|
||||
|
||||
//#define EnableIRQ(n)\
|
||||
// asm(" lda #$80\n"\
|
||||
// " tsb $fd01+"#n"*4\n") /* enable interrupt of timer n */
|
||||
|
||||
//#define DisableIRQ(n)\
|
||||
// asm(" lda #$80\n"\
|
||||
// " trb $fd01+"#n"*4\n") /* disable it */
|
||||
|
||||
|
||||
struct _VIA1{
|
||||
uchar ORB_IRB; /* Input/Output Reg 'B' */
|
||||
uchar ORA_IRA; /* Input/Output Reg 'A' */
|
||||
uchar DDRB; /* Data Direction Reg 'B' */
|
||||
uchar DDRA; /* Data Direction Reg 'A' */
|
||||
uchar T1CLO; /* Timer #1 Counter Low */
|
||||
uchar T1CHI; /* Timer #1 Counter High */
|
||||
uchar T1LLO; /* Timer #1 Latch Low */
|
||||
uchar T1LHI; /* Timer #1 Latch High */
|
||||
uchar T2CLO; /* Timer #2 Counter Low */
|
||||
uchar T2CHI; /* Timer #2 Counter High */
|
||||
uchar SR; /* Shift Reg */
|
||||
uchar ACR; /* Auxiliary Control Reg */
|
||||
uchar PCR; /* Peripheral Control Reg */
|
||||
uchar IFR; /* Interrupt Flag Reg */
|
||||
uchar IER; /* Interrupt Enable Reg */
|
||||
uchar ORANH_IRANH; /* Input Reg 'A' No Handshake */
|
||||
};
|
||||
|
||||
|
||||
struct _VIA2{
|
||||
uchar ORB_IRB; /* Input/Output Reg 'B' */
|
||||
uchar ORA_IRA; /* Input/Output Reg 'A' */
|
||||
uchar DDRB; /* Data Direction Reg 'B' */
|
||||
uchar DDRA; /* Data Direction Reg 'A' */
|
||||
uchar T1CLO; /* Timer #1 Counter Low */
|
||||
uchar T1CHI; /* Timer #1 Counter High */
|
||||
uchar T1LLO; /* Timer #1 Latch Low */
|
||||
uchar T1LHI; /* Timer #1 Latch High */
|
||||
uchar T2CLO; /* Timer #2 Counter Low */
|
||||
uchar T2CHI; /* Timer #2 Counter High */
|
||||
uchar SR; /* Shift Reg */
|
||||
uchar ACR; /* Auxiliary Control Reg */
|
||||
uchar PCR; /* Peripheral Control Reg */
|
||||
uchar IFR; /* Interrupt Flag Reg */
|
||||
uchar IER; /* Interrupt Enable Reg */
|
||||
uchar ORANH_IRANH; /* Input Reg 'A' No Handshake */
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct _UART16c450{
|
||||
uchar RHR_THR; /* Transmit/Receive Holding Register */
|
||||
uchar IER; /* Interrupt Enable Register */
|
||||
uchar FCR_ISR; /* FIFO control Register/Interrupt Status Register */
|
||||
uchar LCR; /* Interrupt Status Register */
|
||||
uchar MCR; /* Modem Control Register */
|
||||
uchar LSR; /* Line Status Register */
|
||||
uchar MSR; /* Modem Status Register */
|
||||
uchar SCR; /* Scratch pad Register */
|
||||
};
|
||||
|
||||
#define clock 1.84320E+06
|
||||
//#define clock 3.686400e6
|
||||
//#define clock 6.144000e6
|
||||
//#define clock 7.372800e6
|
||||
//#define clock 1.4743600e7
|
||||
|
||||
// UART 16c450 Type Baud Rates
|
||||
#define _COM_300_ (clock/(16 * 300))-1
|
||||
#define _COM_1200_ (clock/(16 * 1200))-1
|
||||
#define _COM_2400_ (clock/(16 * 2400))-1
|
||||
#define _COM_9600_ (clock/(16 * 9600))-1
|
||||
#define _COM_19K_ (clock/(16 * 19200))-1
|
||||
#define _COM_38K_ (clock/(16 * 38400))-1
|
||||
#define _COM_56K_ (clock/(16 * 57600))-1
|
||||
#define _COM_115K_ (clock/(16 * 115200))-1
|
||||
|
||||
//* Parity
|
||||
#define _COM_NOPARITY_ 0
|
||||
#define _COM_ODDPARITY_ 1
|
||||
#define _COM_EVENPARITY_ 2
|
||||
|
||||
//* Stopbits
|
||||
#define _COM_STOP1_ 0
|
||||
#define _COM_STOP2_ 1
|
||||
#define _COM_STOP1_5_ 1
|
||||
|
||||
//* word length
|
||||
#define _COM_CHR5_ 0
|
||||
#define _COM_CHR6_ 1
|
||||
#define _COM_CHR7_ 2
|
||||
#define _COM_CHR8_ 3
|
||||
|
||||
//* word Buffer length
|
||||
#define _COM_FIFO1_ 0
|
||||
#define _COM_FIFO4_ 1
|
||||
#define _COM_FIFO8_ 2
|
||||
#define _COM_FIFO14_ 3
|
||||
|
||||
|
||||
|
||||
|
||||
struct _UART51{
|
||||
uchar rxd_txd; /* Receiver register */
|
||||
uchar serial_status; /* xmit & receive status reg */
|
||||
uchar serial_command; /* command register */
|
||||
uchar serial_control; /* rate & size control */
|
||||
};
|
||||
|
||||
#define RXD_READY 0x08 /* receiver ready bit mask */
|
||||
#define TXD_READY 0x10 /* transmitter ready bit mask */
|
||||
#define RXD_INT_ENABLE 0x02 /* receiver interrupt enable bit mask */
|
||||
#define TXD_INT_ENABLE 0x04 /* transmitter interrupt enable bit mask */
|
||||
#define RXD_ERROR 0x07 /* frame, overrun & parity error flags */
|
||||
|
||||
#define clock51 1.84320E+06
|
||||
//#define clock51 3.686400e6
|
||||
//#define clock51 6.144000e6
|
||||
//#define clock51 7.372800e6
|
||||
//#define clock51 1.4743600e7
|
||||
|
||||
// UART W65c51 Type Baud Rates
|
||||
#define _COM51_300_ (clock51/(16 * 300))
|
||||
#define _COM51_1200_ (clock51/(16 * 1200))
|
||||
#define _COM51_2400_ (clock51/(16 * 2400))
|
||||
#define _COM51_9600_ (clock51/(16 * 9600))
|
||||
#define _COM51_19K_ (clock51/(16 * 19200))
|
||||
#define _COM51_38K_ (clock51/(16 * 38400))
|
||||
#define _COM51_56K_ (clock51/(16 * 57600))
|
||||
#define _COM51_115K_ (clock51/(16 * 115200))
|
||||
|
||||
|
||||
|
||||
struct _134_TOD_Clock{
|
||||
uchar tenthsec;
|
||||
uchar sec;
|
||||
uchar min;
|
||||
uchar hr;
|
||||
uchar day;
|
||||
uchar month;
|
||||
uchar yr;
|
||||
uchar daywk:3;
|
||||
uchar nu1:5;
|
||||
uchar daylit:1;
|
||||
uchar nu2:7;
|
||||
};
|
||||
|
||||
struct _Maxim_TOD_Clock{
|
||||
uchar sec;
|
||||
uchar min;
|
||||
uchar hr;
|
||||
uchar day;
|
||||
uchar month;
|
||||
uchar yr;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct _I2C{ /* One byte of the VIA */
|
||||
uchar clock:1;
|
||||
uchar sin:1;
|
||||
uchar sout:1;
|
||||
uchar nu:5;
|
||||
};
|
||||
|
||||
#endif /* Flash_SK_IO_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
|
105
include/sys/sk_io.h
Normal file
105
include/sys/sk_io.h
Normal file
@ -0,0 +1,105 @@
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: SK_IO.ch
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for .
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: Feb 05,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 02/05/2004 Initial
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef SK_IO_H
|
||||
#define SK_IO_H
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*================================== TYPES =====================================
|
||||
*/
|
||||
|
||||
/* None */
|
||||
|
||||
/*
|
||||
*============================= FUNCTION PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define CLI asm{cli;} /* enable interrupt response */
|
||||
#define SEI asm{sei;} /* disable it */
|
||||
|
||||
#define BRK(n) asm{ brk n;} /* 65C02/65c816-BRK */
|
||||
|
||||
#define COP(n) asm{ cop n;} /* 65c816-COP */
|
||||
|
||||
|
||||
//#define EnableIRQ(n)\
|
||||
// asm(" lda #$80\n"\
|
||||
// " tsb $fd01+"#n"*4\n") /* enable interrupt of timer n */
|
||||
|
||||
//#define DisableIRQ(n)\
|
||||
// asm(" lda #$80\n"\
|
||||
// " trb $fd01+"#n"*4\n") /* disable it */
|
||||
|
||||
|
||||
struct _VIA1{
|
||||
uchar ORB_IRB; /* Input/Output Reg 'B' */
|
||||
uchar ORA_IRA; /* Input/Output Reg 'A' */
|
||||
uchar DDRB; /* Data Direction Reg 'B' */
|
||||
uchar DDRA; /* Data Direction Reg 'A' */
|
||||
uchar T1CLO; /* Timer #1 Counter Low */
|
||||
uchar T1CHI; /* Timer #1 Counter High */
|
||||
uchar T1LLO; /* Timer #1 Latch Low */
|
||||
uchar T1LHI; /* Timer #1 Latch High */
|
||||
uchar T2CLO; /* Timer #2 Counter Low */
|
||||
uchar T2CHI; /* Timer #2 Counter High */
|
||||
uchar SR; /* Shift Reg */
|
||||
uchar ACR; /* Auxiliary Control Reg */
|
||||
uchar PCR; /* Peripheral Control Reg */
|
||||
uchar IFR; /* Interrupt Flag Reg */
|
||||
uchar IER; /* Interrupt Enable Reg */
|
||||
uchar ORANH_IRANH; /* Input Reg 'A' No Handshake */
|
||||
};
|
||||
|
||||
|
||||
struct _I2C{ /* One byte of the VIA */
|
||||
uchar clock:1;
|
||||
uchar sin:1;
|
||||
uchar sout:1;
|
||||
uchar nu:5;
|
||||
};
|
||||
|
||||
#endif /* SK_IO_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
|
170
include/sys/types.h
Normal file
170
include/sys/types.h
Normal file
@ -0,0 +1,170 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: sys\types.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the General Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for General purpose functions.
|
||||
* The <sys\types.h> header contains important data type definitions.
|
||||
* It is considered good programming practice to use these definitions,
|
||||
* instead of the underlying base type. By convention, all type names end
|
||||
* with _t.
|
||||
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 27,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/27/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef _TYPES_H
|
||||
#define _TYPES_H
|
||||
|
||||
|
||||
/* The type size_t holds all results of the sizeof operator. At first glance,
|
||||
* it seems obvious that it should be an unsigned int, but this is not always
|
||||
* the case. For example, MINIX-ST (68000) has 32-bit pointers and 16-bit
|
||||
* integers. When one asks for the size of a 70K struct or array, the result
|
||||
* requires 17 bits to express, so size_t must be a long type. The type
|
||||
* ssize_t is the signed version of size_t.
|
||||
*/
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned int size_t;
|
||||
#endif
|
||||
|
||||
#ifndef _SSIZE_T
|
||||
#define _SSIZE_T
|
||||
typedef int ssize_t;
|
||||
#endif
|
||||
|
||||
#ifndef _TIME_T
|
||||
#define _TIME_T
|
||||
typedef long time_t; /* time in sec since 1 Jan 1970 0000 GMT */
|
||||
#endif
|
||||
|
||||
#ifndef _CLOCK_T
|
||||
#define _CLOCK_T
|
||||
typedef long clock_t; /* unit for system accounting */
|
||||
#endif
|
||||
|
||||
#ifndef _SIGSET_T
|
||||
#define _SIGSET_T
|
||||
typedef unsigned long sigset_t;
|
||||
#endif
|
||||
|
||||
/* Types used in disk, inode, etc. data structures. */
|
||||
typedef short dev_t; /* holds (major|minor) device pair */
|
||||
typedef char gid_t; /* group id */
|
||||
typedef unsigned short ino_t; /* i-node number */
|
||||
typedef unsigned short mode_t; /* file type and permissions bits */
|
||||
typedef char nlink_t; /* number of links to a file */
|
||||
typedef unsigned long off_t; /* offset within a file */
|
||||
typedef int pid_t; /* process id (must be signed) */
|
||||
typedef short uid_t; /* user id */
|
||||
typedef unsigned long zone_t; /* zone number */
|
||||
typedef unsigned long block_t; /* block number */
|
||||
typedef unsigned long bit_t; /* bit number in a bit map */
|
||||
typedef unsigned short zone1_t; /* zone number for V1 file systems */
|
||||
typedef unsigned short bitchunk_t; /* collection of bits in a bitmap */
|
||||
|
||||
typedef unsigned char u8_t; /* 8 bit type */
|
||||
typedef unsigned short u16_t; /* 16 bit type */
|
||||
typedef unsigned long u32_t; /* 32 bit type */
|
||||
//typedef unsigned long long u64_t; /* 64 bit type */
|
||||
|
||||
typedef unsigned char uchar; /* 8 bit type */
|
||||
typedef unsigned short uint; /* 16 bit type */
|
||||
typedef unsigned long ulong; /* 32 bit type */
|
||||
//typedef unsigned long long ull; /* 64 bit type */
|
||||
|
||||
//typedef unsigned char UCHAR; /* 8 bit type */
|
||||
//typedef unsigned short UINT; /* 16 bit type */
|
||||
//typedef unsigned long ULONG; /* 32 bit type */
|
||||
//typedef unsigned long long ULL; /* 64 bit type */
|
||||
|
||||
typedef char i8_t; /* 8 bit signed type */
|
||||
typedef short i16_t; /* 16 bit signed type */
|
||||
typedef long i32_t; /* 32 bit signed type */
|
||||
//typedef long long i64_t; /* 64 bit signed type */
|
||||
|
||||
#ifndef _FLOAT_T
|
||||
#define _FLOAT_T
|
||||
typedef float float_t;
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _DOUBLE_T
|
||||
#define _DOUBLE_T
|
||||
typedef double double_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* Signal handler type, e.g. SIG_IGN */
|
||||
#if defined(_ANSI)
|
||||
typedef void (*sighandler_t) (int);
|
||||
#else
|
||||
typedef void (*sighandler_t)();
|
||||
#endif
|
||||
|
||||
//*****************************
|
||||
//*****************************
|
||||
// Special
|
||||
//*****************************
|
||||
//*****************************
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define bool int
|
||||
#define BOOL int
|
||||
#define _Bool int // 1999 C
|
||||
|
||||
#define EQ ==
|
||||
#define GE >=
|
||||
#define GT >
|
||||
#define LE <=
|
||||
#define LT <
|
||||
#define NE !=
|
||||
|
||||
/*
|
||||
** Macros to manipulate bits in an array of char.
|
||||
** These macros assume CHAR_BIT is one of either 8, 16, or 32.
|
||||
*/
|
||||
|
||||
#define MASK CHAR_BIT-1
|
||||
#define SHIFT ((CHAR_BIT==8)?3:(CHAR_BIT==16)?4:8)
|
||||
|
||||
#define BitOff(a,x) ((void)((a)[(x)>>SHIFT] &= ~(1 << ((x)&MASK))))
|
||||
#define BitOn(a,x) ((void)((a)[(x)>>SHIFT] |= (1 << ((x)&MASK))))
|
||||
#define BitFlip(a,x) ((void)((a)[(x)>>SHIFT] ^= (1 << ((x)&MASK))))
|
||||
#define IsBit(a,x) ((a)[(x)>>SHIFT] & (1 << ((x)&MASK)))
|
||||
|
||||
|
||||
#endif /* _TYPES_H */
|
||||
|
||||
|
140
include/tgmath.h
Normal file
140
include/tgmath.h
Normal file
@ -0,0 +1,140 @@
|
||||
/* Copyright (C) 1993 by Zardoz Software, Inc. */
|
||||
#pragma Off (List)
|
||||
/*******************************************************************************
|
||||
* FILE NAME: TGMATH.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Wide Character functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __TGMATH_H
|
||||
#define __TGMATH_H
|
||||
|
||||
|
||||
/* Include the needed headers. */
|
||||
#include <math.h>
|
||||
#include <complex.h>
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
// (sizeof(Val)!=sizeof(double))
|
||||
// (sizeof(Val)==sizeof(_Complex)) This is the one we want, but _Complex isnt defined yet
|
||||
|
||||
#define __REAL_DOUBLE(x) (sizeof(Val)!=sizeof(double))
|
||||
#define __REAL_FLOAT(x) (sizeof(Val)!=sizeof(float))
|
||||
#define __REAL_LONG_DOUBLE(x) (sizeof(Val)!=sizeof(long double))
|
||||
|
||||
#define acos(Val) ((sizeof(Val)!=sizeof(double)) ? cacos(Val) : acos(Val))
|
||||
#define acosf(Val) ((sizeof(Val)!=sizeof(float)) ? cacosf(Val) : acosf(Val))
|
||||
#define acosl(Val) ((sizeof(Val)!=sizeof(long double)) ? cacosl(Val) : acosl(Val))
|
||||
|
||||
#define acosh(Val) ((sizeof(Val)!=sizeof(double)) ? cacosh(Val) : acosh(Val))
|
||||
#define acoshf(Val) ((sizeof(Val)!=sizeof(float)) ? cacoshf(Val) : acoshf(Val))
|
||||
#define acoshl(Val) ((sizeof(Val)!=sizeof(long double)) ? cacoshl(Val) : acoshl(Val))
|
||||
|
||||
#define asin(Val) ((sizeof(Val)!=sizeof(double)) ? casin(Val) : asin(Val))
|
||||
#define asinf(Val) ((sizeof(Val)!=sizeof(float)) ? casinf(Val) : asinf(Val))
|
||||
#define asinl(Val) ((sizeof(Val)!=sizeof(long double)) ? casinl(Val) : asinl(Val))
|
||||
|
||||
#define asinh(Val) ((sizeof(Val)!=sizeof(double)) ? casinh(Val) : asinh(Val))
|
||||
#define asinhf(Val) ((sizeof(Val)!=sizeof(float)) ? casinhf(Val) : asinhf(Val))
|
||||
#define asinhl(Val) ((sizeof(Val)!=sizeof(long double)) ? casinhl(Val) : asinhl(Val))
|
||||
|
||||
#define atan(Val) ((sizeof(Val)!=sizeof(double)) ? catan(Val) : atan(Val))
|
||||
#define atanf(Val) ((sizeof(Val)!=sizeof(float)) ? catanf(Val) : atanf(Val))
|
||||
#define atanl(Val) ((sizeof(Val)!=sizeof(long double)) ? catanl(Val) : atanl(Val))
|
||||
|
||||
#define atanh(Val) ((sizeof(Val)!=sizeof(double)) ? catanh(Val) : atanh(Val))
|
||||
#define atanhf(Val) ((sizeof(Val)!=sizeof(float)) ? catanhf(Val) : atanhf(Val))
|
||||
#define atanhl(Val) ((sizeof(Val)!=sizeof(long double)) ? catanhl(Val) : atanhl(Val))
|
||||
|
||||
#define cos(Val) ((sizeof(Val)!=sizeof(double)) ? ccos(Val) : cos(Val))
|
||||
#define cosf(Val) ((sizeof(Val)!=sizeof(float)) ? ccosf(Val) : cosf(Val))
|
||||
#define cosl(Val) ((sizeof(Val)!=sizeof(long double)) ? ccosl(Val) : cosl(Val))
|
||||
|
||||
#define cosh(Val) ((sizeof(Val)!=sizeof(double)) ? ccosh(Val) : cosh(Val))
|
||||
#define coshf(Val) ((sizeof(Val)!=sizeof(float)) ? ccoshf(Val) : coshf(Val))
|
||||
#define coshl(Val) ((sizeof(Val)!=sizeof(long double)) ? ccoshl(Val) : coshl(Val))
|
||||
|
||||
#define exp(Val) ((sizeof(Val)!=sizeof(double)) ? cexp(Val) : exp(Val))
|
||||
#define expf(Val) ((sizeof(Val)!=sizeof(float)) ? cexpf(Val) : expf(Val))
|
||||
#define expl(Val) ((sizeof(Val)!=sizeof(long double)) ? cexpl(Val) : expl(Val))
|
||||
|
||||
#define fabs(Val) ((sizeof(Val)!=sizeof(double)) ? cabs(Val) : fabs(Val))
|
||||
#define fabsf(Val) ((sizeof(Val)!=sizeof(float)) ? cabsf(Val) : fabsf(Val))
|
||||
#define fabsl(Val) ((sizeof(Val)!=sizeof(long double)) ? cabsl(Val) : fabsl(Val))
|
||||
|
||||
//#define log10(Val) ((sizeof(Val)!=sizeof(double)) ? clog10(Val) : log10(Val))
|
||||
#define log(Val) ((sizeof(Val)!=sizeof(double)) ? clog(Val) : log(Val))
|
||||
#define logf(Val) ((sizeof(Val)!=sizeof(float)) ? clogf(Val) : logf(Val))
|
||||
#define logl(Val) ((sizeof(Val)!=sizeof(long double)) ? clogl(Val) : logl(Val))
|
||||
|
||||
#define pow(Val) ((sizeof(Val)!=sizeof(double)) ? cpow(Val) : pow(Val))
|
||||
#define powf(Val) ((sizeof(Val)!=sizeof(float)) ? cpowf(Val) : powf(Val))
|
||||
#define powl(Val) ((sizeof(Val)!=sizeof(long double)) ? cpowl(Val) : powl(Val))
|
||||
|
||||
#define sin(Val) ((sizeof(Val)!=sizeof(double)) ? csin(Val) : sin(Val))
|
||||
#define sinf(Val) ((sizeof(Val)!=sizeof(float)) ? csinf(Val) : sinf(Val))
|
||||
#define sinl(Val) ((sizeof(Val)!=sizeof(long double)) ? csinl(Val) : sinl(Val))
|
||||
|
||||
#define sinh(Val) ((sizeof(Val)!=sizeof(double)) ? csinh(Val) : sinh(Val))
|
||||
#define sinhf(Val) ((sizeof(Val)!=sizeof(float)) ? csinhf(Val) : sinhf(Val))
|
||||
#define sinhl(Val) ((sizeof(Val)!=sizeof(long double)) ? csinhl(Val) : sinhl(Val))
|
||||
|
||||
#define sqrt(Val) ((sizeof(Val)!=sizeof(double)) ? csqrt(Val) : sqrt(Val))
|
||||
#define sqrtf(Val) ((sizeof(Val)!=sizeof(float)) ? csqrtf(Val) : sqrtf(Val))
|
||||
#define sqrtl(Val) ((sizeof(Val)!=sizeof(long double)) ? csqrtl(Val) : sqrtl(Val))
|
||||
|
||||
#define tan(Val) ((sizeof(Val)!=sizeof(double)) ? ctan(Val) : tan(Val))
|
||||
#define tanf(Val) ((sizeof(Val)!=sizeof(float)) ? ctanf(Val) : tanf(Val))
|
||||
#define tanl(Val) ((sizeof(Val)!=sizeof(long double)) ? ctanl(Val) : tanl(Val))
|
||||
|
||||
#define tanh(Val) ((sizeof(Val)!=sizeof(double)) ? ctanh(Val) : tanh(Val))
|
||||
#define tanhf(Val) ((sizeof(Val)!=sizeof(float)) ? ctanhf(Val) : tanhf(Val))
|
||||
#define tanhl(Val) ((sizeof(Val)!=sizeof(long double)) ? ctanhl(Val) : tanhl(Val))
|
||||
|
||||
|
||||
|
||||
#endif /* End of _TGMATH_H */
|
||||
#pragma Pop (List)
|
||||
|
||||
/**************************************
|
||||
End of File TGMATH.H
|
||||
***************************************/
|
129
include/time.h
Normal file
129
include/time.h
Normal file
@ -0,0 +1,129 @@
|
||||
/* Copyright (C) 1992 by Zardoz Software, Inc. */
|
||||
/*******************************************************************************
|
||||
* FILE NAME: TIME.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Time Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Time functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/25/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __TIME_H
|
||||
#define __TIME_H
|
||||
|
||||
#include <sys\types.h> // Defines
|
||||
#include <stddef.h> // Defines size_t
|
||||
|
||||
#define CLOCKS_PER_SEC 100 /* clock() ticks per second */
|
||||
|
||||
#ifndef _TIME_T
|
||||
#define _TIME_T
|
||||
typedef long time_t; /* time in sec since 1 Jan 1970 0000 GMT */
|
||||
#endif
|
||||
|
||||
#ifndef _CLOCK_T
|
||||
#define _CLOCK_T
|
||||
typedef long clock_t; /* unit for system accounting */
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define __TM
|
||||
struct tm {
|
||||
int tm_sec; /* seconds after the minute [0,60] */
|
||||
int tm_min; /* minutes after the hour [0,59] */
|
||||
int tm_hour; /* hours since midnight [0,23] */
|
||||
int tm_mday; /* day of the month [1,31] */
|
||||
int tm_mon; /* months since jan [0,11] */
|
||||
int tm_year; /* years since 1900 */
|
||||
int tm_wday; /* days since sunday [0,6] */
|
||||
int tm_yday; /* days since jan 1 [0,365] */
|
||||
int tm_isdst; /* pos if DST in effect; 0 if not; neg if can't tell */
|
||||
int tm_hsec; /* hundreths of second; not in ANSI C */
|
||||
};
|
||||
|
||||
|
||||
struct date {
|
||||
int da_year; //
|
||||
char da_day; //
|
||||
char da_mon; //
|
||||
};
|
||||
|
||||
struct time {
|
||||
unsigned char ti_min; //
|
||||
unsigned char ti_hour; //
|
||||
unsigned char ti_hund; //
|
||||
unsigned char ti_sec; //
|
||||
};
|
||||
|
||||
|
||||
#define RTC_yr *( volatile uchar * )0x0030
|
||||
#define RTC_month *( volatile uchar * )0x0031
|
||||
#define RTC_day *( volatile uchar * )0x0032
|
||||
#define RTC_hr *( volatile uchar * )0x0033
|
||||
#define RTC_min *( volatile uchar * )0x0034
|
||||
#define RTC_sec *( volatile uchar * )0x0035
|
||||
#define RTC_tenthsec *( volatile uchar * )0x0036
|
||||
|
||||
|
||||
/***********************/
|
||||
/* ProtoType Functions */
|
||||
/***********************/
|
||||
char *asctime(const struct tm *timeptr);
|
||||
clock_t clock(void);
|
||||
char *ctime(const time_t *timer);
|
||||
double difftime(time_t time1, time_t time2);
|
||||
struct tm *gmtime(const time_t *timer);
|
||||
struct tm *localtime(const time_t *timer);
|
||||
time_t mktime(struct tm *timeptr);
|
||||
time_t time(time_t *timer);
|
||||
size_t strftime(char *s, size_t maxsize, const char *format,
|
||||
const struct tm *timeptr);
|
||||
|
||||
|
||||
/*********************/
|
||||
/* NON ANSI Standard */
|
||||
/*********************/
|
||||
//extern int daylight; /* non-zero if daylight savings time is used */
|
||||
//extern long timezone; /* difference in seconds between GMT and local time */
|
||||
//extern char *tzname[2]; /* standard/daylight savings time zone names */
|
||||
|
||||
//void ftime(struct timeb *timeptr);
|
||||
//void getdate(struct date *datebuf);
|
||||
//void gettime(struct time *timebuf);
|
||||
//void setdate(struct date *datebuf);
|
||||
//void settime(struct time *timebuf);
|
||||
//int stime(time_t *timer);
|
||||
//void tzset(void);
|
||||
|
||||
#endif // End of __TIME_H
|
||||
|
||||
/**************************************************/
|
||||
/* End of File TIME.H */
|
||||
/**************************************************/
|
||||
|
117
include/triglib.h
Normal file
117
include/triglib.h
Normal file
@ -0,0 +1,117 @@
|
||||
/* +++Date last modified: 05-Jul-1997 */
|
||||
|
||||
/******************************************************/
|
||||
/* Filespec : triglib.c triglib.h */
|
||||
/* Date : February 21 1997 */
|
||||
/* Time : 14:11 */
|
||||
/* Revision : 1.0C */
|
||||
/* Update : */
|
||||
/******************************************************/
|
||||
/* Programmer: Nigel Traves */
|
||||
/* Address : 5 Breamer Road, Collingham, Newark, */
|
||||
/* : Notts, U.K. */
|
||||
/* Post Code : NG23 7PN */
|
||||
/******************************************************/
|
||||
/* Released to the Public Domain */
|
||||
/******************************************************/
|
||||
|
||||
#ifndef TRIGLIB_H
|
||||
#define TRIGLIB_H
|
||||
|
||||
/********************************************************************/
|
||||
/* This library is concerned entirely with angles in general and */
|
||||
/* trigonometric functions in particular. */
|
||||
/********************************************************************/
|
||||
|
||||
#ifndef ANGLE_TYPE
|
||||
#define ANGLE_TYPE
|
||||
enum angle_type {RAD, DEG, GRAD};
|
||||
#endif
|
||||
|
||||
/********************************************************************/
|
||||
/* The following three routines 'normalize' the supplied angle to */
|
||||
/* be within limits appropiate for the trigonemetric routines. */
|
||||
/* normalize_radians ensures that the supplied angle is between -PI */
|
||||
/* and +PI, normalize_degrees between -180.0 and +180.0 and */
|
||||
/* normalize_grade between -200.0 and +200.0. NOTE - ALL the */
|
||||
/* normal trigonometric functions normalize the angle before use, */
|
||||
/* and the inverse functions after. */
|
||||
/********************************************************************/
|
||||
|
||||
void normalize_radians(double *radians);
|
||||
void normalize_degrees(double *degrees);
|
||||
void normalize_grade(double *grade);
|
||||
|
||||
/********************************************************************/
|
||||
/* These six routines enable conversion, of angles, between */
|
||||
/* radians, degrees and grade. NOTE there is no need to normalize */
|
||||
/* the angle to be converted before calling any of these routines */
|
||||
/* as they all call the appropriate normalisation routine. */
|
||||
/********************************************************************/
|
||||
|
||||
double radians_to_degrees(double radians);
|
||||
double radians_to_grade(double radians);
|
||||
double degrees_to_radians(double degrees);
|
||||
double degrees_to_grade(double degrees);
|
||||
double grade_to_radians(double grade);
|
||||
double grade_to_degrees(double grade);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the normal trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double sine(double angle, enum angle_type atype);
|
||||
double cosine(double angle, enum angle_type atype);
|
||||
double tangent(double angle, enum angle_type atype);
|
||||
double secant(double angle, enum angle_type atype);
|
||||
double cosecant(double angle, enum angle_type atype);
|
||||
double cotangent(double angle, enum angle_type atype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the normal inverse trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double arc_sine(double x, enum angle_type outtype);
|
||||
double arc_cosine(double x, enum angle_type outtype);
|
||||
double arc_tangent(double x, enum angle_type outtype);
|
||||
double arc_secant(double x, enum angle_type outtype);
|
||||
double arc_cosecant(double x, enum angle_type outtype);
|
||||
double arc_cotangent(double x, enum angle_type outtype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the hyperbolic trigonometric */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double hyperbolic_sine(double angle, enum angle_type atype);
|
||||
double hyperbolic_cosine(double angle, enum angle_type atype);
|
||||
double hyperbolic_tangent(double angle, enum angle_type atype);
|
||||
double hyperbolic_secant(double angle, enum angle_type atype);
|
||||
double hyperbolic_cosecant(double angle, enum angle_type atype);
|
||||
double hyperbolic_cotangent(double angle, enum angle_type atype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following six routines are the hyperbolic inverse */
|
||||
/* trigonometric functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double hyperbolic_arc_sine(double x, enum angle_type outtype);
|
||||
double hyperbolic_arc_cosine(double x, enum angle_type outtype);
|
||||
double hyperbolic_arc_tangent(double x, enum angle_type outtype);
|
||||
double hyperbolic_arc_secant(double x, enum angle_type outtype);
|
||||
double hyperbolic_arc_cosecant(double x, enum angle_type outtype);
|
||||
double hyperbolic_arc_cotangent(double x, enum angle_type outtype);
|
||||
|
||||
/********************************************************************/
|
||||
/* The following four routines "complete" the standard library */
|
||||
/* functions. */
|
||||
/********************************************************************/
|
||||
|
||||
double sech(double x);
|
||||
double csch(double x);
|
||||
double coth(double x);
|
||||
double acoth(double x);
|
||||
|
||||
#endif
|
134
include/wchar.h
Normal file
134
include/wchar.h
Normal file
@ -0,0 +1,134 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: WCHAR.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for Wide Character functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __WCHAR_H
|
||||
#define __WCHAR_H
|
||||
|
||||
#include <stdio.h> // Define FILE
|
||||
|
||||
#ifndef _VA_LIST
|
||||
#include <stdarg.h> // Define va_list
|
||||
#endif
|
||||
|
||||
#ifndef _WCHAR_T
|
||||
#include <stddef.h> // Define size_t, wint_t, wchar_t, NULL
|
||||
#endif
|
||||
|
||||
#ifndef __TM
|
||||
#include <time.h> // Define tm
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
typedef int mbstate_t;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
int fwprintf(FILE *stream, const wchar_t *format, ...);
|
||||
int fwscanf(FILE *stream, const wchar_t *format, ...);
|
||||
int swprintf( wchar_t *s, size_t n, const wchar_t *format, ...);
|
||||
int swscanf( const wchar_t *s, const wchar_t *format, ...);
|
||||
int vfwprintf(FILE *stream, const wchar_t *format, va_list arg);
|
||||
int vfwscanf(FILE *stream, const wchar_t *format, va_list arg);
|
||||
int vswprintf( wchar_t *s, size_t n, const wchar_t *format, va_list arg);
|
||||
int vswscanf( const wchar_t *s, const wchar_t *format, va_list arg);
|
||||
int vwprintf( const wchar_t *format, va_list arg);
|
||||
int vwscanf(const wchar_t *format, va_list arg);
|
||||
int wprintf( const wchar_t *format, ...);
|
||||
int wscanf( const wchar_t *format, ...);
|
||||
wint_t fgetwc( FILE *stream);
|
||||
wchar_t *fgetws( wchar_t *s, int n, FILE *stream);
|
||||
wint_t fputwc( wchar_t c, FILE *stream);
|
||||
int fputws( const wchar_t *s, FILE *stream);
|
||||
int fwide( FILE *stream, int mode);
|
||||
wint_t getwc( FILE *stream);
|
||||
wint_t getwchar( void);
|
||||
wint_t putwc( wchar_t c, FILE *stream);
|
||||
wint_t putwchar( wchar_t c);
|
||||
wint_t ungetwc( wint_t c, FILE *stream);
|
||||
double wcstod( const wchar_t *nptr, wchar_t **endptr);
|
||||
float wcstof( const wchar_t *nptr, wchar_t **endptr);
|
||||
long double wcstold( const wchar_t *nptr, wchar_t **endptr);
|
||||
long int wcstol( const wchar_t *nptr, wchar_t **endptr, int base);
|
||||
//long long int wcstoll( const wchar_t *nptr, wchar_t **endptr, int base);
|
||||
unsigned long int wcstoul( const wchar_t *nptr, wchar_t **endptr, int base);
|
||||
//unsigned long long int wcstoull( const wchar_t *nptr, wchar_t **endptr, int base);
|
||||
wchar_t *wcscpy( wchar_t *s1, const wchar_t *s2);
|
||||
wchar_t *wcsncpy( wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
wchar_t *wcscat( wchar_t *s1, const wchar_t *s2);
|
||||
wchar_t *wcsncat( wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
int wcscmp( const wchar_t *s1, const wchar_t *s2);
|
||||
int wcscoll( const wchar_t *s1, const wchar_t *s2);
|
||||
int wcsncmp( const wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
size_t wcsxfrm( wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
wchar_t *wcschr( const wchar_t *s, wchar_t c);
|
||||
size_t wcscspn( const wchar_t *s1, const wchar_t *s2);
|
||||
size_t wcslen( const wchar_t *s);
|
||||
wchar_t *wcspbrk( const wchar_t *s1, const wchar_t *s2);
|
||||
wchar_t *wcsrchr( const wchar_t *s, wchar_t c);
|
||||
size_t wcsspn( const wchar_t *s1, const wchar_t *s2);
|
||||
wchar_t *wcsstr( const wchar_t *s1, const wchar_t *s2);
|
||||
wchar_t *wcstok( wchar_t *s1, const wchar_t *s2, wchar_t **ptr);
|
||||
wchar_t *wmemchr( const wchar_t *s, wchar_t c, size_t n);
|
||||
int wmemcmp(const wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
wchar_t *wmemcpy( wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
wchar_t *wmemmove( wchar_t *s1, const wchar_t *s2, size_t n);
|
||||
wchar_t *wmemset( wchar_t *s, wchar_t c, size_t n);
|
||||
size_t wcsftime( wchar_t *s, size_t maxsize, const wchar_t *format, const struct tm *timeptr);
|
||||
wint_t btowc( int c); //*
|
||||
int wctob( wint_t c);
|
||||
int mbsinit( const mbstate_t *ps);
|
||||
size_t mbrlen( const char *s, size_t n, mbstate_t *ps);
|
||||
size_t mbrtowc( wchar_t* pwc, const char *s, size_t n, mbstate_t *ps);
|
||||
size_t wcrtomb( char *s, wchar_t wc, mbstate_t *ps);
|
||||
size_t mbsrtowcs( wchar_t *dst, const char **src, size_t len, mbstate_t *ps);
|
||||
size_t wcsrtombs( char *dst, const wchar_t **src, size_t len, mbstate_t *ps);
|
||||
|
||||
|
||||
#endif /* End of __WCHAR_H */
|
||||
|
||||
/**************************************
|
||||
End of File WCHAR.H
|
||||
***************************************/
|
93
include/wctype.h
Normal file
93
include/wctype.h
Normal file
@ -0,0 +1,93 @@
|
||||
/*******************************************************************************
|
||||
* FILE NAME: WCTYPE.h
|
||||
*
|
||||
* TITLE: This function prototypes and data type definitions for the Wide Characters Functions.
|
||||
*
|
||||
* DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
* Copyright(C) 1980-2004
|
||||
* All rights reserved. Reproduction in any manner,
|
||||
* in whole or in part, is strictly prohibited without
|
||||
* the prior written approval of R & C Services or
|
||||
* Western Design Center.
|
||||
*
|
||||
* DESCRIPTION: This file describes function prototypes and data type
|
||||
* definitions used for wide character classification and
|
||||
* mapping utilities functions.
|
||||
*
|
||||
*
|
||||
* SPECIAL CONSIDERATIONS:
|
||||
* <None>
|
||||
*
|
||||
* AUTHOR: R. Greenthal
|
||||
*
|
||||
*
|
||||
* CREATION DATE: March 17,2004
|
||||
*
|
||||
* REVISION HISTORY
|
||||
* Name Date Description
|
||||
* ------------ ---------- ----------------------------------------------
|
||||
* R. Greenthal 03/15/2004 Initial
|
||||
* 0x/xx/2004 Added
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __WCTYPE_H
|
||||
#define __WCTYPE_H
|
||||
|
||||
|
||||
/*
|
||||
*=========================== CONSTANTS & MACROS ===============================
|
||||
*/
|
||||
|
||||
#ifndef _WCHAR_T
|
||||
#include <stddef.h> // Define size_t, wchar_t, NULL
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _WCTRANS_T
|
||||
#define _WCTRANS_T
|
||||
typedef unsigned long wctrans_t;
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
*============================= FUNCTION CALL PROTOTYPES ============================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int iswalnum( wint_t wc);
|
||||
int iswalpha( wint_t wc);
|
||||
int iswcntrl( wint_t wc);
|
||||
int iswdigit( wint_t wc);
|
||||
int iswgraph( wint_t wc);
|
||||
int iswlower( wint_t wc);
|
||||
int iswprint( wint_t wc);
|
||||
int iswpunct( wint_t wc);
|
||||
int iswspace( wint_t wc);
|
||||
int iswupper( wint_t wc);
|
||||
int iswxdigit( wint_t wc);
|
||||
int iswctype( wint_t wc, wctype_t desc);
|
||||
int wctype( const char *property);
|
||||
wint_t towlower(wint_t wc);
|
||||
wint_t towupper(wint_t wc);
|
||||
wctrans_t wctrans( const char *property);
|
||||
wint_t towctrans( wint_t wc, wctrans_t desc);
|
||||
|
||||
|
||||
/****************************/
|
||||
/* NON ANSI - C99 */
|
||||
/****************************/
|
||||
|
||||
int iswblank(wint_t wc);
|
||||
int iswctrans(wint_t wc, unsigned int desc);
|
||||
|
||||
|
||||
#endif /* End of __WCTYPE_H */
|
||||
|
||||
/**************************************
|
||||
End of File WCTYPE.H
|
||||
***************************************/
|
145
include/zpage.inc
Normal file
145
include/zpage.inc
Normal file
@ -0,0 +1,145 @@
|
||||
*:ts=8
|
||||
*
|
||||
* Copyright (C) 1998 by Zardoz Software, Inc.
|
||||
*
|
||||
|
||||
; Compiler zero-page configuration file
|
||||
;
|
||||
; Each of the following items must be defined with the exception of
|
||||
; the 'Float' item if no floating point is used. The User Reg space
|
||||
; can be of any desired size. This space is used by the compiler to
|
||||
; hold automatic variables that would normally be located on the
|
||||
; pseudo-stack. Priority is especially given to pointers.
|
||||
;
|
||||
; NOTE! Any changes made to this file must be reflected in the
|
||||
; WDC02CC.CFG file in the BIN directory and then the libraries
|
||||
; MUST be rebuilt. Also any files previously compiled MUST be
|
||||
; recompiled.
|
||||
;
|
||||
|
||||
.sttl " Zpage.inc "
|
||||
; bgnpkhdr
|
||||
;*******************************************************************************
|
||||
; FILE_NAME: zpage.inc
|
||||
;
|
||||
; TITLE: Zero Page variables for the W65c02 'C' compiler
|
||||
;
|
||||
; DATA_RIGHTS: Western Design Center and R & C Services Proprietary
|
||||
; Copyright(C) 1980-2003
|
||||
; All rights reserved. Reproduction in any manner,
|
||||
; in whole or in part, is strictly prohibited without
|
||||
; the prior written approval of R & C Services or
|
||||
; Western Design Center.
|
||||
;
|
||||
;
|
||||
; DESCRIPTION: This File describes data type definitions used for the W65c02 'C' compiler.
|
||||
;
|
||||
; SPECIAL_CONSIDERATIONS:
|
||||
; None
|
||||
;
|
||||
; SHARED_DATA:
|
||||
; None.
|
||||
;
|
||||
; GLOBAL_MODULES:
|
||||
;
|
||||
;
|
||||
;
|
||||
; LOCAL_MODULES:
|
||||
; None
|
||||
;
|
||||
; REVISION_HISTORY
|
||||
; Name Date Description
|
||||
; ------------ ---------- ---------------------------------------------
|
||||
; R. Greenthal 12/16/2003 Module created.
|
||||
;
|
||||
;
|
||||
;
|
||||
;*******************************************************************************
|
||||
;
|
||||
|
||||
|
||||
CHIP 65C02
|
||||
|
||||
PAGE0
|
||||
|
||||
************* User Register Start and Count ******************************
|
||||
|
||||
IF USING_02
|
||||
; org $00:0000 ;Use it ALL
|
||||
org $00:0020
|
||||
ELSEIF USING_134
|
||||
org $00:0040
|
||||
ENDIF
|
||||
|
||||
;**************************
|
||||
;16 byte User Register area
|
||||
;**************************
|
||||
REGS rmb 16 ; User Register Count
|
||||
|
||||
|
||||
************* Stack Register Start ***************************************
|
||||
|
||||
|
||||
|
||||
;**************************
|
||||
; 8 byte Stack Register area
|
||||
;**************************
|
||||
|
||||
VAL rmb 2
|
||||
SP rmb 2
|
||||
AFRAME
|
||||
FRAME rmb 2
|
||||
LFRAME
|
||||
PC rmb 2
|
||||
|
||||
|
||||
************* Compiler Register Start ************************************
|
||||
|
||||
|
||||
;**************************
|
||||
; 20 byte tmp register area
|
||||
;**************************
|
||||
|
||||
R0 rmb 4
|
||||
R1 rmb 4
|
||||
R2 rmb 4
|
||||
R3 rmb 4
|
||||
R4 rmb 4
|
||||
|
||||
|
||||
************* Work Register Start ****************************************
|
||||
|
||||
|
||||
;**************************
|
||||
;12 byte zero page temporary area
|
||||
;**************************
|
||||
|
||||
TMP rmb 12
|
||||
|
||||
|
||||
************* Float Register Start ***************************************
|
||||
|
||||
; org $58
|
||||
|
||||
Exp0 rmb 2 ; 11 byte area for FP0
|
||||
Sign0 rmb 1 ; must be in this order
|
||||
FP0 rmb 8
|
||||
|
||||
Exp1 rmb 2 ; 11 byte area for FP1
|
||||
Sign1 rmb 1 ; must be in this order
|
||||
FP1 rmb 8
|
||||
|
||||
;
|
||||
; FLOATING POINT ERRORS
|
||||
;
|
||||
UNDER_FLOW equ 1
|
||||
OVER_FLOW equ 2
|
||||
DIV_BY_ZERO equ 3
|
||||
;
|
||||
|
||||
ends
|
||||
|
||||
;*******************************************************************************
|
||||
; End of File ZPAGE.INC
|
||||
;*******************************************************************************
|
||||
|
BIN
lib/c0.obj
Normal file
BIN
lib/c0.obj
Normal file
Binary file not shown.
BIN
lib/c0c.obj
Normal file
BIN
lib/c0c.obj
Normal file
Binary file not shown.
BIN
lib/c0l.obj
Normal file
BIN
lib/c0l.obj
Normal file
Binary file not shown.
BIN
lib/c0m.obj
Normal file
BIN
lib/c0m.obj
Normal file
Binary file not shown.
BIN
lib/c0s.obj
Normal file
BIN
lib/c0s.obj
Normal file
Binary file not shown.
BIN
lib/c134.lib
Normal file
BIN
lib/c134.lib
Normal file
Binary file not shown.
BIN
lib/cc.lib
Normal file
BIN
lib/cc.lib
Normal file
Binary file not shown.
BIN
lib/cl.lib
Normal file
BIN
lib/cl.lib
Normal file
Binary file not shown.
BIN
lib/cm.lib
Normal file
BIN
lib/cm.lib
Normal file
Binary file not shown.
BIN
lib/cs.lib
Normal file
BIN
lib/cs.lib
Normal file
Binary file not shown.
BIN
lib/m134.lib
Normal file
BIN
lib/m134.lib
Normal file
Binary file not shown.
BIN
lib/mc.lib
Normal file
BIN
lib/mc.lib
Normal file
Binary file not shown.
BIN
lib/ml.lib
Normal file
BIN
lib/ml.lib
Normal file
Binary file not shown.
BIN
lib/mm.lib
Normal file
BIN
lib/mm.lib
Normal file
Binary file not shown.
BIN
lib/ms.lib
Normal file
BIN
lib/ms.lib
Normal file
Binary file not shown.
4
libexec/LICENSE
Normal file
4
libexec/LICENSE
Normal file
@ -0,0 +1,4 @@
|
||||
LIMITED USAGE STATEMENT:
|
||||
|
||||
The technology is intended for use only directly related to product development using WDC's 65xx technology is
|
||||
expressly NOT for cloning, redesign, or reverse engineering. You may make copies of the information for your use only.
|
BIN
libexec/cc3250.dll
Normal file
BIN
libexec/cc3250.dll
Normal file
Binary file not shown.
BIN
libexec/wdc02as.exe
Executable file
BIN
libexec/wdc02as.exe
Executable file
Binary file not shown.
32
libexec/wdc02cc.cfg
Normal file
32
libexec/wdc02cc.cfg
Normal file
@ -0,0 +1,32 @@
|
||||
; Compiler configuration file
|
||||
;
|
||||
; Each of the following items must be defined with the exception of
|
||||
; the 'Float' item if no floating point is used. The User Reg space
|
||||
; can be of any desired size. This space is used by the compiler to
|
||||
; hold automatic variables that would normally be located on the
|
||||
; pseudo-stack. Priority is especially given to pointers.
|
||||
;
|
||||
; NOTE! Any changes made to this file must be reflected in the
|
||||
; ZPAGE.INC file in the INCLUDE directory and then the libraries
|
||||
; MUST be rebuilt. Also any files previously compiled MUST be
|
||||
; recompiled.
|
||||
;
|
||||
|
||||
User Register Count=16 ; count of user register bytes
|
||||
IF USING_02
|
||||
;User Register Start=0x00 ; N byte user register area
|
||||
User Register Start=0x20 ; N byte user register area
|
||||
Stack Register Start=0x30 ; 8 byte stack area
|
||||
Compiler Register Start=0x38 ; 20 byte compiler temporary register area
|
||||
Work Register Start=0x4c ; 12 byte general purpose work area
|
||||
Float Register Start=0x58 ; 22 byte floating point area
|
||||
|
||||
|
||||
ELSEIF USING_134
|
||||
User Register Start=0x40 ; N byte user register area
|
||||
Stack Register Start=0x50 ; 8 byte stack area
|
||||
Compiler Register Start=0x58 ; 20 byte compiler temporary register area
|
||||
Work Register Start=0x6c ; 12 byte general purpose work area
|
||||
Float Register Start=0x78 ; 22 byte floating point area
|
||||
ENDIF
|
||||
|
BIN
libexec/wdc02cc.exe
Executable file
BIN
libexec/wdc02cc.exe
Executable file
Binary file not shown.
BIN
libexec/wdc02op.exe
Executable file
BIN
libexec/wdc02op.exe
Executable file
Binary file not shown.
BIN
libexec/wdc816as.exe
Executable file
BIN
libexec/wdc816as.exe
Executable file
Binary file not shown.
BIN
libexec/wdc816cc.exe
Executable file
BIN
libexec/wdc816cc.exe
Executable file
Binary file not shown.
BIN
libexec/wdc816op.exe
Executable file
BIN
libexec/wdc816op.exe
Executable file
Binary file not shown.
BIN
libexec/wdcdumpobj.exe
Executable file
BIN
libexec/wdcdumpobj.exe
Executable file
Binary file not shown.
BIN
libexec/wdclib.exe
Executable file
BIN
libexec/wdclib.exe
Executable file
Binary file not shown.
BIN
libexec/wdclink.exe
Executable file
BIN
libexec/wdclink.exe
Executable file
Binary file not shown.
BIN
libexec/wdcln.exe
Executable file
BIN
libexec/wdcln.exe
Executable file
Binary file not shown.
BIN
libexec/wdcobj.exe
Executable file
BIN
libexec/wdcobj.exe
Executable file
Binary file not shown.
BIN
libexec/wdcsym.exe
Executable file
BIN
libexec/wdcsym.exe
Executable file
Binary file not shown.
179
man1/wdc816as.1
Normal file
179
man1/wdc816as.1
Normal file
@ -0,0 +1,179 @@
|
||||
.Dd December 29, 2016
|
||||
.Dt WDC816AS 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdc816as ,
|
||||
.Nm wdc02as
|
||||
.Nd WDC assembler
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl GSL1
|
||||
.Op Fl I Ar path
|
||||
.Op Fl D Ar symbol Ns Op = Ns Ar value
|
||||
.Op Fl O Ar outfile
|
||||
.Ar sourcefile
|
||||
.Sh DESCRIPTION
|
||||
The WDC macro assembler,
|
||||
.Nm ,
|
||||
provides all the tools and facilities to do professional assembly language
|
||||
program development.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl 1
|
||||
Version 1.0 of the assembler used slightly different control characters. In
|
||||
particular, the macro concatenation character
|
||||
.Ql |
|
||||
was changed to
|
||||
.Ql @ ,
|
||||
the bit-wise inclusive OR character
|
||||
.Ql ^
|
||||
was changed to
|
||||
.Ql | ,
|
||||
and the bit-wise exclusive OR character
|
||||
.Ql ^
|
||||
was added. This option changes the characters back to the 1.0 versions
|
||||
for compatibility.
|
||||
.It Fl D
|
||||
This option is used to define an absolute symbol at run time. The symbol
|
||||
can then be used in conditional statements to change the code generated.
|
||||
The symbol can be followed with an equal sign and an absolute decimal
|
||||
value. If no value is specified, then the symbol is given the value one.
|
||||
For example the following command line:
|
||||
.Pp
|
||||
.Dl Nm Fl D Ns Ar COUNT=3 Fl D Ns Ar DEBUG Ar FILE.ASM
|
||||
.Pp
|
||||
will set the absolute symbol COUNT to the value 3 and the symbol DEBUG to
|
||||
the value 1. Specifying these options is equivalent to the following
|
||||
statements appearing at the beginning of the source file:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
COUNT GEQU 3
|
||||
DEBUG GEQU 1
|
||||
.Ed
|
||||
.It Fl G
|
||||
The assembler and linker can now produce source level debugging information
|
||||
for programs. When this option is specified, the assembler will generate
|
||||
special object file records which indicate the number of bytes generated
|
||||
for each source line in the file. Information is also generated to
|
||||
determine the source file containing the source line. This option will
|
||||
increase the size of object modules generated by the assembler. The
|
||||
.Li INCDEBUG
|
||||
directive can be used to control the generation of source information
|
||||
for included files. The
|
||||
.Fl G
|
||||
option creates the
|
||||
.Pa .bin
|
||||
file used with the WDC Debugger
|
||||
.Nm ( WDCDB.EXE )
|
||||
and the
|
||||
.Pa WDCDB.INI
|
||||
files.
|
||||
.It Fl I
|
||||
When the assembler encounters an
|
||||
.Li INCLUDE
|
||||
or
|
||||
.Li APPEND
|
||||
directive, the assembler looks in specific directories in a specific
|
||||
order for the named file. First, the current directory is checked. Next,
|
||||
any directories that have been specified using the
|
||||
.Fl I
|
||||
option will be searched. Finally, if an environment variable called
|
||||
.Ev WDC_INC_65816
|
||||
or
|
||||
.Ev WDC_INC_6502
|
||||
has been defined, then any directories specified in that variable
|
||||
will be searched.
|
||||
.Pp
|
||||
For example, if one of the following lines is in the
|
||||
.Pa AUTOEXEC.BAT
|
||||
file:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
SET WDC_INC_65816=C:\eWDC\eINCLUDE;C:\eWDC\eMACROS
|
||||
SET WDC_INC_6502=C:\eWDC\eINCLUDE;C:\eWDC\eMACROS
|
||||
.Ed
|
||||
.Pp
|
||||
then, the command:
|
||||
.Pp
|
||||
.Dl Nm Fl I Ar C:\eMYINC Ar PROG
|
||||
.Pp
|
||||
will assemble the file
|
||||
.Ar PROG.ASM .
|
||||
If the file contains any
|
||||
.Li INCLUDE
|
||||
or
|
||||
.Li APPEND
|
||||
directives, then the assembler will look for the specified file in this order:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
current directory
|
||||
C:\eMYINC
|
||||
C:\eWDC\eINCLUDE
|
||||
C:\eWDC\eMACROS
|
||||
.Ed
|
||||
.It Fl K
|
||||
This option causes the path name specifying the name of the listing file to
|
||||
be placed in the reserved word
|
||||
.Dv __FILE__ .
|
||||
.It Fl L
|
||||
This option instructs the assembler to generate a listing file that will
|
||||
have the same root name as the output name and an extension of
|
||||
.Pa .LST .
|
||||
The format and output control of the listing file are controlled by
|
||||
assembler directives within the source file.
|
||||
.It Fl O
|
||||
This option is used to specify the name of the output file. Normally, the
|
||||
output file has the same root name as the source file, and the extension is
|
||||
changed to
|
||||
.Pa .OBJ .
|
||||
For example, the command:
|
||||
.Pp
|
||||
.Dl Nm Ar MYPROG.ASM
|
||||
.Pp
|
||||
will generate an output file called
|
||||
.Ar MYPROG.OBJ .
|
||||
If the
|
||||
.Fl O
|
||||
option is used, the output file name can be specified directly. For example:
|
||||
.Pp
|
||||
.Dl Nm Fl O Ar JUNK.REL Ar MYPROG.ASM
|
||||
.Pp
|
||||
will place the same output into a file called
|
||||
.Ar JUNK.REL .
|
||||
.It Fl S
|
||||
Normally, labels that aren't declared global are not placed in the object
|
||||
module since the assembler resolves all references to them. If the
|
||||
.Fl S
|
||||
option is specified, the symbols are included in the object file so that
|
||||
the linker may pass them on to a symbol file that can be used when
|
||||
debugging.
|
||||
.It Fl V
|
||||
This is the Verbose option. This option displays the amount of
|
||||
RAM needed to assemble the program.
|
||||
.It Fl W
|
||||
This option causes a change in the default page width to 132, creating
|
||||
a wide listing.
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the execution of
|
||||
.Nm :
|
||||
.Bl -tag -width indent
|
||||
.It Ev WDC_INC_65816 , WDC_INC_6502
|
||||
A semi-colon separated list of directories to search if an
|
||||
input file cannot be found in the current directory or in any
|
||||
directories specified via the
|
||||
.Fl I
|
||||
flag.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.\" .Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.\" .Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
129
man1/wdclib.1
Normal file
129
man1/wdclib.1
Normal file
@ -0,0 +1,129 @@
|
||||
.Dd December 24, 2016
|
||||
.Dt WDCLIB 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdclib
|
||||
.Nd WDC librarian
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl F Ar argfile
|
||||
.Op Fl A | D | L | S | X
|
||||
.Ar library
|
||||
.Op Ar objfile ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a utility program that manipulates libraries of object modules.
|
||||
.Nm
|
||||
makes it possible to create a library of commonly used functions. This
|
||||
library can be very efficiently searched and any modules required by the
|
||||
program can be extracted from the library and placed in the output file.
|
||||
.Pp
|
||||
Since several object
|
||||
modules may be contained in the same original source file,
|
||||
.Nm
|
||||
keeps track of the name of the file that each module comes from.
|
||||
This allows all the modules associated with a file to be manipulated
|
||||
without tediously typing in the name of each module. Options may be
|
||||
specified individually or together.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option tells
|
||||
.Nm
|
||||
to add the specified files to the library. The symbol dictionary is updated
|
||||
to include the names of symbols defined in the object modules in the files.
|
||||
If none of the options
|
||||
.Fl A , D ,
|
||||
or
|
||||
.Fl X
|
||||
are given, the default is to assume option
|
||||
.Fl A .
|
||||
To create a library from a set of object files, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Ar LIBSRC1.OBJ Ar LIBSRC2.OBJ Ar LIBSRC3.OBJ
|
||||
.Pp
|
||||
which will create a library file called
|
||||
.Ar MYLIB.LIB
|
||||
and add all the modules
|
||||
from the three object files. If
|
||||
.Ar MYLIB.LIB
|
||||
already existed, the modules
|
||||
from the three object files will be added to the library.
|
||||
.It Fl D
|
||||
The modules in the library that originally came from the named files are
|
||||
deleted from the library. Modules must be deleted before being replaced
|
||||
with new ones.
|
||||
.Pp
|
||||
The following example shows how to remove the modules associated with an
|
||||
object file.
|
||||
.Pp
|
||||
.Dl Nm Fl D Ar MYLIB.LIB Ar LIBSRC3.OBJ
|
||||
.Pp
|
||||
All of the modules associated with the file
|
||||
.Ar LIBSRC3.OBJ
|
||||
will be deleted from the library.
|
||||
.Pp
|
||||
This example shows how to replace a file in a library.
|
||||
.Pp
|
||||
.Dl Nm Fl D Ar MYLIB.LIB Ar LIBSRC2.OBJ
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Ar LIBSRC2.OBJ
|
||||
.Pp
|
||||
The modules associated with
|
||||
.Ar LIBSRC2.OBJ
|
||||
will first be deleted from the library and then added from the new version
|
||||
of the file. The following options display information about the library
|
||||
file after the modification arguments, if any, have been processed.
|
||||
.It Fl F
|
||||
This option must be followed by the name of a text file. The file will be
|
||||
read and arguments will be extracted from the file. When the end of file
|
||||
is reached, additional arguments are again extracted from the command
|
||||
line. This allows more object modules than will fit on the standard command
|
||||
line to be processed at one time.
|
||||
.Pp
|
||||
For example, these commands add all files with a
|
||||
.Ar .OBJ
|
||||
extension to the library.
|
||||
.Pp
|
||||
.Dl Nm DIR Ar *.OBJ > Pa OBJLIST
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Fl F Ar OBJLIST
|
||||
.It Fl L
|
||||
This option causes a list of the files in the library to be printed.
|
||||
Associated with each file name is a file number. This number will also
|
||||
appear in the symbol listing which indicates which file contains the
|
||||
module that defines that symbol. This command will display the names
|
||||
of all files added to a library.
|
||||
.Pp
|
||||
.Dl Nm Fl L Ar MYLIB.LIB
|
||||
.Pp
|
||||
This command adds two files to the library.
|
||||
.Pp
|
||||
.Dl Nm Fl AL Ar MYLIB.LIB Ar LIBSRC1.OBJ Ar LIBSRC2.OBJ
|
||||
.Pp
|
||||
After the files are added, a list of all the files in the library will
|
||||
be printed.
|
||||
.It Fl S
|
||||
This option causes the dictionary of symbols contained in the library to
|
||||
be printed. The dictionary is printed in alphabetical order. The number
|
||||
of the file that defined the symbol along with the offset into the
|
||||
library of the module that defined it are printed beside the symbol name.
|
||||
.It Fl X
|
||||
The modules in the library that originally came from the named files
|
||||
are extracted from the library and placed into files with the same
|
||||
name. After extraction, the modules in the library are deleted.
|
||||
.Pp
|
||||
The following example extracts two files from a library.
|
||||
.Pp
|
||||
.Dl Nm Fl X Ar MYLIB.LIB Ar LIBSRC3.OBJ Ar LIBSRC1.OBJ
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.\" .Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
405
man1/wdcln.1
Normal file
405
man1/wdcln.1
Normal file
@ -0,0 +1,405 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCLN 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdclib
|
||||
.Nd WDC linker
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl BEGNQTVWX
|
||||
.Op Fl Hxx
|
||||
.Op Fl Mxx
|
||||
.Op Fl Sxx
|
||||
.Op Fl O Ar output
|
||||
.Op Fl Zsec=XX,XX
|
||||
.Op Fl Asec=XX,XX
|
||||
.Op Fl C=XX,XX
|
||||
.Op Fl D=XX,XX
|
||||
.Op Fl K=XX,XX
|
||||
.Op Fl U=XX,XX
|
||||
.Op Fl F Ar argfile
|
||||
.Op Fl L Ar library
|
||||
.Op Ar objfile ...
|
||||
.Sh DESCRIPTION
|
||||
The WDC linker,
|
||||
.Nm ,
|
||||
reads one or more object files and/or libraries and merges them into a
|
||||
singleoutput file. References from one module to another are resolved
|
||||
during the link. The linker operates in two passes. In the first pass,
|
||||
each object module is scanned to determine what symbols are defined and
|
||||
what symbols are referenced. Symbols that are defined are entered into a
|
||||
symbol table. When other object modules want the address of a symbol they
|
||||
will look in the symbol table. If the symbol is not in the symbol table
|
||||
it is added to a list of undefined symbols. If a later module defines the
|
||||
symbol it is removed from the undefined list. If a library is encountered,
|
||||
it's dictionary is repeatedly scanned for any symbols that match any of
|
||||
the symbols in the undefined list. If such a symbol is found, the module
|
||||
that defines it is loaded from the library and its symbols are handled
|
||||
just like a normal object module. Through this process, only object modules
|
||||
that are needed are loaded from the library. Libraries are usually placed
|
||||
at the end of the list of object files. At the end of the first pass, all
|
||||
undefined symbol references should be resolved. During the second pass,
|
||||
the linker reads each object module a second time. As it reads each
|
||||
module, it generates the final output file based on the information in
|
||||
the object module.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option is used to specify the relocation and ROM address of the named
|
||||
section. The option is followed by information in the following format:
|
||||
.Pp
|
||||
.Dl Fl A Ns Ar section Ns = Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
where section is the name of the section to be located. The section name
|
||||
is followed by an
|
||||
.Ql =
|
||||
sign which in turn is followed by the relocation
|
||||
address and ROM address separated by a comma. All addresses are assumed
|
||||
to be hexadecimal numbers. If the comma and ROM address are not present,
|
||||
it is assumed that the relocation address will be used for the ROM address
|
||||
as well. If the comma is present and either the relocation address or
|
||||
the ROM address is missing, then the specified address is assumed to be
|
||||
the end of the previously specified section.
|
||||
.It Fl B
|
||||
This option is used to create a file with the same root name as the output
|
||||
file and with the extension
|
||||
.Pa .BNK .
|
||||
This file is similar to the map file and contains bank information.
|
||||
.It Fl C
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined CODE section. The format is:
|
||||
.Pp
|
||||
.Dl Fl C Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl D
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined DATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl D Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl E
|
||||
This option is used to create a file with the same root name as the output
|
||||
file and with the extension
|
||||
.Pa .ERR .
|
||||
This file contains any warnings or error messages generated during the link.
|
||||
.It Fl F
|
||||
This option causes the linker to continue reading options and file names
|
||||
from a file. When done, it then continues reading arguments from the command
|
||||
line. The name of the file follows the option
|
||||
.Fl F .
|
||||
Lines beginning with a
|
||||
.Ql #
|
||||
character are ignored. For example, the following
|
||||
command links
|
||||
.Pa PROG.OBJ
|
||||
with
|
||||
.Pa SUB1.OBJ , ... , SUB4.OBJ ,
|
||||
and
|
||||
.Pa TC.LIB .
|
||||
It reads some arguments from the file
|
||||
.Pa PROG.LNK :
|
||||
.Pp
|
||||
.Dl Nm Pa PROG.OBJ Fl F Ar PROG.LNK Pa TC.LIB
|
||||
.Pp
|
||||
where
|
||||
.Pa PROG.LNK
|
||||
contains:
|
||||
.Bd -literal -offset indent
|
||||
-O PROG.OUT
|
||||
SUB1.OBJ
|
||||
SUB2.OBJ
|
||||
SUB3.OBJ
|
||||
SUB4.OBJ
|
||||
.Ed
|
||||
.Pp
|
||||
.Em WARNING:
|
||||
There is a limit of 5000 files for the source level information
|
||||
contained in reading file names from a file (Include files are counted
|
||||
in this total).
|
||||
.It Fl G
|
||||
This option tell the linker to generate source level information. When
|
||||
specified by itself with no additional symbol style option, the WDC symbol
|
||||
file format is generated. Otherwise, if the
|
||||
.Fl SN
|
||||
Extended MicroTek symbol format option is specified, the source information
|
||||
is added as special records.
|
||||
.It Fl H
|
||||
This option is used to select the format of the hex output file. Four formats
|
||||
are currently supported. The following table shows the name of the format,
|
||||
the option used to generate it, address field size.
|
||||
.Pp
|
||||
.Bl -column "Option" "File" "Size" "Format"
|
||||
.It Sy "Option" Ta Sy "File" Ta Sy "Size" Ta Sy "Format"
|
||||
.It Fl HB Ta Pa .BIN Ta -- Ta Straight Binary
|
||||
.It Fl HI Ta Pa .HEX Ta 16 Ta Intel Hex
|
||||
.It Fl HIE Ta Pa .HEX Ta 32 Ta Extended Intel Hex
|
||||
.It Fl HM19 Ta Pa .S19 Ta 16 Ta Motorola S19
|
||||
.It Fl HM28 Ta Pa .S28 Ta 24 Ta Motorola S28
|
||||
.It Fl HM37 Ta Pa .S37 Ta 32 Ta Motorola S37
|
||||
.It Fl HN Ta Pa .ISX Ta 24 Ta Nintendo Binary
|
||||
.It Fl HT Ta Pa .TEK Ta 16 Ta Tektronix Hex
|
||||
.It Fl HZ Ta Pa .BIN Ta 24 Ta WDC Binary
|
||||
.El
|
||||
.Pp
|
||||
The following binary format is generated if
|
||||
.Fl HZ
|
||||
is specified to the linker:
|
||||
.Pp
|
||||
.Bl -inset -compact -offset indent
|
||||
.It Initial byte 'Z' as signature.
|
||||
.El
|
||||
Then for each block:
|
||||
.Bl -inset -compact -offset indent
|
||||
.It 3 byte address
|
||||
.It 3 byte length length bytes of data
|
||||
.It The final block has an address and length of 0.
|
||||
.It The default is Motorola S19.
|
||||
.El
|
||||
.It Fl J
|
||||
This option causes the module info to be placed in alphabetical order.
|
||||
By default, module info is sorted by section.
|
||||
.It Fl K
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined KDATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl K Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl L
|
||||
This option takes the following characters and adds
|
||||
.Pa .LIB
|
||||
to form the name of the library. The default library directories specified
|
||||
in the
|
||||
.Ev WDC_LIB
|
||||
environment variable are then searched for the fully defined file name.
|
||||
.Pp
|
||||
For example, the command:
|
||||
.Pp
|
||||
.Dl Nm Fl J Fl L Ns Ar CL
|
||||
.Pp
|
||||
will look for the file
|
||||
.Pa CL.LIB .
|
||||
.Pp
|
||||
.Em Note:
|
||||
The order of the libraries is important! The linker will pull in the
|
||||
functions it needs from the
|
||||
.Em first
|
||||
library it sees. For example,
|
||||
the following command:
|
||||
.Pp
|
||||
.Dl Nm Pa Sample.obj Fl L Ns Ar MS Fl L Ns Ar CS
|
||||
.Pp
|
||||
will pull in the
|
||||
.Fn scanf
|
||||
and
|
||||
.Fn printf
|
||||
functions from the floating point library as it is specified first. This
|
||||
will result in larger code size! Therefore, If you are using floating
|
||||
point math, put
|
||||
.Fl L Ns Ar MS
|
||||
before
|
||||
.Fl L Ns Ar CS
|
||||
so the proper functions are included.
|
||||
.Pp
|
||||
If you are NOT using floating point math, do not include
|
||||
.Fl L Ns Ar MS
|
||||
on the command line, or put it after
|
||||
.Fl L Ns Ar CS
|
||||
.Pp
|
||||
.Em Note:
|
||||
For the W65C02, use
|
||||
.Pa c.lib
|
||||
and/or
|
||||
.Pa m.lib .
|
||||
For the W65C816, use
|
||||
.Pa coc.lib , col.lib , com.lib , ms.lib , mm.lib , mc.lib , ml.lib ,
|
||||
.Pa cs.lib , cm.lib , cc.lib ,
|
||||
and/or
|
||||
.Pa cl.lib.
|
||||
.It Fl M
|
||||
This option is used to select a special machine mode. Currently, the only
|
||||
available machine modes are
|
||||
.Fl MN , MN80 ,
|
||||
and
|
||||
.Fl MN21
|
||||
which stand for Nintendo, slow and fast, and Nintendo Mode 21 respectively.
|
||||
.It Fl N
|
||||
If this option is specified, the linker will not place any symbols defined
|
||||
in a
|
||||
.Pa .QCK
|
||||
file into the symbol file. This is useful if the
|
||||
.Pa .QCK
|
||||
file is created from a large amount of data whose symbols are not required
|
||||
after linking. The symbol file can be significantly smaller if the data
|
||||
symbols are discarded.
|
||||
.It Fl O
|
||||
Option
|
||||
.Fl O
|
||||
can be used to specify the name of the file to which the linker is to
|
||||
write the executable program. The name of this file is in the parameter
|
||||
that follows
|
||||
.Fl O .
|
||||
For example, the following command writes the executable program to the
|
||||
file
|
||||
.Pa PROG.OUT :
|
||||
.Pp
|
||||
.Dl Nm Fl O Ar PROG.OUT Pa PROG.OBJ Pa TC.LIB
|
||||
.Pp
|
||||
If this option is not used, the linker derives the name of the executable
|
||||
file from that of the first input file with the extension changed to
|
||||
reflect the type of hex file being generated.
|
||||
.It Fl P
|
||||
This option sets the fill characters in the hex output file. The default,
|
||||
(no
|
||||
.Fl P Ns No ),
|
||||
does not add any fill characters to the hex output file. If this option is
|
||||
specified as
|
||||
.Fl PFF ,
|
||||
it will fill in the blank areas of the hex output file with
|
||||
.Li $FF Ns \(aqs
|
||||
(all 1\(aqs). If this option is specified as
|
||||
.Fl P00 ,
|
||||
it will fill in the blank areas of the hex output file with zeros (0\(aqs).
|
||||
.It Fl Q
|
||||
As the linker reads files and modules, it displays the name of each module.
|
||||
Each subsequent module name overwrites the preceding name. This option
|
||||
tells the linker not to display module names.
|
||||
.\"
|
||||
.\" -S
|
||||
.\"
|
||||
.It Fl S
|
||||
This option controls the generation of symbol file information. By default,
|
||||
no symbol file is generated. When this option is specified, a symbol file
|
||||
is generated which can be used to aid in debugging the application.
|
||||
.Pp
|
||||
The following table shows the options and the formats generated.
|
||||
.Pp
|
||||
.Bl -column "Option" "Format"
|
||||
.It Sy "Option" Ta Sy "Format"
|
||||
.It Fl S2 Ta 2500AD symbol format
|
||||
.It Fl SM Ta MicroTek symbol format
|
||||
.It Fl SN Ta Extended MicroTek symbol format
|
||||
.It Fl SQ Ta Quick link object file
|
||||
.It Fl SZ Ta WDC symbol format
|
||||
.El
|
||||
.Pp
|
||||
The linker supports an extension to the Extended MicroTek symbol file format.
|
||||
.Pp
|
||||
The linker generates the following additional symbol records if the
|
||||
.Fl G
|
||||
(source level info) option and
|
||||
.Fl SN
|
||||
options have been selected.
|
||||
.Pp
|
||||
.Bl -tag -width indent -compact
|
||||
.It 0-9
|
||||
Standard MicroTek symbol type - global symbols
|
||||
.It 50-59
|
||||
Standard MicroTek symbol type - local symbols
|
||||
.It 101
|
||||
Single character name that is the status Register as specified by
|
||||
LONGA/LONGI
|
||||
directives. In other words, if
|
||||
LONGA ON
|
||||
is specified a 101 record will be generated with a
|
||||
$20 as the ps value.
|
||||
.It 102
|
||||
A two character name (low,high) that is the line number associated
|
||||
with this address.
|
||||
.It 103
|
||||
The name is the source file name associated with the object module.
|
||||
.It 120+N
|
||||
A zero length name with the address being the starting address for
|
||||
section N. Section 1 is CODE, section 2 is DATA, section 3 is UDATA.
|
||||
Other sections can probably be ignored unless you want to handle them.
|
||||
.It 150+N
|
||||
A zero length name with the address being the ending address for section N.
|
||||
.El
|
||||
.\"
|
||||
.\" -T
|
||||
.\"
|
||||
.It Fl T
|
||||
This option instructs the linker to generate a text map file with the
|
||||
extension
|
||||
.Pa .MAP .
|
||||
The final address of each symbol is listed.
|
||||
.It Fl U
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined UDATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl U Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name. The UDATA section is a little different
|
||||
since it never needs to be in the ROM at all since it contains
|
||||
uninitialized data.
|
||||
.Fl V
|
||||
This option displays additional information to the screen giving the names
|
||||
of variables and their locations.
|
||||
.It Fl W
|
||||
This option disables warnings from the linker. The linker will warn if a
|
||||
symbol defined in a program module overrides a symbol defined in a library
|
||||
module. This warning is useful for preventing hard to track down errors
|
||||
such as when the user defines a routine called write that overrides the
|
||||
library write routine.
|
||||
.Pp
|
||||
.Em Note:
|
||||
This option not used after V3.10
|
||||
.It Fl X
|
||||
This option directs the linker to use EMM memory mapping to provide
|
||||
additional space for linking programs with large numbers of symbols. It
|
||||
must be the first option specified.
|
||||
.\" -Z
|
||||
.It Fl Z
|
||||
This option is used to specify the top and bottom address to use when
|
||||
spreading the indicated section of various modules across multiple
|
||||
banks of memory. The format is:
|
||||
.Pp
|
||||
.Dl Fl Z Ns Ar section Ns = Ns Op Cm bottom Ns Op , Ns Cm top
|
||||
.Pp
|
||||
The section specified by
|
||||
.Ar section
|
||||
will be marked for spreading. The default bottom is
|
||||
.Ad 0000
|
||||
and the default top is
|
||||
.Ad $1:0000 .
|
||||
If no bottom or top is specified, the default is used. The first byte of
|
||||
the section is specified using the ROM and relative org directives.
|
||||
.Pp
|
||||
The sub-options for
|
||||
.Fl Z
|
||||
are:
|
||||
.Fl Z Ns Ar section Ns = ,
|
||||
.Fl Z Ns Ar code Ns = ,
|
||||
and
|
||||
.Fl Z Ns Ar data Ns = .
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the execution of
|
||||
.Nm :
|
||||
.Bl -tag -width indent
|
||||
.It Ev WDC_LIB
|
||||
A semi-colon separated list of directories to search if an
|
||||
input file cannot be found in the current directory.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.\" .Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
77
man1/wdcobj.1
Normal file
77
man1/wdcobj.1
Normal file
@ -0,0 +1,77 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCOBJ 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdcobj
|
||||
.Nd Examine WDC object modules
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl DLRS
|
||||
.Ar objfile
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
utility provides a means to examine object modules created by the
|
||||
.Nm WDCxAS
|
||||
assembler.
|
||||
.Nm
|
||||
will print out the size and type of each section defined in the module, the
|
||||
names of all symbols defined or referenced by the object module, and if
|
||||
desired, each of the data records in the file. The
|
||||
.Nm
|
||||
utility is of limited usefulness to the typical programmer and is included
|
||||
for completeness. Options allow control of the information displayed.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl D
|
||||
This option causes display of any source debug information records present
|
||||
in the object module. The appropriate options must have been specified when
|
||||
compiling or assembling for debug information to be present. The default is
|
||||
to NOT display debug information.
|
||||
.It Fl L
|
||||
Normally, when the records are displayed, all the data in the record is
|
||||
displayed in hexadecimal format. When option
|
||||
.Fl L
|
||||
is specified, the data in the record is not displayed. This option is useful
|
||||
for examining the structure of a file without displaying all the individual
|
||||
data.
|
||||
.Pp
|
||||
To examine the individual records in an object module but without seeing all
|
||||
of the data bytes, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl L Ar PROG.OBJ
|
||||
.Pp
|
||||
.It Fl R
|
||||
This option causes display of each of the individual records in the object
|
||||
module. Information about the object file format is available on request.
|
||||
.Pp
|
||||
To examine the individual records in an object module, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl R Ar PROG.OBJ
|
||||
.Pp
|
||||
.It Fl S
|
||||
Normally, when
|
||||
.Nm
|
||||
is run, the information for the sections is followed by the symbol
|
||||
information. When the
|
||||
.Fl S
|
||||
option is specified, the symbol information is suppressed.
|
||||
.Pp
|
||||
The following command displays just the section names and types of all
|
||||
modules in the file
|
||||
.Ar PROG.OBJ :
|
||||
.Pp
|
||||
.Dl Nm Fl S Ar PROG.OBJ
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.\" .Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
84
man1/wdcsym.1
Normal file
84
man1/wdcsym.1
Normal file
@ -0,0 +1,84 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCSYM 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdcsym
|
||||
.Nd Examine WDC symbol tables
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl ALS
|
||||
.Ar symfile
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
utility provides a means to examine symbol files generated by the
|
||||
.Nm WDCLN linker.
|
||||
.Nm
|
||||
will print out the sections defined in the target program and if desired the
|
||||
line tables, symbol records, auxiliary records and global symbols.
|
||||
.Pp
|
||||
Note:This is only for
|
||||
.Em ZARDOZ
|
||||
symbol files. See the
|
||||
.Nm WDCLN
|
||||
manual and the
|
||||
.Fl G
|
||||
and
|
||||
.Fl HZ
|
||||
options.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option causes the display of the auxiliary table. This table contains
|
||||
typing information, array sizes and other information used in source level
|
||||
debugging. Only one table is present in the symbol file and is referenced
|
||||
by all sections and modules.
|
||||
.It Fl L
|
||||
This option causes the display of the line information data for each section
|
||||
in the symbol file.
|
||||
.It Fl S
|
||||
This option causes the display of all global symbol records in the symbol
|
||||
file. Normally, the global symbol records are suppressed.
|
||||
.Pp
|
||||
The following command displays the section information, and symbols for all
|
||||
sections and the global symbols as well.
|
||||
.Pp
|
||||
.Dl Nm Fl S Ar PROG.SYM
|
||||
.Pp
|
||||
.El
|
||||
The basic structure of the file is outlined as follows:
|
||||
.Bl -inset -compact -offset indent
|
||||
.It File Header
|
||||
.It Module 1 Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It Section 1 Information
|
||||
.It ...
|
||||
.It Section N Information
|
||||
.It Line Record Information
|
||||
.El
|
||||
.It Module 2 Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It ...
|
||||
.El
|
||||
.It Module N Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It ...
|
||||
.El
|
||||
.It Global Symbol Records
|
||||
.It String Table
|
||||
.It Auxiliary Record Table
|
||||
.It Source File Information
|
||||
.It End of file
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.\" .Xr wdclib 1 ,
|
||||
.Xr wdcobj 1
|
||||
.\" .Xr wdcsym 1
|
Loading…
Reference in New Issue
Block a user