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

📄 dtf.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
/ unix DEC-tape time/mtrack track formatternword = 256.nblock = 578.endz = 7200.ps = 177776tcst = 177340tccm = 177342tcwc = 177344tcba = 177346tcdt = 177350	mov	r5,savr5	mov	sp,savspstart:	mov	savr5,r5	mov	savsp,sp	jsr	pc,4(r5)		<set up to format on drive 0\n\0>		.even	clr	r0	mov	$cobtab,r11:	jsr	pc,bcomobv	mov	r2,(r1)+	inc	r0	cmp	r0,$512.	bne	1b	mov	$buffer,r01:	mov	$-1,(r0)+	cmp	r0,$buffer+nword+nword	blo	1b	mov	savr5,r5	jsr	pc,2(r5)	mov	$340,ps	mov	$tcdt,r5	mov	$13,tccm	jsr	pc,flag/ 8Kch for end zone	mov	$endz,r41:	jsr	r0,mtrack; 101101	dec	r4	bne	1b/ foreward guard	mov	$199.,r41:	jsr	r0,mtrack; 10101	dec	r4	bne	1b/ blocks	mov	$nblock,r31:	jsr	r0,mtrack; 10101	jsr	r0,mtrack; 10110	jsr	r0,mtrack; 11010	jsr	r0,mtrack; 01000	jsr	r0,mtrack; 01000	jsr	r0,mtrack; 01000	jsr	r0,mtrack; 01000	mov	$nword-4,r42:	jsr	r0,mtrack; 111000	dec	r4	bne	2b	jsr	r0,mtrack; 111011	jsr	r0,mtrack; 111011	jsr	r0,mtrack; 111011	jsr	r0,mtrack; 111011	jsr	r0,mtrack; 101001	jsr	r0,mtrack; 100101	jsr	r0,mtrack; 10101	dec	r3	bne	1b/ rear guard	mov	$199.,r41:	jsr	r0,mtrack; 10101	dec	r4	bne	1b/ rear end zone	mov	$endz,r41:	jsr	r0,mtrack; 10010	dec	r4	bne	1b	clr	tccm/ end of mtrack pass/ go back 12 blocks	mov	$12.,r0	mov	$4002,tccm1:	incb	tccm	jsr	pc,flag	dec	r0	bne	1b/ put comobv(nblock-1) in everything/ up to end zone	mov	$nblock-1,r0	mov	r0,bn	jsr	pc,comobv	mov	$17,tccm	jsr	pc,flag1:	movb	r1,tcst	mov	r0,(r5)	jsr	pc,flag1		br 1b/ reverse pass put in/ foreward and reverse/ block numbers	mov	$4017,tccm	jsr	pc,flag1:	mov	$nword+3.,r42:	clrb	tcst	clr	(r5)	jsr	pc,flag	dec	r4	bne	2b	clrb	tcst	clr	(r5)	mov	bn,r0	jsr	pc,comobv	jsr	pc,flag	movb	r1,tcst	mov	r0,(r5)	jsr	pc,flag	dec	bn	blt	check	clrb	tcst	clr	(r5)	jsr	pc,flag	clrb	tcst	clr	(r5)	jsr	pc,flag	clrb	tcst	mov	bn,(r5)	jsr	pc,flag	clrb	tcst	clr	(r5)	jsr	pc,flag	clrb	tcst	clr	(r5)	jsr	pc,flag	br	1b/ foreward pass/ confirm block numbers/ write all 1's in datacheck:	clrb	tcst	clr	(r5)	jsr	pc,flag1		br check	clr	r41:	mov	$3,tccm	jsr	pc,flag	cmp	(r5),r4	bne	error1	mov	$-nword,tcwc	mov	$buffer,tcba	mov	$15,tccm	jsr	pc,flag	inc	r4	cmp	r4,$nblock	bne	1b	mov	$3,tccm	jsr	pc,flag1		br error2/ reverse pass/ confirm block numbers/ read data and compare/ to all 1's1:	mov	$4003,tccm	jsr	pc,flag	dec	r4	cmp	r4,(r5)	bne	error3	mov	$-nword,tcwc	mov	$buffer,tcba	mov	$4005,tccm	jsr	pc,compare	jsr	pc,flag	tst	r4	bne	1b	mov	$4003,tccm	jsr	pc,flag1		br error4	jsr	pc,compare	jmp	starterror1:	mov	$1,r0	br	1ferror2:	mov	$1,r0	br	1ferror3:	mov	$3,r0	br	1ferror4:	mov	$4,r0	br	1ferror5:	mov	$5,r0	br	1ferror6:	mov	$6,r0	br	1ferror7:	mov	$7,r01:	add	$'0,r0	movb	r0,0f	mov	tcst,-(sp)	mov	tccm,-(sp)	mov	$1,tccm	mov	savr5,r5	jsr	pc,4(r5)		<error>0:		<x\ntcst in r0; tccm in r1\n\0>		.even	mov	(sp)+,r1	mov	(sp)+,r0	0	rts	pccompare:	mov	r0,-(sp)	mov	$buffer,r01:	cmp	(r0)+,$-1	bne	error5	cmp	r0,$buffer+nword+nword	blo	1b	mov	(sp)+,r0	rts	pcmtrack:	mov	(r0)+,(r5)	jsr	pc,flag	rts	r0flag:	bit	$100200,tccm	beq	flag	blt	error6	rts	pcflag1:	bit	$100200,tccm	beq	flag1	bge	1f	tst	tcst	bge	error7	add	$2,(sp)1:	rts	pccomobv:	mov	r0,r4	bic	$!777,r0	asl	r0	mov	cobtab(r0),r0	swab	r0	clr	r1	ror	r0	rol	r1	asl	r0	asl	r0	rol	r1	swab	r4	bic	$177401,r4	bis	cobtab(r4),r0	rts	pcbcomobv:	mov	r0,r2	bic	$!70,r2	mov	r0,r3	mov	$6.,r41:	asr	r3	dec	r4	bne	1b	bic	$!7,r3	bis	r3,r2	mov	r0,r3	mov	$6.,r41:	asl	r3	dec	r4	bne	1b	bic	$!700,r3	bis	r3,r2	com	r2	bic	$!777,r2	rts	pcbn:	.=.+2savr5:	.=.+2savsp:	.=.+2cobtab:	.=.+1024.buffer:	.=.+nword+nword

⌨️ 快捷键说明

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