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

📄 roff4.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
/// roff4 -- runofftext:/	inc	tottext	clr	ulstate	clr	wch	clr	wne	tst	ce	bne	nofill	tst	fi	beq	nofill	jsr	pc,getchar2:	mov	r0,ch	cmp	$' ,r0	bne	2f	jsr	pc,rbreak1:	jsr	pc,getchar	cmp	$' ,r0	bne	2b	inc	un	br	1b2:	cmp	r0,$'\n	bne	2f	jsr	pc,rbreak	clr	ch	jsr	pc,nline	br	4f2:	tst	wch	bne	3f	jsr	pc,getword		br 4f3:	jsr	pc,movword	bne	2b	jsr	pc,adjust	br	2b4:	dec	ul	bge	1f	clr	ul1:	rts	pcnofill:	jsr	pc,rbreak1:	jsr	pc,gettchar	cmp	r0,$'\n	beq	1f	jsr	pc,width	add	r1,ne	jsr	pc,storeline	br	1b1:	tst	ce	ble	2f	dec	ce	mov	nel,r0	asr	r0	bpl	1f	clr	r01:	add	r0,un	tst	numbmod	beq	2f	add	$2,un2:	clr	fac	clr	fmq	mov	$1000,nwd	mov	$' ,r0	jsr	pc,storeline	jsr	pc,rbreak	dec	ul	bpl	2f	clr	ul2:	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	jsr	pc,rbreak	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	wch,wordend	mov	wordp,r4	add	r4,wordend	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	cmp	nel,$4	ble	1f	mov	ls,r0	add	nl,r0	cmp	r0,bl	bgt	2f	mov	ls,r0	asl	r0	add	nl,r0	cmp	r0,bl	bgt	1f2:	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	$4,r3	cmp	r3,$word	blo	2f	movb	(r3),r2	bic	$!177,r2	jsr	pc,alph2	beq	3f	cmp	nel,$2	ble	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)	cmp	r4,$word	bge	4f	44:	tst	(sp)+	sez	rts	pctopbot:	mov	pl,r0	bne	1f	clr	bl	rts	pc1:	sub	ma3,r0	sub	ma4,r0	sub	hx,r0	mov	r0,bl	mov	ma1,r0	add	ma2,r0	add	hx,r0	cmp	r0,bl	blt	1f	mov	$2,r0	mov	r0,ma1	mov	r0,ma2	mov	r0,ma3	mov	r0,ma4	mov	$66.,pl	br	topbot1:	cmp	nl,bl	ble	1f	mov	bl,nl1:	rts	pcwidth:	cmp	r0,ohc	beq	2f	tst	r0	beq	2f	cmp	r0,$0177	beq	2f	cmp	r0,$010	bne	1f	mov	$-1,r1	rts	pc1:	cmp	$' ,r0	bgt	2f	mov	$1,r1	rts	pc2:	clr	r1	rts	pcheadin:	jsr	pc,skipcont	mov	nextb,r1	mov	r1,*(r5)+	jsr	pc,gettchar	cmp	r0,$'\n	beq	2f	mov	r0,r21:	jsr	pc,gettchar	cmp	r0,$'\n	beq	2f	cmp	r0,r2	bne	3f	clr	r03:	jsr	pc,wbf	br	1b2:	clr	r0	jsr	pc,wbf	mov	r1,nextb	mov	ll,llh	rts	r5headout:	tst	hx	bne	0f	tst	(r5)+	rts	r50:	clr	-(sp)	mov	*(r5),r2	mov	ibf1,nfile	jsr	r5,headseg; width	mov	r0,-(sp)	jsr	r5,headseg; width	mov	r0,-(sp)	jsr	r5,headseg; width	mov	r0,-(sp)	mov	po,r0	jsr	pc,space	tst	numbmod	beq	1f	mov	$5,r0	add	ni,r0	mov	r0,6(sp)1:	mov	*(r5)+,r2	jsr	r5,headseg; putchar	mov	llh,r0	add	6(sp),r0	sub	2(sp),r0	asr	r0	sub	4(sp),r0	bge	1f	clr	r01:	mov	r0,-(sp)	jsr	pc,space	jsr	r5,headseg; putchar	mov	llh,r0	sub	(sp)+,r0	sub	(sp)+,r0	sub	(sp)+,r0	sub	(sp)+,r0	add	(sp)+,r0	jsr	pc,space	jsr	r5,headseg; putchar	jsr	pc,newline	rts	r5headseg:	clr	-(sp)1:	mov	r1,-(sp)	mov	r2,r1	inc	r2	jsr	pc,rdsufb	mov	(sp)+,r1	tstb	r0	beq	1f	cmp	r0,$'%	beq	2f	jsr	pc,*(r5)	add	r1,(sp)	br	1b2:	mov	pn,r0	clr	r1	tst	ro	beq	2f	mov	$ones,onesp	mov	$fives,fivesp	jsr	pc,roman	add	r1,(sp)	br	1b2:	jsr	pc,decml	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,decml	mov	r1,2(sp)1:	mov	(sp)+,r0	add	$'0,r0	jsr	pc,*(r5)	add	(sp)+,r1	rts	pcroman:	mov	r2,-(sp)	mov	r3,-(sp)	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,roman	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	pc

⌨️ 快捷键说明

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