Commit | Line | Data |
---|---|---|
ba369452 DR |
1 | / cmp -- compare files |
2 | ||
3 | ||
4 | cmp (sp)+,$3 | |
5 | beq 1f | |
6 | jsr r5,mesg; <Usage: cmp arg1 arg2\n\0>; .even | |
7 | sys exit | |
8 | 1: | |
9 | tst (sp)+ | |
10 | mov (sp)+,0f | |
11 | sys open; 0:..; 0 | |
12 | bec 1f | |
13 | jsr r5,mesg; <Can't open arg1.\n\0>; .even | |
14 | sys exit | |
15 | 1: | |
16 | mov r0,f1 | |
17 | mov (sp)+,0f | |
18 | sys open; 0:..; 0 | |
19 | bec 1f | |
20 | jsr r5,mesg; <Can't open arg2.\n\0>; .even | |
21 | sys exit | |
22 | 1: | |
23 | mov r0,f2 | |
24 | clr r2 | |
25 | 1: | |
26 | jsr r5,getw; f1 | |
27 | bvs eof1 | |
28 | mov r0,r3 | |
29 | jsr r5,getw; f2 | |
30 | bvs eof2 | |
31 | cmp r0,r3 | |
32 | beq 2f | |
33 | mov r0,r4 | |
34 | mov r2,r0 | |
35 | jsr pc,octal | |
36 | jsr r5,mesg; <: \0>; .even | |
37 | mov r3,r0 | |
38 | jsr pc,octal | |
39 | jsr r5,mesg; < \0>; | |
40 | mov r4,r0 | |
41 | jsr pc,octal | |
42 | jsr r5,mesg; <\n\0> | |
43 | 2: | |
44 | add $2,r2 | |
45 | br 1b | |
46 | eof1: | |
47 | jsr r5,getw; f2 | |
48 | bvs 1f | |
49 | jsr r5,mesg; <EOF on arg1.\n\0>; .even | |
50 | sys exit | |
51 | 1: | |
52 | sys exit | |
53 | ||
54 | eof2: | |
55 | jsr r5,mesg; <EOF on arg2.\n\0>; .even | |
56 | sys exit | |
57 | ||
58 | mesg: | |
59 | movb (r5)+,ch | |
60 | beq 1f | |
61 | mov $1,r0 | |
62 | sys write; ch; 1 | |
63 | br mesg | |
64 | 1: | |
65 | inc r5 | |
66 | bic $1,r5 | |
67 | rts r5 | |
68 | ||
69 | getw: | |
70 | mov (r5)+,r1 | |
71 | cmp 2(r1),$1 | |
72 | bne 1f | |
73 | mov *4(r1),r0 | |
74 | bic $!377,r0 | |
75 | dec 2(r1) | |
76 | rts r5 | |
77 | 1: | |
78 | sub $2,2(r1) | |
79 | bge 1f | |
80 | mov (r1),r0 | |
81 | mov r1,0f | |
82 | add $6,0f | |
83 | sys read; 0:..; 512. | |
84 | mov r0,2(r1) | |
85 | bne 2f | |
86 | sev | |
87 | rts r5 | |
88 | 2: | |
89 | mov r1,4(r1) | |
90 | add $6,4(r1) | |
91 | sub $2,2(r1) | |
92 | 1: | |
93 | mov *4(r1),r0 | |
94 | add $2,4(r1) | |
95 | rts r5 | |
96 | ||
97 | octal: | |
98 | mov r4,-(sp) | |
99 | mov r0,r5 | |
100 | mov $6,-(sp) | |
101 | 1: | |
102 | clr r4 | |
103 | alsc $1,r4 | |
104 | cmp (sp),$6 | |
105 | beq 2f | |
106 | alsc $2,r4 | |
107 | 2: | |
108 | add $'0,r4 | |
109 | mov r4,ch | |
110 | mov $1,r0 | |
111 | sys write; ch; 1 | |
112 | dec (sp) | |
113 | bne 1b | |
114 | tst (sp)+ | |
115 | mov (sp)+,r4 | |
116 | rts pc | |
117 | ||
118 | .bss | |
119 | ||
120 | ch: .=.+2 | |
121 | f1: .=.+6; .=.+512. | |
122 | f2: .=.+6; .=.+512. | |
123 | *4(r1),r0 | |
124 | bic $!377,r0 | |
125 | dec 2(r1) | |
126 | rts r5 | |
127 | 1: | |
128 | sub $2,2(r1) | |
129 | bge 1f | |
130 | mov (r1),r0 | |
131 | mov r1,0f | |
132 | add $6,0f | |
133 | sys read; 0:.. |