summaryrefslogtreecommitdiff
path: root/sim/ucsim/s51.src/test/stt.c
blob: a9905e1cec89bb1b12bd0283e0d349c1e0e3f875 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "hw.h"
#include "timer.h"
#include "t0.h"

unsigned char __xdata * volatile sif;

volatile unsigned int tr;

void t0_isr(void) __interrupt (1)
{
  T0set(tr);
}

int var;
__data  int dvar;
__idata int ivar;
__xdata int xvar;
__pdata int pvar;
__code  int cvar;
__sfr   __at(0x81) svar;
__bit   bvar;

void
fn(void)
{
  volatile int fn_local;
  volatile int fn_hide;
  fn_local= fn_hide= 1;
  {
    volatile int fn_blocked, fn_hide;
    fn_blocked= fn_hide= 2;
  }
}

void
sfun(void)
{
  return ;
}

void
main(void)
{
  volatile unsigned int i, x= 0, j;
  __xdata char *p= (__xdata char *)0;

  bvar= 1;
  sif= (unsigned char __xdata *)0xffff;
  tr= T_kezdoertek(10);
  T0idozito1(0);
  T0beallit(tr);
  T0start();
  ET0= 1;
  EA= 1;

  for (j=0; j<10; j++)
    for (i= 0; i<0xfff0; i++)
      {
	char c= p[i];
	unsigned int t= TL0 + (TH0*256);
	p[i]= t&0xff;
	if (p[i] != t&0xff)
	  x++;
	p[i]= c;
      }
  * (char __idata *) 0 = * (char __xdata *) 0xfffe;
  *sif= 's';
}