📄 platform.h
字号:
// This header file is used for system define
// Also define some capability for different system
#ifndef _PLATFORM_H
#define _PLATFORM_H
// add a system define here
// choose only 1 system from below
// [Application Platform]
#define SYSTEM_8051 // Run under 8051 system: WINDVD/ Test/ Play/ Simple
//#define EMULATOR_DOS // Run under DOS prompt: WINDVD
//#define EMULATOR_WINDOWS // Run under Windows environment: WINDVD
//#define TEST_DOS // Run under DOS prompt, Test program(Test IC function)
//#define PLAY_DOS // Run under DOS prompt, Play program(use initial file)
//#define SIMPLE_DOS // Run under DOS prompt, Simple play program
// Chuan0.83a, Define it to support EPP1.9 instead of PCI Bridge
#if defined(EMULATOR_DOS) || defined(TEST_DOS) || defined(PLAY_DOS) || defined(SIMPLE_DOS)
#define IO_EPP
#endif
// OS is Win2000. WIN2000 will be enabled within makefile.
// When enabled, will use the PCI library from 2000(through WDM driver).
// Else will use direct I/O PCI library(D300 build)
// Don't open the define WIN2000 here
//#define WIN2000
#ifdef WIN2000
// through WDM driver
#define IO_PCI_WDM
#endif
// VC 32bit compiler will auto add the define WIN32.
// When enabled, use 32 bits APIs for Timer/ RS232
// Don't open the define WIN32
//#define WIN32
// add a OS type define here
#define OS_NATIVE 1 // such as 8051
#define OS_DOS 2
#define OS_WINDOWS 3
// add CPU type define here
#define CPU_8051 1
// To be removed @2.80
#define CPU_PARISC 2
#define CPU_X86 3
// add I/O type
#define IO_8051 1 // 8051 bus
#define IO_PCI 2 // PCI bus
// [Selected by System Configuration]
// !!! can't open the define directly !!!!
/// define it, means the CPU is little endian
/// else, default is big endian
// #define USE_LITTLE_ENDIAN
/// define it, means don't support H/W interrupt.(INT1, IR)
/// else, default support H/W interrupt processed by ISR
// #define NOT_SUPPORT_HWINT
/// define it, will check if the down load ucode are correct.
/// else, default don't check for saving time.
// #define CHECK_UCODE_LOAD
/// define it, means can use printf to print some message.
/// else, default don't printf the message.
// #define SUPPORT_PRINTF
/// define it, means will use standard C library
/// ekse, default don't support it.
// #define USE_STD_C_LIB
/// define it, means the application is under Windows.
/// else, default is DOS prompt or 8051 application.
// #define APPLICATION_WINDOWS
/// define it, means support file I/O
/// else, default don't support file I/O
// #define SUPPORT_FILE_IO
/// define it, will read CDROM data from disc directly.
/// else, default read CDROM data from DRAM(Will do CDROM decode)
/// for example, EMULATOR_XX _+ INPUT_PATH_HOSTIF case.
// #define DUMP_CDROM_DATA_FROM_DISC
// must add a block for each system description
// include OS, CPU type, system capability
/// [System Configuration]
#ifdef SYSTEM_8051
#define OS OS_NATIVE
#define CPU CPU_8051
#define IO IO_8051
#endif
#ifdef EMULATOR_DOS
#define OS OS_DOS
#define CPU CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO IO_PCI
#endif
#ifdef EMULATOR_WINDOWS
#define OS OS_WINDOWS
#define CPU CPU_X86
#define APPLICATION_WINDOWS
#define NOT_SUPPORT_HWINT
#define NOT_SUPPORT_TIMER
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define IO IO_PCI
#endif
#ifdef TEST_DOS
#define OS OS_DOS
#define CPU CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define NOT_SUPPORT_TIMER
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO IO_PCI
#endif
#ifdef PLAY_DOS
#define OS OS_DOS
#define CPU CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define USE_INITIAL_FILE
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO IO_PCI
#endif
#ifdef SIMPLE_DOS
#define OS OS_DOS
#define CPU CPU_X86
#define USE_STD_C_LIB
#define NOT_SUPPORT_HWINT
#define CHECK_UCODE_LOAD
#define NO_PANEL
#define SUPPORT_PRINTF
#define SUPPORT_FILE_IO
#define IO IO_PCI
#endif
// adding header file here
#include "comdef.h"
#ifdef USE_STD_C_LIB
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <malloc.h>
#endif
#if CPU == CPU_X86
#define USE_LITTLE_ENDIAN
#endif
#if (CPU != CPU_8051)
#define NOP
// only 8051 has these define
extern BYTE EA, EX0, EX1;
#define data
#define xdata
#define code
#define pragma
#define NOAREGS
#define DISABLE
#define OPTIMIZE(a, b)
#define bit BYTE
#else
#define NOP _nop_ ();
#endif
#if ( IO == IO_PCI)
// Chuan0.83a, Remapping PCI I/O function
// This part should be after C's standard header files, ex. stdio.h, conio.h, ...
// Otherwise, it will remapping declarations of those functions, _inpdw, _inp, _outpdw, and _outp, and caused errors reported.
#ifdef IO_EPP //////////////////////////
#include "./Servo/EPP.h"
#define _inpdw EPP_ReadDWORD
#define _inpd EPP_ReadDWORD
#define _inp EPP_ReadByte
#define _outpdw EPP_WriteDWORD
#define _outpd EPP_WriteDWORD
#define _outp EPP_WriteByte
#else // else of #ifdef IO_EPP ////////
#ifdef IO_PCI_WDM
#include "PCIBridge.h"
// Remapping PCI I/O function
// This part should be after C's standard header files, ex. stdio.h, conio.h, ...
// Otherwise, it will remapping declarations of those functions, _inpdw, _inp, _outpdw, and _outp, and caused errors reported.
#define _inpdw PCI_ReadDWORD
#define _inpd PCI_ReadDWORD
#define _inp PCI_ReadByte
#define _outpdw PCI_WriteDWORD
#define _outpd PCI_WriteDWORD
#define _outp PCI_WriteByte
#else
#include "pci.h"
#endif
#endif // End of #ifdef IO_EPP /////////
#endif // End
// Brian.276p, support _printf
#ifdef SUPPORT_PRINTF
#define PRINTF printf
#endif
extern void _printf(char *fmt, ...);
// Micky2.80p, move to winav.h when SERIAL_DEBUG is defined.
/*
// define this to let emulator also use _printf to output data
#define printf _printf
*/
//brian0.85-3rd
// DTS-GXA workaround
#define ACK_FROM_OTHERS
#endif //_PLATFORM_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -