home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s270 / 1.ddi / PCKDD51B.EXE / A_HLMAIN.LST < prev    next >
Encoding:
File List  |  1991-01-15  |  7.2 KB  |  137 lines

  1.                                             - a_hlmain -                                   Page    1
  2.  
  3. ####################################################################################################
  4. #                                                                                                  #
  5. #     Archimedes 8051 C-Compiler V2.00A/MD2                                02/Mar/89  04:12:33     #
  6. #                                                                                                  #
  7. #           Memory model  =  large static                                                          #
  8. #           Source file   =  a_hlmain.c                                                            #
  9. #           List file     =  a_hlmain.lst                                                          #
  10. #           Object file   =  a_hlmain.r03                                                          #
  11. #           ASM file      =  a_hlmain.s03                                                          #
  12. #           Command line  =  -o a_hlmain.r03 -l a_hlmain.lst -a a_hlmain.s03 -V -P -m1 -g -e -x    #
  13. #                            -q -j -p88 -I\c51v2\ a_hlmain.c                                       #
  14. #                                                                                                  #
  15. #                                                      (c) Copyright Archimedes Software Inc. 1987 #
  16. ####################################################################################################
  17.  
  18.    \   0000                    NAME    a_hlmain(16)
  19.    \   0000                    RSEG    CODE(0)
  20.    \   0000                    RSEG    UDATA(0)
  21.    \   0000                    RSEG    CDATA(0)
  22.    \   0000                    RSEG    IDATA(0)
  23.    \   0000                    EXTERN  innerloop(19,128)
  24.    \   0000                    PUBLIC  main(147,31)
  25.    \   0000                    PUBLIC  state(2,128)
  26.    \   0000                    EXTERN  wastetime(19,32)
  27.    \   0000                    EXTERN  ?ENTER_L17
  28.    \   0000                    EXTERN  ?POINC1_L05
  29.    \   0000                    EXTERN  ?CL8051_2_00_L17
  30.    \   0000                    RSEG    CODE
  31.       1          /* File:  a_hlmain.c */
  32.       2          
  33.       3          /*      C Language Demo Program 'A_DEMO.AOM' (AOM == Absolute Object Module)
  34.       4          **      (for use with Archimedes' C-8051 Cross-compiler, Ver. 2.01 or later)
  35.       5          **
  36.       6          **      This program replicates, as closely as possible (except for     actual timing),
  37.       7          **      the functionality of the ASM51 demo program 'demo.asm'.
  38.       8          **
  39.       9          **      Modules (Files) in A_DEMO.AOM:
  40.      10          **              a_cstart.s03 -- Archimedes' ASM51:  C Library Start-Up module (reserves space for interrupt vectors)
  41.      11          **              a_hlmain.c   -- Archimedes' C, main program (function 'main()')
  42.      12          **              a_inner.c    -- Archimedes' C, function 'innerloop( repeat_cnt )'
  43.      13          **              a_waste.c    -- Archimedes' C, function 'wastetime()'
  44.      14          */
  45.      15          
  46.      16          #include <io51.h>       /* MCS-51 SFR & bit definitions */
  47.      17          
  48.      18          /* external function prototypes (interface specifications) */
  49.      19          extern void     innerloop(char);
  50.      20          extern void     wastetime(void);
  51.      21          
  52.      22          char            state = 0;      /* 'state' reflects value in ACC (in original demo.asm) */
  53.      23          static char     counter;        /* dummy counter (rolls over at 256) */
  54.      24          
  55.      25          void main()
  56.      26          {
  57.    \   0000            main:
  58.    \   0000  E4                CLR     A
  59.    \   0001  7800              MOV     R0,#0
  60.    \   0003  7904              MOV     R1,#4
  61.    \   0005  120000            LCALL   ?ENTER_L17
  62.    \   0008            ; #27
  63.      27                  state = 0;                                      /* mimic ACC Power-Up Reset condition (value) */
  64.    \   0008  7B00              MOV     R3,#0
  65.    \   000A  900000            MOV     DPTR,#state
  66.    \   000D  EB                MOV     A,R3
  67.    \   000E  F0                MOVX    @DPTR,A
  68.    \   000F            ; #29
  69.      28          
  70.      29                  for ( counter = 0;  ;  counter++ ) {
  71.    \   000F  7B00              MOV     R3,#0
  72.    \   0011  900000            MOV     DPTR,#counter
  73.    \   0014  EB                MOV     A,R3
  74.    \   0015  F0                MOVX    @DPTR,A
  75.    \   0016            ?0001:
  76.    \   0016            ; #30
  77.      30                          clear_bit(P1_0_bit);    /* Set P1.0 low at start */
  78.    \   0016  C290              CLR     P1.0
  79.    \   0018            ; #31
  80.      31                          innerloop( 10 );                /* Generate 5 pulses */
  81.    \   0018  7B0A              MOV     R3,#10
  82.    \   001A  900001            MOV     DPTR,#1
  83.    \   001D  120000            LCALL   innerloop
  84.    \   0020            ; #32
  85.      32                          wastetime();                    /* Call 'wastetime' twice to generate   */
  86.    \   0020  900000            MOV     DPTR,#0
  87.    \   0023  120000            LCALL   wastetime
  88.    \   0026            ; #33
  89.                                             - a_hlmain -                                   Page    2
  90.  
  91.      33                          wastetime();                    /* blank pulse between sets of 5 pulses */
  92.    \   0026  900000            MOV     DPTR,#0
  93.    \   0029  120000            LCALL   wastetime
  94.    \   002C  7B00              MOV     R3,#LOW(counter)
  95.    \   002E  7A00              MOV     R2,#HIGH(counter)
  96.    \   0030  120000            LCALL   ?POINC1_L05
  97.    \   0033  01                DB      1
  98.      34                          } /* end of:  for 'counter' */
  99.      35          
  100.      36          } /* end of function:  'main()' */
  101.    \   0034  80E0              SJMP    ?0001
  102.    \   0000                    RSEG    UDATA
  103.    \   0000            counter:
  104.    \   0001                    DS      1
  105.    \   0000                    RSEG    CDATA
  106.    \   0000  00                DB      0
  107.    \   0000                    RSEG    IDATA
  108.    \   0000            state:
  109.    \   0001                    DS      1
  110.    \   0001                    END
  111.                                             - a_hlmain -                                   Page    3
  112.  
  113.                                        S Y M B O L - T A B L E
  114.                                        =======================
  115.  
  116.  
  117.             #include file(s):
  118.  
  119.        [1]       \c51v2\io51.h
  120.  
  121.  
  122.             Symbol                    Type     Storage   Defline   Refline(s)
  123.             ------                    ----     -------   -------   ----------
  124.  
  125. P1_0_bit                            #define      ---      107:1         30
  126. counter                                char     static       23         29       29
  127. innerloop                          function    ext/ref       19         31
  128. main                               function    ext/def       26  
  129. state                                  char    ext/def       22         27
  130. wastetime                          function    ext/ref       20         32       33
  131.  
  132.  
  133. Errors: none
  134. Warnings: none
  135. Code size: 54
  136.  
  137.