📄 slcomm.def
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////
//////// slcomm.def (speak, listen common)
////////
//////// 1998 Oct. 16 inazumi Ver.0.1
////////
//////// 丒壓偺峔憿懱偺僨乕僞暲傃偵埶懚偡傞僐乕僪偑偁傞偺偱
//////// 丂僨乕僞偺暲傃傪曄峏偟偰偼側傜側偄丅
////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// boolean Constant
//////
#define BOOL_FAILURE 0x00
#define BOOL_SUCCESS 0x01
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// internal register base address
//////
#define INTERNAL_REG_BASE 0x00040140
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// struct QueueEntry
////// {
////// int Length//
////// void *Buffer//
////// }
//////
#define OFFSET_LENGTH 0x00 // 4 : int
#define OFFSET_BUFFER 0x04 // 4 : (void *)
#define LOG_ENTRY_SIZE 0x03 // 8 = LENGTH(4)+BUFFER(4)
#define SIZEOF_QUEUE_ENTRY 1<<LOG_ENTRY_SIZE
#define LOG_QUEUE_ENTRIES 0x04
#define QUEUE_ENTRIES 1<<LOG_QUEUE_ENTRIES // 16 : max. 32
#define QUEUE_MASK QUEUE_ENTRIES-1
#define SIZEOF_QUEUE_ENTRIES QUEUE_ENTRIES*SIZEOF_QUEUE_ENTRY
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// struct QueueParams
////// {
////// BYTE CSR;
////// BYTE QUEUE_HEAD;
////// BYTE QUEUE_TAIL;
////// BYTE QUEUE_DONE;
////// void (*ON_DONE) ();
////// void (*ON_NOT_IN_TIME) ();
////// void (*ON_EMPTY) ();
////// bool (*LOW_LEVEL_FUNC[5])();
////// }
//////
#define OFFSET_CSR 0x00 // 1 : Control/Status
#define OFFSET_QUEUE_HEAD 0x01 // 1 : BYTE
#define OFFSET_QUEUE_TAIL 0x02 // 1 : BYTE
#define OFFSET_QUEUE_DONE 0x03 // 1 : BYTE
#define OFFSET_ON_DONE 0x04 // 4 : void (*func)(SpkParams,Buffer,Length)
#define OFFSET_ON_NOT_IN_TIME 0x08 // 4 : void (*func)(SpkParams,Buffer,Length)
#define OFFSET_ON_QUEUE_EMPTY 0x0c // 4 : void (*func)(SpkParams,Buffer,Length)
#define OFFSET_LOW_LEVEL_FUNC 0x10 // 4
#define OFFSET_QUEUE 0x14 // 8N-bytes
#define SIZEOF_QUEUE_HEADER 0x14
#define SIZEOF_QUEUE_PARAMS SIZEOF_QUEUE_HEADER+SIZEOF_QUEUE_ENTRIES
#define CSR_BITPOS_OPENED 0x00 // 僠儍僱儖偼OPEN偝傟偰偄傞丅
#define CSR_BITPOS_RUNNING 0x01 // 弌椡張棟拞偱偁傞丅
#define CSR_BITPOS_DATA_VALID 0x02 // 尰嵼弌椡偟偰偄傞偺偑Valid僨乕僞偐偳偆偐丅
#define CSR_BITPOS_CALLBACK 0x03 // 俀廳偵Callback張棟儖乕僾偵擖傞偺傪杊偖丅
#define CSR_BITPOS_CALL_EMPTY 0x04 // QueueEmpty張棟傪懡廳偵Call偡傞偺傪杊偖丅
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// struct LowLevelFunc
////// {
////// int Next (BYTE *Params);
////// bool Open (BYTE *Params, int ReloadValue);
////// bool Start(BYTE *Params);
////// bool Halt (BYTE *Params);
////// bool Close(BYTE *Params);
////// }
//////
#define OFFSET_NEXT 0x00
#define OFFSET_OPEN 0x04
#define OFFSET_START 0x08
#define OFFSET_HALT 0x0c
#define OFFSET_CLOSE 0x10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -