home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
his
/
source
/
hisinner.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-06-20
|
3KB
|
78 lines
/***********************************************************************
* *
* ハードウェア割り込み支援ライブラリ *
* *
* ~ 共通インクルードファイル ~ *
* *
* 1995.6.12 by ちょもらんま *
* *
***********************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <his.h>
#define HardwareIntTypes 16
#define HardVector 0x40
/***********************************************************************/
/* 外部変数 */
/***********************************************************************/
/*----------------- ユーザー割り込みハンドラ記録用構造体 --------------*/
typedef struct
{
_Far void (*handlerAdr)();
unsigned short dataSegment;
} userHandler_t;
extern userHandler_t userHandler[ HardwareIntTypes ];
/*-------------------- 旧割り込みハンドラ支援用構造体 -----------------*/
/* 割り込みハンドラアドレス&割り込みマスクレジスタ(IMR)の記録 */
typedef struct
{
void *nextInfo; /* 次のハンドラ情報へのポインタ */
int IMR; /* ハンドラ登録時点での
指定された割り込みに対応する
IMRの値 */
_real_int_handler_t RealHandler; /* 退避したリアル側ハンドラ */
_Handler NativeHandler; /* 退避したネイティブ側ハンドラ */
unsigned short dataSegment; /* 退避したハンドラのDSの値 */
} intInfo;
/*--- 旧割り込みハンドラアドレス&割り込みマスクレジスタの記録状態 ----*/
extern intInfo *topIntInfo[ HardwareIntTypes ];
/*-------------------- 割り込みハンドラ用スタック支援 -----------------*/
extern char *stackAddress;
/***********************************************************************/
/* 割り込みエントリ */
/***********************************************************************/
void HardIntEntry0 ( void );
void HardIntEntry1 ( void );
void HardIntEntry2 ( void );
void HardIntEntry3 ( void );
void HardIntEntry4 ( void );
void HardIntEntry5 ( void );
void HardIntEntry6 ( void );
void HardIntEntry7 ( void );
void HardIntEntry8 ( void );
void HardIntEntry9 ( void );
void HardIntEntry10( void );
void HardIntEntry11( void );
void HardIntEntry12( void );
void HardIntEntry13( void );
void HardIntEntry14( void );
void HardIntEntry15( void );