saturnng/src/config.h
2024-10-04 17:22:22 +02:00

208 lines
7 KiB
C

#ifndef _CONFIG_H
#define _CONFIG_H 1
/* -------------------------------------------------------------------------
saturn - A poor-man's emulator of some HP calculators
Copyright (C) 1998-2000 Ivan Cibrario Bertolotti
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with the documentation of this program; if not, write to
the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
For more information, please contact the author, preferably by email,
at the following address:
Ivan Cibrario Bertolotti
IRITI - National Research Council
c/o IEN "Galileo Ferraris"
Strada delle Cacce, 91
10135 - Torino (ITALY)
email: cibrario@iriti.cnr.it
------------------------------------------------------------------------- */
/* +-+ */
/* .+
.identifier : $Id: config.h,v 4.1.1.1 2002/11/11 16:13:29 cibrario Exp $
.context : SATURN, Saturn CPU / HP48 emulator
.title : $RCSfile: config.h,v $
.kind : C header
.author : Ivan Cibrario B.
.site : CSTV-CNR
.creation : 28-Jan-1998
.keywords : *
.description :
This file configures the Saturn / HP48 emulator.
.include : *
.notes :
$Log: config.h,v $
Revision 4.1.1.1 2002/11/11 16:13:29 cibrario
Small screen support; preliminary
Revision 4.1 2000/12/11 09:54:19 cibrario
Public release.
Revision 3.16 2000/11/21 16:38:23 cibrario
Ultrix/IRIX support:
- Include config_x.h (automatic exceptions to user configuration)
Revision 3.14 2000/11/13 10:23:43 cibrario
Implemented fast load/save; improved keyboard interface emulation at
high emulated CPU speed:
- New configuration option: CPU_SLOW_IN (enabled by default)
Revision 3.13 2000/11/09 11:21:18 cibrario
Revised to add file selection box GUI element, CPU halt/run
requests and emulator's extended functions:
- Updated documentation of CPU_SPIN_SHUTDN and REAL_CPU_SPEED
- Defined new Chf module identifier: X_FUNC_CHF_MODULE_ID
Revision 3.10 2000/10/24 16:14:25 cibrario
Added/Replaced GPL header
Revision 3.6 2000/10/02 13:52:32 cibrario
ROM handling utilities:
- Added new Chf module identifier: UTIL_CHF_MODULE_ID
Revision 3.5 2000/10/02 09:40:35 cibrario
Linux support:
- documented new compile-time option: REAL_CPU_SPEED
Revision 3.3 2000/09/26 15:24:20 cibrario
Revised to implement Flash ROM write access:
- Added new Chf module identifier FLASH_CHF_MODULE_ID
* Revision 3.2 2000/09/22 13:34:43 cibrario
* Implemented preliminary support of HP49 hw architecture:
* - Re-enabled DEBUG
* - Documented new HP49_SUPPORT option, and enabled it by default
*
* Revision 3.1 2000/09/20 14:15:42 cibrario
* Revised to implement passive CPU shutdown:
* - disabled DEBUG option by default
* - enhanced documentation of CPU_SPIN_SHUTDN; this option is now
* disabled by default.
*
* Revision 2.6 2000/09/15 09:28:48 cibrario
* Enhanced documentation of serial emulation options; added
* template of SERIAL_FORCE_STREAMSPTY definition (commented out
* by default)
*
* Revision 2.5 2000/09/14 15:40:24 cibrario
* - Added description and default values of configuration options
* SERIAL_FORCE_OPENPTY and SERIAL_FORCE_STREAMSPTY.
* - Added new Chf module identifier SERIAL_CHF_MODULE_ID, used by the
* serial port emulation modules.
*
* Revision 2.4 2000/09/12 15:50:40 cibrario
* Added description and default definition of N_PORT_2_BANK
*
* Revision 2.1 2000/09/08 15:43:46 cibrario
* Disabled DEBUG option by default; documented new GUI option
* FORCE_NONMODAL.
*
* Revision 1.1 1998/02/17 14:57:15 cibrario
* Initial revision
*
.- */
#include <stdbool.h>
#include "ui4x/config.h"
/* CHF_EXTENDED_INFO:
Define this symbol if extended information is desired during condition
handling; this is usually useful only for debugging purposes.
*/
#define CHF_EXTENDED_INFO
/* DEBUG:
Define this symbol to include the debugging code for all source modules
in the executable image.
At run-time, the debug level can be set using the function SetDebugLevel();
the initial debug level is set to the value of the symbol DEBUG_LEVEL,
if it is defined, otherwise it is set to zero.
*/
#define DEBUG
/* 2.4: N_PORT_2_BANK
This symbol is used to dimension the HP48GX Port_2: it denotes the
number of 128 Kbyte banks the port must have and must be a power of 2
between 1 and 32, inclusive. When undefined, Port_2 is not emulated at all.
The default value is 8, that is, Port_2 is emulated and its size is 1Mbyte.
*/
// #define N_PORT_2_BANK ( config.model == MODEL_48GX ? 32 : 1 )
#define N_PORT_2_BANK 32
/* 2.5: SERIAL_FORCE_OPENPTY, SERIAL_FORCE_STREAMSPTY
Optionally define exactly one of these symbols to force the use of a
particular pty implementation; if no symbols are defined, the
serial port emulation modules will do their best to automatically
determine the most appropriate implementation for the platform at hand.
*/
/* #define SERIAL_FORCE_OPENPTY */
/* #define SERIAL_FORCE_STREAMSPTY */
/* 3.2: HP49_SUPPORT
Define this symbol to enable HP49-specific support code in the
emulator; it does not harm if this symbol is defined when emulating
a HP48, too, since all changed should be backward-compatible.
*/
#define HP49_SUPPORT
/* 3.14: CPU_SLOW_IN
Define this symbol (recommended) to slow down the A=IN and C=IN
instructions depending on the current emulated CPU speed.
The value of the macro determines the gain of the relation between
CPU speed and slow down ratio.
*/
#define CPU_SLOW_IN 16
/* 4.1.1.1: When defined, this symbol represents the threshold of the long
key pression. When the mouse button is kept pressed on a calculator's key
for more than LONG_PRESS_THR milliseconds, the key stays pressed after
release.
*/
#define LONG_PRESS_THR 750
/* Chf Module Identifiers:
Each main module of the emulator has its own Chf Module Identifier; the
values defined here must match those actually used in the message catalogs.
*/
#define MAIN_CHF_MODULE_ID 10
#define CPU_CHF_MODULE_ID 11
#define MOD_CHF_MODULE_ID 12
#define DISK_IO_CHF_MODULE_ID 13
#define X11_CHF_MODULE_ID 14
#define SERIAL_CHF_MODULE_ID 15 /* 2.5 */
#define FLASH_CHF_MODULE_ID 16 /* 3.3 */
#define UTIL_CHF_MODULE_ID 17 /* 3.6 */
#define X_FUNC_CHF_MODULE_ID 18 /* 3.13 */
#define DEBUG_CHF_MODULE_ID 30
/*---------------------------------------------------------------------------
Global variables
---------------------------------------------------------------------------*/
extern config_t config;
#endif /*!_CONFIG_H*/