Set FP_OFF (), FP_SEG() for the callback function at interrupt setting in WonderWitch
Adjust appropriately according to the setting method. (Fit to wwterm)
UNIXTimer.c: UNIXTimer_Unpause()
((unix_timer -> pause == 1) && (unix_timer -> interrupt_in_pause == 0))
Fixed a bug that was not unix_timer-> pause--; when it was.
(It was not unposted when interrupt was not applied during pause)
Serial receive interrupt, keyboard interrupt added. (corresponding to wwterm, operation confirmed)
Added UNIXSerialPort class.
With this, at WonderWitch,
com_intvector.callback = (void (near *) ()) FP_OFF (com_handler);
com_intvector.cs = _ asm_inline ("\tmov \tax, cs");
com_intvector.ds = _ asm_inline ("\tmov \tax, ds");
sys_interrupt_set_hook (SYS_INT_RECEIVEREADY,
& com_intvector, & com_last_intvector);
Interrupt setting like that shown in Fig.
For warning, add WonX_Warning ().
Move WonX_Error () to WonX.c.
comm_send_string (), text_put_string (), text_put_substring () When executed
Fix output message.
Implement cursor display function. (Add WWCursor class) (Do not blink. Display only)
When displaying the cursor, text information inside WWDisplay_DrawLCDPanel ()
Since we need to be able to read it, we will discontinue the WonXText class and add the WWText class
I moved to a member of the WWDisplay class.
In palette_get_color (), transparent color is displayed when executing WWPalette_GetMappedColors ()
Since it was not considered to be returned as -1, palette_get_color ()
Fixed a bug where return value was wrong value.
Character color palette, LCD color palette initial value, with WonderWitch
It was made to coincide with the initial value.
As a sample, add wwterm - b 05. (Add wwterm target to Makefile)
Version 1.1 - from wonx-1.1.tar.gz
106 lines
4.8 KiB
C
106 lines
4.8 KiB
C
#ifndef _UNIXTimer_h_INCLUDED_
|
||
#define _UNIXTimer_h_INCLUDED_
|
||
|
||
/*****************************************************************************/
|
||
/* ここから */
|
||
/*****************************************************************************/
|
||
|
||
/*****************************************************************************/
|
||
/* クラスの定義 */
|
||
/*****************************************************************************/
|
||
|
||
typedef struct _UNIXTimer * UNIXTimer;
|
||
typedef int (*UNIXTimerCallBack)(void *);
|
||
|
||
/*****************************************************************************/
|
||
/* ヘッダファイルのインクルード */
|
||
/*****************************************************************************/
|
||
|
||
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
|
||
/*****************************************************************************/
|
||
/* メンバ関数の宣言 */
|
||
/*****************************************************************************/
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* タイマの ON, OFF */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
int UNIXTimer_ON(UNIXTimer unix_timer);
|
||
int UNIXTimer_OFF(UNIXTimer unix_timer);
|
||
int UNIXTimer_IsON(UNIXTimer unix_timer);
|
||
int UNIXTimer_IsOFF(UNIXTimer unix_timer);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* 一時停止 */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
/*
|
||
* 関数の先頭と末尾を Pause, Unpause でくくるばあいなどは,
|
||
* 関数から関数を呼び出したときに,2重 Pause, Unpause が起きるので
|
||
* 注意すること.(ただし,ポーズはネストできる)
|
||
*/
|
||
|
||
/*
|
||
* ポーズはネストされるので,UNIXTimer_Unpause() を安易に繰り返し呼んだり
|
||
* しないように注意すること.
|
||
*/
|
||
|
||
int UNIXTimer_Pause(UNIXTimer unix_timer);
|
||
int UNIXTimer_Unpause(UNIXTimer unix_timer);
|
||
int UNIXTimer_IsPause(UNIXTimer unix_timer);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* オートプリセット */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
int UNIXTimer_SetAutoPreset(UNIXTimer unix_timer);
|
||
int UNIXTimer_ResetAutoPreset(UNIXTimer unix_timer);
|
||
int UNIXTimer_IsAutoPreset(UNIXTimer unix_timer);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* インターバル */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
int UNIXTimer_GetInterval(UNIXTimer unix_timer);
|
||
int UNIXTimer_SetInterval(UNIXTimer unix_timer, int interval);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* コールバック関数の呼び出し時のパラメータ */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
void * UNIXTimer_GetParameter(UNIXTimer unix_timer);
|
||
void * UNIXTimer_Setparameter(UNIXTimer unix_timer, void * parameter);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* コールバック関数の取得・登録 */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
UNIXTimerCallBack UNIXTimer_GetCallBack(UNIXTimer unix_timer);
|
||
UNIXTimerCallBack UNIXTimer_SetCallBack(UNIXTimer unix_timer,
|
||
UNIXTimerCallBack callback);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* オブジェクトの作成 */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
UNIXTimer UNIXTimer_Create(int auto_preset, int interval, void * parameter,
|
||
UNIXTimerCallBack callback);
|
||
|
||
/*---------------------------------------------------------------------------*/
|
||
/* オブジェクトの削除 */
|
||
/*---------------------------------------------------------------------------*/
|
||
|
||
UNIXTimer UNIXTimer_Destroy(UNIXTimer unix_timer);
|
||
|
||
/*****************************************************************************/
|
||
/* ここまで */
|
||
/*****************************************************************************/
|
||
|
||
#endif
|
||
|
||
/*****************************************************************************/
|
||
/* End of File. */
|
||
/*****************************************************************************/
|