|
|
1.1 root 1: #include "sam.h"
2:
3: bcopy(s1, s2, d, dir)
4: register uchar *s1, *s2;
5: register uchar *d;
6: int dir;
7: {
8: register long n=s2-s1;
9: extern char *memcpy();
10: if(dir<0){
11: if(n>0){
12: register long m=(n+7)/8;
13: d+=n;
14: switch((int)(n&7)){
15: case 0: do{ *--d = *--s2;
16: case 7: *--d = *--s2;
17: case 6: *--d = *--s2;
18: case 5: *--d = *--s2;
19: case 4: *--d = *--s2;
20: case 3: *--d = *--s2;
21: case 2: *--d = *--s2;
22: case 1: *--d = *--s2;
23: }while(--m>0);
24: }
25: }
26: }else
27: memcpy((char *)d, (char *)s1, (int)(s2-s1));
28: }
29: Posn
30: getnum(){
31: register Posn n=0;
32: register c;
33: if((c=nextc())<'0' || '9'<c) /* no number defaults to 1 */
34: return 1;
35: while('0'<=(c=getc()) && c<='9')
36: n=n*10+c-'0';
37: ungetc();
38: return n;
39: }
40: skipbl(){
41: register c;
42: do c=getc(); while(c==' ' || c=='\t');
43: if(c>=0)
44: ungetc();
45: return c;
46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.