home *** CD-ROM | disk | FTP | other *** search
File List | 1991-01-15 | 7.2 KB | 137 lines |
- - a_hlmain - Page 1
-
- ####################################################################################################
- # #
- # Archimedes 8051 C-Compiler V2.00A/MD2 02/Mar/89 04:12:33 #
- # #
- # Memory model = large static #
- # Source file = a_hlmain.c #
- # List file = a_hlmain.lst #
- # Object file = a_hlmain.r03 #
- # ASM file = a_hlmain.s03 #
- # Command line = -o a_hlmain.r03 -l a_hlmain.lst -a a_hlmain.s03 -V -P -m1 -g -e -x #
- # -q -j -p88 -I\c51v2\ a_hlmain.c #
- # #
- # (c) Copyright Archimedes Software Inc. 1987 #
- ####################################################################################################
-
- \ 0000 NAME a_hlmain(16)
- \ 0000 RSEG CODE(0)
- \ 0000 RSEG UDATA(0)
- \ 0000 RSEG CDATA(0)
- \ 0000 RSEG IDATA(0)
- \ 0000 EXTERN innerloop(19,128)
- \ 0000 PUBLIC main(147,31)
- \ 0000 PUBLIC state(2,128)
- \ 0000 EXTERN wastetime(19,32)
- \ 0000 EXTERN ?ENTER_L17
- \ 0000 EXTERN ?POINC1_L05
- \ 0000 EXTERN ?CL8051_2_00_L17
- \ 0000 RSEG CODE
- 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 {
- \ 0000 main:
- \ 0000 E4 CLR A
- \ 0001 7800 MOV R0,#0
- \ 0003 7904 MOV R1,#4
- \ 0005 120000 LCALL ?ENTER_L17
- \ 0008 ; #27
- 27 state = 0; /* mimic ACC Power-Up Reset condition (value) */
- \ 0008 7B00 MOV R3,#0
- \ 000A 900000 MOV DPTR,#state
- \ 000D EB MOV A,R3
- \ 000E F0 MOVX @DPTR,A
- \ 000F ; #29
- 28
- 29 for ( counter = 0; ; counter++ ) {
- \ 000F 7B00 MOV R3,#0
- \ 0011 900000 MOV DPTR,#counter
- \ 0014 EB MOV A,R3
- \ 0015 F0 MOVX @DPTR,A
- \ 0016 ?0001:
- \ 0016 ; #30
- 30 clear_bit(P1_0_bit); /* Set P1.0 low at start */
- \ 0016 C290 CLR P1.0
- \ 0018 ; #31
- 31 innerloop( 10 ); /* Generate 5 pulses */
- \ 0018 7B0A MOV R3,#10
- \ 001A 900001 MOV DPTR,#1
- \ 001D 120000 LCALL innerloop
- \ 0020 ; #32
- 32 wastetime(); /* Call 'wastetime' twice to generate */
- \ 0020 900000 MOV DPTR,#0
- \ 0023 120000 LCALL wastetime
- \ 0026 ; #33
- - a_hlmain - Page 2
-
- 33 wastetime(); /* blank pulse between sets of 5 pulses */
- \ 0026 900000 MOV DPTR,#0
- \ 0029 120000 LCALL wastetime
- \ 002C 7B00 MOV R3,#LOW(counter)
- \ 002E 7A00 MOV R2,#HIGH(counter)
- \ 0030 120000 LCALL ?POINC1_L05
- \ 0033 01 DB 1
- 34 } /* end of: for 'counter' */
- 35
- 36 } /* end of function: 'main()' */
- \ 0034 80E0 SJMP ?0001
- \ 0000 RSEG UDATA
- \ 0000 counter:
- \ 0001 DS 1
- \ 0000 RSEG CDATA
- \ 0000 00 DB 0
- \ 0000 RSEG IDATA
- \ 0000 state:
- \ 0001 DS 1
- \ 0001 END
- - a_hlmain - Page 3
-
- S Y M B O L - T A B L E
- =======================
-
-
- #include file(s):
-
- [1] \c51v2\io51.h
-
-
- Symbol Type Storage Defline Refline(s)
- ------ ---- ------- ------- ----------
-
- P1_0_bit #define --- 107:1 30
- counter char static 23 29 29
- innerloop function ext/ref 19 31
- main function ext/def 26
- state char ext/def 22 27
- wastetime function ext/ref 20 32 33
-
-
- Errors: none
- Warnings: none
- Code size: 54
-
-