home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s081 / 1.img / DEMO.LST < prev    next >
Encoding:
File List  |  1991-07-27  |  7.1 KB  |  152 lines

  1. PL/M-51 COMPILER                                                                            07/27/91            PAGE   1
  2.  
  3.  
  4. DOS 3.30 (038-N) PL/M-51 V1.2
  5. COMPILER INVOKED BY:  C:\51\PLM51.EXE DEMO.P51
  6.  
  7.  
  8.  
  9.    1   1      demo$start: do;
  10.               $include(reg51.dcl)
  11.           =   /* 8051 REG DECLARE */
  12.    2   1  =   DECLARE
  13.           =   P0      BYTE   AT   (80H)   register,
  14.           =   P1      BYTE   AT   (90H)   register,
  15.           =   P2      BYTE   AT   (0A0H)  register,
  16.           =   P3      BYTE   AT   (0B0H)  register,
  17.           =   PSW     BYTE   AT   (0D0H)  register,
  18.           =   ACC     BYTE   AT   (0E0H)  register,
  19.           =   B       BYTE   AT   (0F0H)  register,
  20.           =   SP      BYTE   AT   (81H)   register,
  21.           =   DPL     BYTE   AT   (82H)   register,
  22.           =   DPH     BYTE   AT   (83H)   register,
  23.           =   PCON    BYTE   AT   (87H)   register,
  24.           =   TCON    BYTE   AT   (88H)   register,
  25.           =   TMOD    BYTE   AT   (89H)   register,
  26.           =   TL0     BYTE   AT   (8AH)   register,
  27.           =   TL1     BYTE   AT   (8BH)   register,
  28.           =   TH0     BYTE   AT   (8CH)   register,
  29.           =   TH1     BYTE   AT   (8DH)   register,
  30.           =   IE      BYTE   AT   (0A8H)  register,
  31.           =   IP      BYTE   AT   (0B8H)  register,
  32.           =   SOCN    BYTE   AT   (98H)   register,
  33.           =   SBUF    BYTE   AT   (99H)   register;
  34.           =   /*    bin reg   psw         */
  35.    3   1  =   DECLARE
  36.           =   CY      BIT     AT   (0D7H) register,
  37.           =   AC      BIT     AT   (0D6H) register,
  38.           =   FO      BIT     AT   (0D5H) register,
  39.           =   RS1     BIT     AT   (0D4H) register,
  40.           =   RS0     BIT     AT   (0D3H) register,
  41.           =   OV      BIT     AT   (0D2H) register,
  42.           =   P       BIT     AT   (0D0H) register,
  43.           =   /*   TCON                    */
  44.           =   TF1     BIT     AT   (8FH)  register,
  45.           =   TR1     BIT     AT   (8EH)  register,
  46.           =   TF0     BIT     AT   (8DH)  register,
  47.           =   TR0     BIT     AT   (8CH)  register,
  48.           =   IE1     BIT     AT   (8BH)  register,
  49.           =   IT1     BIT     AT   (8AH)  register,
  50.           =   IE0     BIT     AT   (89H)  register,
  51.           =   IT0     BIT     AT   (88H)  register,
  52.           =   /*          IE                */
  53.           =   EA      BIT     AT   (0AFH) register,
  54.           =   ES      BIT     AT   (0ACH) register,
  55.           =   ET1     BIT     AT   (0ABH) register,
  56.           =   EX1     BIT     AT   (0AAH) register,
  57.           =   ET0     BIT     AT   (0A9H) register,
  58.           =   EX0     BIT     AT   (0A8H) register,
  59.           =   /*           IP               */
  60.           =   PS      BIT     AT   (0BCH) register,
  61. PL/M-51 COMPILER    DEMOSTART                                                               07/27/91            PAGE   2
  62.  
  63.  
  64.           =   PT1     BIT     AT   (0BBH) register,
  65.           =   PX1     BIT     AT   (0BAH) register,
  66.           =   PTO     BIT     AT   (0B9H) register,
  67.           =   PX0     BIT     AT   (0B8H) register,
  68.           =   /*      P3 BIN                */
  69.           =   RD      BIT     AT   (0B7H) register,
  70.           =   WR      BIT     AT   (0B6H) register,
  71.           =   T1      BIT     AT   (0B5H) register,
  72.           =   T0      BIT     AT   (0B4H) register,
  73.           =   INT1    BIT     AT   (0B3H) register,
  74.           =   INT0    BIT     AT   (0B2H) register,
  75.           =   TXD     BIT     AT   (0B1H) register,
  76.           =   RXD     BIT     AT   (0B0H) register,
  77.           =   /*      SCON BIN             */
  78.           =   SM0     BIT     AT   (9FH)  register,
  79.           =   SM1     BIT     AT   (9EH)  register,
  80.           =   SM2     BIT     AT   (9DH)  register,
  81.           =   REN     BIT     AT   (9CH)  register,
  82.           =   TB8     BIT     AT   (9BH)  register,
  83.           =   RB8     BIT     AT   (9AH)  register,
  84.           =   TI      BIT     AT   (99H)  register,
  85.           =   RI      BIT     AT   (98H)  register;
  86.    4   2      int0p: procedure interrupt 0 using 1; end;
  87.    6   2      int1p: procedure interrupt 2 using 2;
  88.    7   2             declare (int1v0,int1v1) byte;
  89.    8   2             int1v0=p1;
  90.    9   2             if (p1 and 07h)=07h
  91.                         then do; sbuf=25h;
  92.   12   3                                      end;
  93.   13   3             else do;
  94.   14   3                    sbuf=20h;
  95.   15   3                  end;
  96.   16   2             return;
  97.   17   1      end int1p;
  98.   18   2      samp: procedure (samp$ch) word;
  99.   19   2            declare samp$ch byte;
  100.   20   2            declare startad byte at(0e000h) auxiliary;
  101.   21   2            declare (ad0,ad1) byte at(0e010h) auxiliary;
  102.   22   2            p1=samp$ch; call time(100);
  103.   24   2            return ad0+256*ad1;
  104.   25   1      end samp;
  105.   26   2      comput1: procedure(var0,var1,var2) word;
  106.   27   2               declare (var0,var1,var2,result) word;
  107.   28   3               do case (p1 and 03h);
  108.   29   3                  result=var0+var1+var2;
  109.   30   3                  result=var0*var1+var2;
  110.   31   3                  result=var0/var1-var2;
  111.   32   3                  result=var0 MOD var1;
  112.   33   3               end;
  113.   34   2               return result;
  114.   35   1      end comput1;
  115.   36   2      comput2: procedure(count) word;
  116.   37   2               declare count byte, value word;
  117.   38   2               value=0;
  118.   39   3               do while count<>0;
  119.   40   3                  value=value+(count*2-1);
  120.   41   3                  count=count-1;
  121. PL/M-51 COMPILER    DEMOSTART                                                               07/27/91            PAGE   3
  122.  
  123.  
  124.   42   3               end;
  125.   43   2               return value;
  126.   44   1      end comput2;
  127.   45   2      mprog: do;
  128.   46   2      declare (v0,v1,v2,v3,v4,v5) byte;
  129.   47   2      declare (d0,d1,d2,d3,d4,d5) word, b0 bit;
  130.   48   3       do while 1=1;
  131.   49   3          v0=1; v1=10; v2=20; v3=25;               /*     byte      */
  132.   53   3          d1=((d0+v1)*v2)+(v3-v2)*v1-v0;           /* byte multiply */
  133.   54   3          d2=1234; d4=54321; d5=45678;             /*     word      */
  134.   57   4          do v0=1 to 2; d4=d4+2; d5=d5-3; end;     /*     loop      */ 
  135.   61   3          d2=samp(2);    d3=comput1(d0,d1,d2);     /*   procedure   */
  136.   63   3          d4=(((v3+1)*v2+1)*v1+1)+((d1+d2/d3)*3);  /*  word devide  */
  137.   64   3          d5=comput2(v1);                          /*   procedure   */
  138.   65   4          if b0=1 then do; 
  139.   67   4             d1=(v1+v2+v3)*v4;  d4=(d4+10)*d1;     /*   condition   */
  140.   69   4             p1$7=1;  b0=0;  d2=samp(3);  end;     /*  bit operate  */
  141. *** ERROR #70, STATEMENT #69, LINE #54, NEAR 'P17', UNDECLARED IDENTIFIER
  142.   73   4          else do; d1=(v1+v2+v3)/v4; d4=d4+10;
  143.   76   4             p1$7=0;  b0=1;  d2=samp(4);  end;     /*  bit operate  */     
  144. *** ERROR #71, STATEMENT #76, LINE #56, NEAR 'P17', IDENTIFIER IS OUT OF SCOPE
  145.   80   3       end;
  146.   81   1      end mprog;
  147.   82   1      end demo$start;
  148.  
  149.     131 LINES READ
  150.     2 PROGRAM ERROR(S)
  151. END OF PL/M-51 COMPILATION
  152.