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

📄 subr.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic	char sccsid[] = "@(#)subr.c 1.1 92/07/30 SMI"; /* from UCB 4.1 6/27/83 */#endif#include <stdio.h>#include "con.h"abval(q){	return (q>=0 ? q : -q);}xconv (xp){	/* x position input is -2047 to +2047, output must be 0 to PAGSIZ*HORZRES */	xp += 2048;	/* the computation is newx = xp*(PAGSIZ*HORZRES)/4096 */	return (xoffset + xp /xscale);}yconv (yp){	/* see description of xconv */	yp += 2048;	return (yp / yscale);}inplot(){	stty(OUTF, &PTTY);	spew (ACK);}outplot(){	spew(ESC);	spew(ACK);	fflush(stdout);	stty(OUTF, &ITTY);}spew(ch){	if(ch == UP)putc(ESC,stdout);	putc(ch, stdout);}tobotleft (){	move(-2048,-2048);}reset(){	outplot();	exit(0);}floatdist2 (x1, y1, x2, y2){	float t,v;	t = x2-x1;	v = y1-y2;	return (t*t+v*v);}swap (pa, pb)int *pa, *pb;{	int t;	t = *pa;	*pa = *pb;	*pb = t;}movep (xg, yg){	int i,ch;	if((xg == xnow) && (yg == ynow))return;	/* if we need to go to left margin, just CR */	if (xg < xnow/2)	{		spew(CR);		xnow = 0;	}	i = (xg-xnow)/HORZRES;	if(xnow < xg)ch = RIGHT;	else ch = LEFT;	xnow += i*HORZRES;	i = abval(i);	while(i--)spew(ch);	i = abval(xg-xnow);	inplot();	while(i--) spew(ch);	outplot();	i=(yg-ynow)/VERTRES;	if(ynow < yg)ch = UP;	else ch = DOWN;	ynow += i*VERTRES;	i = abval(i);	while(i--)spew(ch);	i=abval(yg-ynow);	inplot();	while(i--)spew(ch);	outplot();	xnow = xg; ynow = yg;}xsc(xi){	int xa;	xa = (xi - obotx) * scalex + botx;	return(xa);}ysc(yi){	int ya;	ya = (yi - oboty) *scaley +boty;	return(ya);}

⌨️ 快捷键说明

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