serial.c

来自「newos is new operation system」· C语言 代码 · 共 47 行

C
47
字号
#include "of.h"#include "isa.h"#define SERIAL_REG(x) (*(volatile unsigned char *)(0xfe000000 | (x)))int init_serial(void){	isa_write8(0x2fb, 0x80);	isa_write8(0x2f8, 1);	isa_write8(0x2f9, 0);	isa_write8(0x2fb, 0x3);	return 0;}void serial_write(const void *_buf, int len){	const unsigned char *buf = _buf;	int i;	for(i=0; i < len; i++) {		while ((isa_read8(0x2fd) & 0x20) == 0)			;		isa_write8(0x2f8, buf[i]);	}}int serial_read(void *_buf, int len){	unsigned char *buf = _buf;	int i;	for(i=0; i < len; i++) {		while ((isa_read8(0x2fd) & 1) == 0)			;		buf[i] = isa_read8(0x2f8);	}	return i;}int serial_read_int32(int *buf){	if(serial_read(buf, 4) != 4)		return -1;	return 0;}

⌨️ 快捷键说明

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