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

📄 crypt.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
/ crypt -- password incoding/	mov	$key,r0/	jsr	pc,crypt.globl	crypt, _crypt.globl	savr5_crypt:	mov	r5,-(sp)	mov	sp,r5	mov	r5,savr5	mov	4(r5),r0	jsr	pc,crypt	clr	savr5	mov	(sp)+,r5	rts	pccrypt:	mov	r1,-(sp)	mov	r2,-(sp)	mov	r3,-(sp)	mov	r4,-(sp)	mov	r5,-(sp)	mov	r0,r1	mov	$key,r0	movb	$004,(r0)+	movb	$034,(r0)+1:	cmp	r0,$key+64.	bhis	1f	movb	(r1)+,(r0)+	bne	1b1:	dec	r0///	fill out key space with clever junk/	mov	$key,r11:	movb	-1(r0),r2	movb	(r1)+,r3	xor	r3,r2	movb	r2,(r0)+	cmp	r0,$key+128.	blo	1b///	establish wheel codes and cage codes/	mov	$wheelcode,r4	mov	$cagecode,r5	mov	$256.,-(sp)2:	clr	r2	clr	(r4)	mov	$wheeldiv,r33:	clr	r0	mov	(sp),r1	div	(r3)+,r0	add	r1,r2	bic	$40,r2	bis	shift(r2),(r4)	cmp	r3,$wheeldiv+6.	bhis	4f	bis	shift+4(r2),(r5)4:	cmp	r3,$wheeldiv+10.	blo	3b	sub	$2,(sp)	tst	(r4)+	tst	(r5)+	cmp	r4,$wheelcode+256.	blo	2b	tst	(sp)+/.datashift:	1;2;4;10;20;40;100;200;400;1000;2000;4000;10000;20000;40000;100000	1;2wheeldiv: 32.; 18.; 10.; 6.; 4..bsscagecode: .=.+256.wheelcode: .=.+256..text///	make the internal settings of the machine/	both the lugs on the 128 cage bars and the lugs/	on the 16 wheels are set from the expanded key/	mov	$key,r0	mov	$cage,r2	mov	$wheel,r31:	movb	(r0)+,r1	bic	$!177,r1	asl	r1	mov	cagecode(r1),(r2)+	mov	wheelcode(r1),(r3)+	cmp	r0,$key+128.	blo	1b///	now spin the cage against the wheel to produce output./	mov	$word,r4	mov	$wheel+128.,r33:	mov	-(r3),r2	mov	$cage,r0	clr	r51:	bit	r2,(r0)+	beq	2f	incb	r52:	cmp	r0,$cage+256.	blo	1b//	we have a piece of output from current wheel/	it needs to be folded to remove lingering hopes of/	inverting the function/	mov	r4,-(sp)	clr	r4	div	$26.+26.+10.,r4	add	$'0,r5	cmp	r5,$'9	blos	1f	add	$'A-'9-1,r5	cmp	r5,$'Z	blos	1f	add	$'a-'Z-1,r51:	mov	(sp)+,r4	movb	r5,(r4)+	cmp	r4,$word+8.	blo	3b/	mov	(sp)+,r5	mov	(sp)+,r4	mov	(sp)+,r3	mov	(sp)+,r2	mov	(sp)+,r1	mov	$word,r0	rts	pc.bsskey:	.=.+128.word:	.=.+32.cage:	.=.+256.wheel:	.=.+256.

⌨️ 快捷键说明

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