home *** CD-ROM | disk | FTP | other *** search
- /* File: a_hlmain.c */
-
- /* C Language Demo Program 'A_DEMO.AOM' (AOM == Absolute Object Module)
- ** (for use with Archimedes' C-8051 Cross-compiler, Ver. 2.01 or later)
- **
- ** This program replicates, as closely as possible (except for actual timing),
- ** the functionality of the ASM51 demo program 'demo.asm'.
- **
- ** Modules (Files) in A_DEMO.AOM:
- ** a_cstart.s03 -- Archimedes' ASM51: C Library Start-Up module (reserves space for interrupt vectors)
- ** a_hlmain.c -- Archimedes' C, main program (function 'main()')
- ** a_inner.c -- Archimedes' C, function 'innerloop( repeat_cnt )'
- ** a_waste.c -- Archimedes' C, function 'wastetime()'
- */
-
- #include <io51.h> /* MCS-51 SFR & bit definitions */
-
- /* external function prototypes (interface specifications) */
- extern void innerloop(char);
- extern void wastetime(void);
-
- char state = 0; /* 'state' reflects value in ACC (in original demo.asm) */
- static char counter; /* dummy counter (rolls over at 256) */
-
- void main()
- {
- state = 0; /* mimic ACC Power-Up Reset condition (value) */
-
- for ( counter = 0; ; counter++ ) {
- clear_bit(P1_0_bit); /* Set P1.0 low at start */
- innerloop( 10 ); /* Generate 5 pulses */
- wastetime(); /* Call 'wastetime' twice to generate */
- wastetime(); /* blank pulse between sets of 5 pulses */
- } /* end of: for 'counter' */
-
- } /* end of function: 'main()' */
-