home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / PCWK996.iso / demo / wgelectr / emul51 / examples / test.c < prev    next >
C/C++ Source or Header  |  1989-09-08  |  3KB  |  130 lines

  1. #include <reg51.h>                      /* define 8051 registers */
  2. #include <absacc.h>
  3. #include <stdio.h>                      /* define I/O functions */
  4. #include <string.h>
  5.  
  6. typedef  int  word;
  7.  
  8. int other_module(int,int *);
  9.  
  10. word evan,laban;
  11.  
  12. code  char  _abc_[] = "a string in code memory (\x1,\xCD hex:\t\n)";
  13. xdata char x_abc_[80];
  14.  
  15. code char *ptr = _abc_;
  16.  
  17. struct bitfield {
  18.     int is_keyword      : 1;
  19.     unsigned is_extern  : 3;
  20.     int      four       : 4;
  21.     int      is_static  : 1;
  22.     } flags,flags2;
  23.  
  24. bit sign0,sign1,sign2,sign3,sign4,sign5,sign6,sign7,sign8;
  25.  
  26. struct apan {
  27.     int member1;
  28.     int member2;
  29.     struct apan *next;
  30.     int member4;
  31.     char label[20];
  32.     };
  33.  
  34. static code struct apan MONKEY =
  35. { 0x4142,0x4344,(struct apan *)(XBYTE+0x89AB),0x40,"STRING_ARRAY_20"};
  36.  
  37. code struct betan {
  38.     unsigned int one,two,three;
  39.     char   *ptr;
  40.     char   str[10];
  41.     struct apan *monk;
  42.     struct betan *nextb;
  43. } hej = { 0x102,0x304,0x506,_abc_,"BETA_0", &MONKEY,0};
  44.  
  45. code struct betan chej = { 1,2,3,_abc_,"BETA_1", &MONKEY, &hej };
  46.  
  47.  
  48. code struct betan *pchej = &chej;
  49.  
  50.  
  51. code char   *parray[] = { "ABC","DEFG", "IJKLM", "OPQRST",0};
  52.  
  53. code unsigned int table[] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
  54. code unsigned int *tbl = table;
  55. code unsigned int **ptbl = &tbl;
  56.  
  57. code struct tag {
  58.     int  member;
  59.     char name[10];
  60. } list[5] = {           /* array of structures */
  61.       1001,"ADAM",
  62.       1002,"BENNY",
  63.       1003,"CINDY",
  64.       1004,"DAVID",
  65.       1005,"ERIC" };
  66.  
  67. code struct tag *plist = list;
  68.  
  69.  
  70. xdata struct apan Xmonkey;
  71.  
  72. code struct apan *pMonkey  = &MONKEY;
  73. code struct apan *pxmonkey = &Xmonkey;
  74. code struct apan **ppMonkey= &pMonkey;
  75. code float pi = -12.5;
  76.  
  77.  
  78. int count(struct apan *arg_p,int arg_counter)
  79. {
  80.     char local_1[5];
  81.     char _abc_[5];
  82.     int  local_2;
  83.     static code int clocal_3 = 12345;
  84.     xdata int xlocal_4;
  85.     static code int clocal_5 = 0x1234;
  86.  
  87.     for (local_2 = 0; local_2 < 4; local_2++)
  88.     arg_counter++;
  89.     strcpy(_abc_,"_cnt");
  90.     other_module(evan,&laban);
  91.  
  92.     local_2 = 0xABCD;
  93.  
  94.     return arg_counter;
  95. }
  96.  
  97. int main(int argc,char *argv[])
  98. {
  99.     char ch,local_string[15];
  100.     int  counter = 0;
  101.     struct apan *pointer = &MONKEY;
  102.     char _abc_[12];
  103.  
  104.     argc = 10;
  105.  
  106.     ch = argv[1][0];
  107.     evan = 0x1000;
  108.     laban = 2049;
  109.  
  110.     flags.four = 5;
  111.     flags.is_extern = 2;
  112.     flags.is_keyword = 0;
  113.     flags.is_static  = 1;
  114.  
  115.     strcpy(x_abc_,ptr);
  116.     strcpy(_abc_,"in main");        /* copy to local variable */
  117.  
  118.     memmove(&Xmonkey,&MONKEY,sizeof(Xmonkey));
  119.  
  120.     sign0 = sign3 = 0;
  121.     sign2 = sign1 = 1;
  122.  
  123.     while(1) {
  124.        counter = count(pointer,counter);
  125.        argc++;
  126.     }
  127.  
  128. }
  129.  
  130.