diofnc10.c

来自「8255可编程通用并行接口电路的8086开发包,c语言编写」· C语言 代码 · 共 57 行

C
57
字号
/*-
 *  ----------------------------------------------------------------------
 *  File        :   DIOFNC10.C
 *  Creator     :   Blake Miller
 *  Version     :   01.01.00            February 1991
 *  Language    :   Microsoft Quick C   Version 2.0
 *  Purpose     :   Intel 8255 Compatible Digital IO Functions
 *                  80X86 IN Instruction Function
 *  ----------------------------------------------------------------------
 *  WARNING: Inline Assembly Language Here!
 *  ----------------------------------------------------------------------
 *  Revision History:
 *  022891 BVM  :   Change int to short.
 *  070490 BVM  :   Creation
 *  ----------------------------------------------------------------------
 */

#define     DIOFNC10_C_DEFINED  1
#undef      DIOFNC10_C_DEFINED

void dio_bget (short d_port, unsigned char *d_byte);

/*- DIO : Byte Get ---------------------------**
 *  Read a byte from one of the 80X86 ports.
 *  Duplicates the library function inp()
 */
void dio_bget (short d_port, unsigned char *d_byte)
	{
	unsigned char   t_byte = 0; /* temporary byte   */

	/*  set port address
	 *  get data into AL
	 *  store data into temporary variable
	 *  Note: Use temporary variable because ASM has no idea
	 *  what a pointer to an unsigned char is!
	 */
	_asm    {
		PUSH    AX
		PUSH    DX

		MOV     DX, d_port
		IN      AL, DX          ; get byte into AL
		MOV     t_byte, AL      ; transfer data to C

		POP     DX
		POP     AX
		}

	*d_byte = t_byte;   /* transfer data to caller  */
	}

/*-
 *  ----------------------------------------------------------------------
 *  END DIOFNC10.C Source File
 *  ----------------------------------------------------------------------
 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?