m64.c

来自「Version 6 Unix 核心源代码 Version 6 Unix 核心源」· C语言 代码 · 共 83 行

C
83
字号
##include "m6.h"pushget() {	ge = (ge+1)&0177776;	ge->word = gf-ge; 	gf = ge; 	ge =+2;	++lg;}dotrace() {	char *arg();	int i,j;	printf("\n%d %c%s",lg,sharp,arg(0));	for(j=9;j>0&&*arg(j)==0;j--);	for(i=1;i<=j;i++)		printf("%c%c%s%c",comma,lquote,arg(i),rquote);	printf("%c\n",c); }popget() {	ge = gf; 	gf =+ gf->word;	--lg;	if(gf<g0) diag("Software error"); }pushput() {	if(pe&1) {		pf->prev =| 1;		pe++; 	}	pe->word = pf-pe; 	pf = pe; 	pe =+2;}popput() {	pe = pf; 	pf =+ pf->word;	if(pf->prev&1) {		pe--;		pf->prev =& 0177776; 	}	if(pf<p0) diag("Software error"); }pushdef() {	de = (de+1)&0177776;	de->word = df-de; 	df = de; 	de =+2;}put() {	if(lp>0) {		*pe++ = c; 		if(pe>pmax) diag("Arg collection overflow"); 	}	else putchar(c); }get() {	char *p;	int n;	if(lg==0) 		c = getchar();	else while(1) {		if(gf->marg!=0) {			if((c = gf[gf->marg++])==0) gf->marg = 0;			else return; 		}		c = (p = gf->mframe)[gf->mchar++];		if(c!=dollar) return;		n = p[gf->mchar] - '0';		if(n<0 || n>9) return;		++gf->mchar;		gf->marg = arg(n) - gf; 	}}

⌨️ 快捷键说明

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