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

📄 nroff4.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
/// nroff4text:	inc	nflush	cmp	nl,$-1	bne	0f	jsr	pc,newln1	rts	pc0:	clr	ulstate	jsr	pc,setnel	tst	ce	bne	nofill	tst	fi	beq	nofill	tst	pendw	bne 7f	tst	pendt	bne	8f	inc	pendt	tst	x	bne	0f1:	jsr	pc,getchar	bmi	1f	cmpb	r0,$' /	beq	3f	cmpb	r0,tabc	bne	1f3:	inc	x	br	1b1:	tst	nlflg	bne	6f	mov	r0,ch	tst	x	beq	2f0:	jsr	pc,rbreak	tst	nc	bne	5f	tst	wch	bne	5f	add	x,un	clr	x	jsr	pc,setnel	tst	trap	bne	5f2:	tst	x	bne	0b	tst	nlflg	beq	2f6:	clr	nflush	clr	x	clr	pendt	clr	ch	mov	$1,r0	jsr	pc,casesp1	rts	pc8:	tst	x	bne	0b2:	tst	spread	bne	1f	tst	pendw	bne	0f	tst	wch	bne	3f0:7:	jsr	pc,getword		br 4f3:	jsr	pc,movword	bne	2b	tst	nlflg	beq	1f	clr	pendt1:	jsr	pc,adjust	tst	trap	beq	2b	tst	nlflg	beq	5f4:	clr	pendt	tst	pendw	bne	5f	dec	ul	bge	5f	clr	ul5:	clr	nflush	rts	pcnofill:	tst	pendnf	bne	1f	clr	over	jsr	pc,rbreak	tst	trap	bne	3f	tst	nlflg	bne	6b	clr	fac	clr	fmq	mov	$1000,nwd1:	jsr	pc,gettchar	bmi	0f	cmpb	r0,$'\n	beq	1f	cmpb	r0,ohc	beq	1b	cmpb	r0,$005	beq	4f0:	jsr	pc,storeline	br	1b1:	tst	ce	ble	2f	dec	ce	mov	nel,r0	asr	r0	bpl	1f	clr	r01:	add	r0,un2:	tst	nc	bne	0f	mov	$037,r0	jsr	pc,storeline0:	jsr	pc,rbreak	dec	ul	bpl	3f	clr	ul3:	clr	nflush	clr	pendnf	rts	pc4:	inc	pendnf	clr	nflush	jsr	pc,flushi	rts	pcadjust:	mov	r2,-(sp)	mov	r3,-(sp)	clr	r2	clr	r3	tst	ad	beq	1f	mov	nwd,r0	dec	r0	ble	1f	mov	nel,r3	ble	1f	dvd	r0,r21:	mov	r3,fac	mov	r2,fmq	mov	(sp)+,r3	mov	(sp)+,r2	mov	$-1,lastl	jsr	pc,rbreak1	clr	spread	rts	pcfill:	mov	fmq,r01:	inc	r0	dec	nc	cmpb	(r2)+,$' 	beq	1b	dec	r2	bit	$1,totout	beq	2f	inc	fac	cmp	fac,nwd	blt	1f	inc	r0	br	1f2:	dec	fac	bmi	1f	inc	r01:	jsr	pc,space	movb	(r2),r0	rts	pcmovword:	mov	wordp,r4	tst	nwd	bne	2f1:	movb	(r4)+,r0	cmp	r0,$' 	bne	1f	dec	wch	jsr	pc,width	sub	r1,wne	br	1b1:	dec	r42:	cmp	wne,nel	ble	1f	tst	nwd	beq	2f	cmp	nel,$4	blt	1f	cmp	wch,$5 /don't do 4 char words	ble	1f2:	bit	$2,hyf	beq	0f	tst	op	bne	0f	clr	r0	jsr	pc,findt	dec	r1	ble	1f0:	jsr	pc,hyphen1:	clr	nhyph	mov	wch,-(sp)1:	movb	(r4)+,r0	cmp	r0,$'-	bne	2f	movb	(r4),r2	jsr	pc,alph2	bne	2f	bisb	$200,(r4)2:	tst	r0	bpl	2f	bic	$!177,r0	mov	r4,r3	sub	$3,r3	cmp	r3,$word	blo	2f	movb	(r3),r2	bic	$!177,r2	jsr	pc,alph2	bne	2f3:	mov	r0,-(sp)	clr	r0	jsr	pc,storeline	mov	(sp)+,r0	inc	nhyph2:	jsr	pc,width	sub	r1,wne	jsr	pc,storeline	dec	wch	bne	1b	tst	nel	blt	1f	inc	nwd	tst	(sp)+	clz	rts	pc1:	mov	linep,r31:	tst	nhyph	bne	2f	tst	nwd	beq	3f	cmp	wch,(sp)	beq	4f2:	movb	-(r3),r0	bne	2f	dec	nhyph	bne	5f	tst	nwd	beq	6f5:	tst	nel	ble	2f6:	cmpb	-1(r3),$'-	beq	3f	movb	$'-,(r3)	dec	nel	inc	ne	br	3f2:	dec	nc	tstb	(r3)	beq	1b	jsr	pc,width	sub	r1,ne	add	r1,nel	inc	wch	dec	r4	add	r1,wne	br	1b3:	inc	nwd4:	mov	r4,wordp	bicb	$!177,(r4)	tst	(sp)+	sez	rts	pcwidth:	mov	r0,-(sp)	cmpb	r0,$014	bne	0f	mov	$1,r1	br	3f0:	cmpb	r0,$013	bne	0f	movb	eschar,r00:	bic	$!177,r0	cmp	r0,ohc	beq	2f	tst	r0	beq	2f	cmp	r0,$0177	beq	2f	cmp	r0,$010	bne	1f	mov	$-1,r1	br	3f1:	cmp	$' ,r0	bgt	2f	mov	$1,r1	br	3f2:	clr	r13:	mov	(sp)+,r0	rts	pcsetwd:	mov	column,-(sp)	clr	column	mov	r2,-(sp)	clr	-(sp)	jsr	pc,*(r5)	mov	r0,r21:	jsr	pc,*(r5)	bmi	0f	cmpb	r0,r2	beq	2f0:	tst	nlflg	bne	2f	jsr	pc,width	add	r1,(sp)	br	1b2:	mov	(sp)+,r0	jsr	pc,setn0	mov	(sp)+,r2	mov	(sp)+,column	tst	(r5)+	rts	r5header:/headin:	clr	nls	jsr	pc,skipcont	mov	$'',r2	tst	op	beq	1f	jsr	pc,wbfl1:	jsr	pc,alloc	bne	0f	rts	pc0:	mov	nextb,r12:	mov	r1,headp	jsr	pc,getchar	bmi	3f	cmpb	r0,$'\n	beq	2f	mov	r0,r21:	jsr	pc,getchar	bmi	3f	cmpb	r0,$'\n	beq	2f0:	cmpb	r0,r2	bne	3f	mov	$004,r03:	jsr	pc,wbf	br	1b2:	mov	$004,r0	jsr	pc,wbf	mov	$004,r0	jsr	pc,wbf	clr	r0	jsr	pc,wbt/headout:	clr	-(sp)	mov	headp,r2	jsr	r5,headseg; width	mov	r0,-(sp)	jsr	r5,headseg; width	mov	r0,-(sp)	jsr	r5,headseg; width	mov	r0,-(sp)	tst	op	bne	1f	mov	po,r0	jsr	pc,space1:	mov	headp,r2	jsr	r5,headseg; putchar	mov	llh,r0	add	6(sp),r0	sub	2(sp),r0	asr	r0	sub	4(sp),r0	mov	r0,-(sp)	tst	4(sp)	bne	1f	tst	2(sp)	beq	2f1:	jsr	pc,space2:	jsr	r5,headseg; putchar	mov	llh,r0	sub	(sp)+,r0	sub	(sp)+,r0	sub	(sp)+,r0	sub	(sp)+,r0	add	(sp)+,r0	tst	-10(sp)	beq	1f	jsr	pc,space	jsr	r5,headseg; putchar1:	jsr	pc,newline	cmp	nl,hnl	ble	0f	mov	nl,hnl0:	mov	headp,r0	jsr	pc,free	rts	pcheadseg:	clr	-(sp)1:	mov	r1,-(sp)	mov	r2,r1	jsr	pc,rbf0	jsr	pc,incoff	mov	r1,r2	mov	(sp)+,r1	tst	r0	beq	1f	bmi	0f	cmpb	r0,$004	beq	1f	cmpb	r0,$'%	beq	2f0:	jsr	pc,*(r5)	add	r1,(sp)	br	1b2:	mov	$'%,r0	jsr	pc,findr	mov	[flist-vlist](r1),nform	mov	pn,r0	clr	r1	jsr	pc,fnumb	add	r1,(sp)	br	1b1:	mov	(sp)+,r0	tst	(r5)+	rts	r5space:	jsr	r5,nlines;putchar	rts	pcnlines:	mov	r0,-(sp)1:	dec	(sp)	blt	1f	mov	$' ,r0	jsr	pc,*(r5)	br	1b1:	cmp	(r5)+,(sp)+	rts	r5decimal:	jsr	pc,decml	tst	(r5)+	rts	r5decml:	mov	r2,-(sp)	mov	r3,-(sp)	jsr	pc,decml1	mov	(sp)+,r3	mov	(sp)+,r2	rts	pcdecml1:	mov	r1,-(sp)	clr	r2	mov	r0,r3	dvd	$10.,r2	mov	r3,-(sp)	mov	r2,r0	beq	1f	jsr	pc,decml1	mov	r1,2(sp)1:	mov	(sp)+,r0	add	$'0,r0	jsr	pc,*(r5)	add	(sp)+,r1	rts	pcroman0:	jsr	pc,roman	tst	(r5)+	rts	r5roman:	tst	r0	beq	decml	mov	r2,-(sp)	mov	r3,-(sp)	cmp	ro,$2	bne	1f	mov	$cones,onesp	mov	$cfives,fivesp	br	2f1:	mov	$ones,onesp	mov	$fives,fivesp2:	jsr	pc,roman1	mov	(sp)+,r3	mov	(sp)+,r2	rts	pcroman1:	clr	r2	mov	r0,r3	bne	.+4	rts	pc	mov	r1,-(sp)	dvd	$10.,r2	mov	r3,-(sp)	mov	r2,r0	inc	onesp	inc	fivesp	jsr	pc,roman1	mov	r1,2(sp)	dec	onesp	dec	fivesp	clr	r2	mov	(sp)+,r3	dvd	$5.,r2	cmp	r3,$4	bne	1f	movb	*onesp,r0	jsr	pc,*(r5)	add	r1,(sp)	tst	r2	beq	2f	inc	onesp	movb	*onesp,r0	dec	onesp	br	3f2:	movb	*fivesp,r03:	jsr	pc,*(r5)	add	(sp)+,r1	rts	pc1:	tst	r2	beq	2f	movb	*fivesp,r0	jsr	pc,*(r5)	add	r1,(sp)2:	dec	r3	blt	1f	movb	*onesp,r0	jsr	pc,*(r5)	add	r1,(sp)	br	2b1:	mov	(sp)+,r1	rts	pcabc0:	jsr	pc,abc	tst	(r5)+	rts	r5abc:	mov	r2,-(sp)	mov	r3,-(sp)	mov	r0,r3	bne	0f	mov	$'0,r0	jsr	pc,*(r5)	br	1f0:	dec	r3	jsr	pc,abc11:	mov	(sp)+,r3	mov	(sp)+,r2	rts	pcabc1:	clr	r2	dvd	$26.,r2	mov	r3,-(sp)	mov	r2,r3	beq	1f	dec	r3	jsr	pc,abc11:	cmp	ro,$2	beq	1f	add	$'a,(sp)	br	2f1:	add	$'A,(sp)2:	mov	(sp)+,r0	jsr	pc,*(r5)	rts	pcfnumb0:	jsr	pc,fnumb	tst	(r5)+	rts	r5fnumb:	mov	ro,-(sp)	mov	nform,ro	bne	0f	mov	(sp),ro	br	1f0:	dec	ro1:	tst	ro	bne	1f	jsr	pc,decml	br	2f1:	cmp	ro,$2	bgt	1f	jsr	pc,roman	br	2f1:	sub	$2,ro	jsr	pc,abc2:	mov	(sp)+,ro	rts	pc/wordout:/	tst	index/	beq	1f/	mov	wch,0f/	beq	1f/	mov	indid,r0/	sys	write; word; 0:../	mov	indid,r0/	sys	write; 8f; 1/	mov	indid,r0/	jsr	r5,numb; pn/	mov	indid,r0/	sys	write; 8f; 1/	mov	nl,char/	inc	char/	mov	indid,r0/	jsr	r5,numb; char/	mov	indid,r0/	sys	write; 9f; 1/1:/	rts	pc/8:	011 /tab/9:	<\n\0>/	.even/numb:/	mov	r2,-(sp)/	mov	r3,-(sp)/	mov	*(r5)+,r3/	mov	r0,r1/	jsr	pc,numb1/	mov	(sp)+,r3/	mov	(sp)+,r2/	rts	r5/numb1:/	clr	r2/	dvd	$10.,r2/	mov	r3,-(sp)/	mov	r2,r3/	beq	1f/	jsr	pc,numb1/1:/	add	$'0,(sp)/	mov	(sp)+,char/	mov	r1,r0/	sys	write; char; 1/	rts	pcsetstr:	clr	-(sp)	clr	-(sp)0:	jsr	pc,get1	bmi	3f	bic	$!177,r0	cmpb	r0,$'\\	bne	1f4:	jsr	pc,get1	jsr	r5,switch;esctab	cmpb	r0,dolc	bne	2f	jsr	pc,seta	br	0b2:	cmpb	r0,numc	bne	1f	clr	r1	jsr	pc,setn	br	0b1:	tst	2(sp)	bne	5f	bic	$!177,r0	cmpb	r0,$'(	bne	1f	inc	2(sp)	jsr	pc,get1	bic	$!177,r0	cmpb	r0,$'\\	beq	4b5:	mov	r0,-(sp)	jsr	pc,get1	bic	$!177,r0	swab	r0	bis	(sp)+,r01:	mov	$contab,r11:	mov	(r1)+,(sp)	bic	$100000,(sp)	cmp	r0,(sp)	beq	2f	cmp	(r1)+,$-1	bne	1b	br	3f2:	mov	(r1),(sp)	tst	-(r1)	bpl	3f	clr	*nxf	jsr	pc,pushi	mov	(sp),ip3:	cmp	(sp)+,(sp)+	rts	pccopys:	inc	copyf	jsr	pc,skipcont	bne	2f	jsr	pc,getchar	bmi	0f	cmpb	r0,$'"	bne	0f1:	jsr	pc,getchar	tst	nlflg	bne	2f0:	jsr	pc,wbf	br	1b2:	clr	r0	jsr	pc,wbt	clr	copyf	rts	pcsetrpt:	inc	copyf	inc	raw1	jsr	pc,get1	dec	copyf	dec	raw1	mov	r0,r1	jsr	pc,get1	cmpb	r0,$006	beq	1f0:	movb	r0,rchar	movb	r1,nspace	cmpb	r1,$377	bne	1f	clr	nspace1:	rts	pcsetfield:	clr	npad	mov	r1,-(sp)	mov	r2,-(sp)	mov	r3,-(sp)	mov	r4,-(sp)	clr	r4	clr	-(sp)	jsr	pc,width	sub	r1,column /start	mov	column,-(sp)	mov	$tabtab,r01:	tst	(r0)	beq	4f	cmp	(sp),(r0)+	bge	1b	mov	-(r0),2(sp)	sub	(sp),2(sp) /h	mov	$fbuf,r21:	jsr	pc,getch1	bmi	0f	cmpb	r0,padc	bne	2f	jsr	pc,width	sub	r1,column	inc	npad	mov	r2,-(sp)	add	$2,r22:	cmpb	r0,fc	beq	3f	cmpb	r0,$'\n	bne	0f	mov	$012,r4	clr	nlflg	br	3f0:	movb	r0,(r2)+	cmp	r2,$efbuf-6	blo	1b3:	tst	npad	bne	0f	inc	npad	mov	r2,-(sp)	add	$3,r20:	movb	r4,(r2)+	clrb	(r2)+	jsr	pc,width	sub	r1,column	mov	npad,r1	asl	r1	add	sp,r1	mov	(r1),-(sp)	sub	column,(r1) /-s	mov	(sp)+,column	add	2(r1),(r1) /h-s	mov	(r1),r1	mov	r1,r2	sxt	r0	div	npad,r0	mov	$014,r3 /unpaddable sp	tst	r2	bpl	1f	neg	r0	neg	r1	mov	$010,r31:	mov	(sp)+,r2	movb	$006,(r2)+	movb	r0,(r2)+	movb	r3,(r2)	tst	r1	beq	0f	incb	-1(r2)	dec	r10:	tstb	-(r2)	bne	0f	movb	$377,(r2)0:	dec	npad	bgt	1b	mov	$fbuf,cp4:	cmp	(sp)+,(sp)+	mov	(sp)+,r4	mov	(sp)+,r3	mov	(sp)+,r2	mov	(sp)+,r1	rts	pc

⌨️ 快捷键说明

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