From: Dennis Ritchie Date: Mon, 17 Jan 1972 17:53:35 +0000 (-0500) Subject: Research V2 development X-Git-Tag: Research-V2~70 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/ba369452fba521e1cd977a4e960d45d5a29f565b Research V2 development Work on file cmd/cmp.s Synthesized-from: v2 --- diff --git a/cmd/cmp.s b/cmd/cmp.s new file mode 100644 index 0000000000..fa0febbbd4 --- /dev/null +++ b/cmd/cmp.s @@ -0,0 +1,133 @@ +/ cmp -- compare files + + + cmp (sp)+,$3 + beq 1f + jsr r5,mesg; ; .even + sys exit +1: + tst (sp)+ + mov (sp)+,0f + sys open; 0:..; 0 + bec 1f + jsr r5,mesg; ; .even + sys exit +1: + mov r0,f1 + mov (sp)+,0f + sys open; 0:..; 0 + bec 1f + jsr r5,mesg; ; .even + sys exit +1: + mov r0,f2 + clr r2 +1: + jsr r5,getw; f1 + bvs eof1 + mov r0,r3 + jsr r5,getw; f2 + bvs eof2 + cmp r0,r3 + beq 2f + mov r0,r4 + mov r2,r0 + jsr pc,octal + jsr r5,mesg; <: \0>; .even + mov r3,r0 + jsr pc,octal + jsr r5,mesg; < \0>; + mov r4,r0 + jsr pc,octal + jsr r5,mesg; <\n\0> +2: + add $2,r2 + br 1b +eof1: + jsr r5,getw; f2 + bvs 1f + jsr r5,mesg; ; .even + sys exit +1: + sys exit + +eof2: + jsr r5,mesg; ; .even + sys exit + +mesg: + movb (r5)+,ch + beq 1f + mov $1,r0 + sys write; ch; 1 + br mesg +1: + inc r5 + bic $1,r5 + rts r5 + +getw: + mov (r5)+,r1 + cmp 2(r1),$1 + bne 1f + mov *4(r1),r0 + bic $!377,r0 + dec 2(r1) + rts r5 +1: + sub $2,2(r1) + bge 1f + mov (r1),r0 + mov r1,0f + add $6,0f + sys read; 0:..; 512. + mov r0,2(r1) + bne 2f + sev + rts r5 +2: + mov r1,4(r1) + add $6,4(r1) + sub $2,2(r1) +1: + mov *4(r1),r0 + add $2,4(r1) + rts r5 + +octal: + mov r4,-(sp) + mov r0,r5 + mov $6,-(sp) +1: + clr r4 + alsc $1,r4 + cmp (sp),$6 + beq 2f + alsc $2,r4 +2: + add $'0,r4 + mov r4,ch + mov $1,r0 + sys write; ch; 1 + dec (sp) + bne 1b + tst (sp)+ + mov (sp)+,r4 + rts pc + + .bss + +ch: .=.+2 +f1: .=.+6; .=.+512. +f2: .=.+6; .=.+512. +*4(r1),r0 + bic $!377,r0 + dec 2(r1) + rts r5 +1: + sub $2,2(r1) + bge 1f + mov (r1),r0 + mov r1,0f + add $6,0f + sys read; 0:.. \ No newline at end of file