home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s270 / 1.ddi / PCKDD51B.EXE / A_HLMAIN.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-15  |  1.4 KB  |  37 lines

  1. /* File:  a_hlmain.c */
  2.  
  3. /*    C Language Demo Program 'A_DEMO.AOM' (AOM == Absolute Object Module)
  4. **    (for use with Archimedes' C-8051 Cross-compiler, Ver. 2.01 or later)
  5. **
  6. **    This program replicates, as closely as possible (except for    actual timing),
  7. **    the functionality of the ASM51 demo program 'demo.asm'.
  8. **
  9. **    Modules (Files) in A_DEMO.AOM:
  10. **        a_cstart.s03 -- Archimedes' ASM51:  C Library Start-Up module (reserves space for interrupt vectors)
  11. **        a_hlmain.c   -- Archimedes' C, main program (function 'main()')
  12. **        a_inner.c    -- Archimedes' C, function 'innerloop( repeat_cnt )'
  13. **        a_waste.c    -- Archimedes' C, function 'wastetime()'
  14. */
  15.  
  16. #include <io51.h>    /* MCS-51 SFR & bit definitions */
  17.  
  18. /* external function prototypes (interface specifications) */
  19. extern void    innerloop(char);
  20. extern void    wastetime(void);
  21.  
  22. char        state = 0;    /* 'state' reflects value in ACC (in original demo.asm) */
  23. static char    counter;    /* dummy counter (rolls over at 256) */
  24.  
  25. void main()
  26. {
  27.     state = 0;                    /* mimic ACC Power-Up Reset condition (value) */
  28.  
  29.     for ( counter = 0;  ;  counter++ ) {
  30.         clear_bit(P1_0_bit);    /* Set P1.0 low at start */
  31.         innerloop( 10 );        /* Generate 5 pulses */
  32.         wastetime();            /* Call 'wastetime' twice to generate   */
  33.         wastetime();            /* blank pulse between sets of 5 pulses */
  34.         } /* end of:  for 'counter' */
  35.  
  36. } /* end of function:  'main()' */
  37.