|
|
1.1 root 1: /*
2: This is test Unique address Test
3: */
4: #include "definitions"
5:
6: extern long maxmem,endprog;
7: extern struct OPTIONS OPTIONS;
8:
9: stest2()
10: { register long *mcr = (long *)0xffffb000;
11:
12: if(OPTIONS.header)
13: writes("\n** Subtest2 : Unique address.");
14: writes("\nECC off");
15: *mcr = 0;
16: subtest2();
17: writes("\nECC on");
18: *mcr = 3;
19: subtest2();
20: *mcr = 0;
21: }
22:
23: subtest2()
24: {
25:
26: register long *curadd, pattern;
27:
28:
29: for( curadd = (long *)endprog; curadd <= (long *)maxmem ; curadd++)
30: {
31: pattern = (long)curadd;
32: *curadd = pattern;
33: }
34: for( curadd = (long *)endprog; curadd <= (long *)maxmem ; curadd++)
35: {
36: error1: pattern = (long)curadd;
37: if(*curadd != pattern)
38: if(error(curadd,pattern)) goto error1;
39: }
40:
41: /* Compl of address */
42: for( curadd = (long *)endprog; curadd <= (long *)maxmem ; curadd++)
43: {
44: pattern = (long)curadd;
45: *curadd = ~pattern;
46: }
47: for( curadd = (long *)endprog; curadd <= (long *)maxmem ; curadd++)
48: {
49: error2: pattern = (long)curadd;
50: if(*curadd != (~pattern) )
51: if(error(curadd,~pattern)) goto error2;
52: }
53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.