home *** CD-ROM | disk | FTP | other *** search
File List | 1991-01-15 | 7.9 KB | 165 lines |
- - a_inner - Page 1
-
- ####################################################################################################
- # #
- # Archimedes 8051 C-Compiler V2.00A/MD2 02/Mar/89 04:12:38 #
- # #
- # Memory model = large static #
- # Source file = a_inner.c #
- # List file = a_inner.lst #
- # Object file = a_inner.r03 #
- # ASM file = a_inner.s03 #
- # Command line = -o a_inner.r03 -l a_inner.lst -a a_inner.s03 -V -P -m1 -g -e -x -q #
- # -j -p88 -I\c51v2\ a_inner.c #
- # #
- # (c) Copyright Archimedes Software Inc. 1987 #
- ####################################################################################################
-
- \ 0000 NAME a_inner(16)
- \ 0000 RSEG CODE(0)
- \ 0000 RSEG UDATA(0)
- \ 0000 RSEG TEMP(0)
- \ 0000 PUBLIC innerloop(19,128)
- \ 0000 EXTERN state(2,128)
- \ 0000 EXTERN wastetime(19,32)
- \ 0000 EXTERN ?ENTER_L17
- \ 0000 EXTERN ?LEAVE_L17
- \ 0000 EXTERN ?LD_REL1_L11
- \ 0000 EXTERN ?UC_CMP_LT_L02
- \ 0000 EXTERN ?POINC1_L05
- \ 0000 EXTERN ?CL8051_2_00_L17
- \ 0000 EXTERN _R
- \ 0000 RSEG CODE
- 1 /* File: a_inner.c */
- 2
- 3 #include <io51.h> /* MCS-51 SFR & bit definitions */
- 4
- 5 /* external function prototypes (interface specifications) */
- 6 extern void wastetime(void);
- 7
- 8 /* external variables */
- 9 extern char state; /* 'state' reflects value in ACC (in original demo.asm) */
- 10
- 11 void innerloop( char repeat_cnt )
- 12 {
- \ 0000 innerloop:
- \ 0000 7401 MOV A,#1
- \ 0002 7800 MOV R0,#0
- \ 0004 7904 MOV R1,#4
- \ 0006 120000 LCALL ?ENTER_L17
- \ 0009 ; #15
- 13 static char i;
- 14
- 15 for ( i = 0; i < repeat_cnt; i++ ) {
- \ 0009 7B00 MOV R3,#0
- \ 000B 900000 MOV DPTR,#?0000
- \ 000E EB MOV A,R3
- \ 000F F0 MOVX @DPTR,A
- \ 0010 ?0002:
- \ 0010 900000 MOV DPTR,#?0000
- \ 0013 E0 MOVX A,@DPTR
- \ 0014 FB MOV R3,A
- \ 0015 8B05 MOV _R+5,R3
- \ 0017 120000 LCALL ?LD_REL1_L11
- \ 001A 0400 DW 1024
- \ 001C 120000 LCALL ?UC_CMP_LT_L02
- \ 001F 6043 JZ ?0001
- \ 0021 ?0003:
- \ 0021 ; #16
- 16 wastetime();
- \ 0021 900000 MOV DPTR,#0
- \ 0024 120000 LCALL wastetime
- \ 0027 ; #17
- 17 if (read_bit(P1_0_bit)) /* 'CPL P1.0': */
- \ 0027 309004 JNB P1.0,?0006
- \ 002A ?0005:
- \ 002A ; #18
- 18 clear_bit(P1_0_bit); /* if P1.0 on, clear P1.0 */
- \ 002A C290 CLR P1.0
- 19 else
- \ 002C 8002 SJMP ?0007
- \ 002E ?0006:
- \ 002E ; #20
- 20 set_bit( P1_0_bit ); /* if P1.0 off, set P1.0 */
- \ 002E D290 SETB P1.0
- \ 0030 ?0007:
- \ 0030 ; #21
- 21 state = 0;
- \ 0030 7B00 MOV R3,#0
- - a_inner - Page 2
-
- \ 0032 900000 MOV DPTR,#state
- \ 0035 EB MOV A,R3
- \ 0036 F0 MOVX @DPTR,A
- \ 0037 ; #22
- 22 if ( read_bit( P1_0_bit ) )
- \ 0037 309020 JNB P1.0,?0009
- \ 003A ?0008:
- \ 003A ; #23
- 23 state = (state) ? 0 : 1; /* 'CPL A' */
- \ 003A 900000 MOV DPTR,#state
- \ 003D E0 MOVX A,@DPTR
- \ 003E 6009 JZ ?0011
- \ 0040 ?0010:
- \ 0040 7B00 MOV R3,#0
- \ 0042 900000 MOV DPTR,#?temp
- \ 0045 EB MOV A,R3
- \ 0046 F0 MOVX @DPTR,A
- \ 0047 8007 SJMP ?0012
- \ 0049 ?0011:
- \ 0049 7B01 MOV R3,#1
- \ 004B 900000 MOV DPTR,#?temp
- \ 004E EB MOV A,R3
- \ 004F F0 MOVX @DPTR,A
- \ 0050 ?0012:
- \ 0050 900000 MOV DPTR,#?temp
- \ 0053 E0 MOVX A,@DPTR
- \ 0054 FB MOV R3,A
- \ 0055 900000 MOV DPTR,#state
- \ 0058 EB MOV A,R3
- \ 0059 F0 MOVX @DPTR,A
- \ 005A ?0009:
- \ 005A 7B00 MOV R3,#LOW(?0000)
- \ 005C 7A00 MOV R2,#HIGH(?0000)
- \ 005E 120000 LCALL ?POINC1_L05
- \ 0061 01 DB 1
- 24 } /* end of: for 'i' */
- 25
- 26 } /* end of function: 'innerloop( repeat_cnt )' */
- \ 0062 80AC SJMP ?0002
- \ 0064 ?0001:
- \ 0064 ; #26
- \ 0064 ?0013:
- \ 0064 020000 LJMP ?LEAVE_L17
- \ 0000 RSEG UDATA
- \ 0000 ?0000:
- \ 0001 DS 1
- \ 0000 RSEG TEMP
- \ 0000 ?temp:
- \ 0001 DS 1
- \ 0001 END
- - a_inner - 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 17 18 20 22
- innerloop function ext/def 12
- state char ext/ref 9 21 23 23
- wastetime function ext/ref 6 16
-
-
- Errors: none
- Warnings: none
- Code size: 103
-
-