⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 terminal.mod

📁 minix3的源代码
💻 MOD
字号:
#(*  (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.  See the copyright notice in the ACK home directory, in the file "Copyright".*)(*$R-*)IMPLEMENTATION MODULE Terminal;(*  Module:       Input/Output to/from terminals  Author:	Ceriel J.H. Jacobs  Version:      $Header: /cvsup/minix/src/lib/ack/libm2/Terminal.mod,v 1.1 2005/10/10 15:27:46 beng Exp $  Implementation for Unix.*)  FROM	SYSTEM IMPORT	ADR;#ifdef __USG  FROM	Unix IMPORT	read, write, open, fcntl;#else  FROM	Unix IMPORT	read, write, open, ioctl;#endif  VAR fildes: INTEGER;      unreadch: CHAR;      unread: BOOLEAN;      tty: ARRAY[0..8] OF CHAR;  PROCEDURE Read(VAR ch: CHAR);  BEGIN	IF unread THEN		ch := unreadch;		unread := FALSE	ELSE		IF read(fildes, ADR(ch), 1) < 0 THEN			;		END;	END;	unreadch := ch;  END Read;  PROCEDURE BusyRead(VAR ch: CHAR);    VAR l: INTEGER;  BEGIN	IF unread THEN		ch := unreadch;		unread := FALSE	ELSE#ifdef __USG		l := fcntl(fildes, (*FGETFL*) 3, 0);		IF fcntl(fildes,			      (* FSETFL *) 4,			      l + (*ONDELAY*) 2) < 0 THEN			;		END;		IF read(fildes, ADR(ch), 1) = 0 THEN			ch := 0C;		ELSE			unreadch := ch;		END;		IF fcntl(fildes, (*FSETFL*)4, l) < 0 THEN			;		END;#else#ifdef __BSD4_2		IF ioctl(fildes, INTEGER(ORD('f')*256+127+4*65536+40000000H), ADR(l)) < 0 THEN#else		IF ioctl(fildes, INTEGER(ORD('f')*256+127), ADR(l)) < 0 THEN#endif			;		END;		IF l = 0 THEN			ch := 0C;		ELSE			IF read(fildes, ADR(ch), 1) < 0 THEN				;			END;			unreadch := ch;		END;#endif  	END;  END BusyRead;	  PROCEDURE ReadAgain;  BEGIN	unread := TRUE;  END ReadAgain;  PROCEDURE Write(ch: CHAR);  BEGIN	IF write(fildes, ADR(ch), 1) < 0 THEN		;	END;  END Write;  PROCEDURE WriteLn;  BEGIN	Write(12C);  END WriteLn;  PROCEDURE WriteString(s: ARRAY OF CHAR);    VAR i: CARDINAL;  BEGIN	i := 0;	WHILE (i <= HIGH(s)) & (s[i] # 0C) DO		Write(s[i]);		INC(i)	END  END WriteString;BEGIN	tty := "/dev/tty";	fildes := open(ADR(tty), 2);	unread := FALSE;END Terminal.

⌨️ 快捷键说明

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