;-------------------------------------------------------- ; File Created by SDCC : FreeWare ANSI-C Compiler ; Version 2.4.0 Mon Mar 15 01:31:52 2004 ;-------------------------------------------------------- .module dummy .optsdcc -mmcs51 --model-small ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _main .globl __vtable .globl __firm_regulate .globl __volt .globl __adc .globl __power_fail .globl __resistor .globl __buf ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- ;-------------------------------------------------------- ; special function bits ;-------------------------------------------------------- ;-------------------------------------------------------- ; overlayable register banks ;-------------------------------------------------------- .area REG_BANK_0 (REL,OVR,DATA) .ds 8 ;-------------------------------------------------------- ; internal ram data ;-------------------------------------------------------- .area DSEG (DATA) ;-------------------------------------------------------- ; overlayable items in internal ram ;-------------------------------------------------------- .area OSEG (OVR,DATA) ;-------------------------------------------------------- ; Stack segment in internal ram ;-------------------------------------------------------- .area SSEG (DATA) __start__stack: .ds 1 ;-------------------------------------------------------- ; indirectly addressable internal ram data ;-------------------------------------------------------- .area ISEG (DATA) ;-------------------------------------------------------- ; bit data ;-------------------------------------------------------- .area BSEG (BIT) ;-------------------------------------------------------- ; external ram data ;-------------------------------------------------------- .area XSEG (XDATA) __buf:: .ds 30 __resistor:: .ds 8 __power_fail:: .ds 1 __adc:: .ds 48 __volt:: .ds 16 __firm_regulate:: .ds 1 __vtable:: .ds 1024 ;-------------------------------------------------------- ; external initialized ram data ;-------------------------------------------------------- .area XISEG (XDATA) ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- .area CSEG (CODE) __interrupt_vect: ljmp __sdcc_gsinit_startup reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE) __sdcc_gsinit_startup: mov sp,#__start__stack - 1 lcall __sdcc_external_startup mov a,dpl jz __sdcc_init_data ljmp __sdcc_program_startup __sdcc_init_data: ; _mcs51_genXINIT() start mov r1,#l_XINIT mov a,r1 orl a,#(l_XINIT >> 8) jz 00003$ mov r2,#((l_XINIT+255) >> 8) mov dptr,#s_XINIT mov r0,#s_XISEG mov p2,#(s_XISEG >> 8) 00001$: clr a movc a,@a+dptr movx @r0,a inc dptr inc r0 cjne r0,#0,00002$ inc p2 00002$: djnz r1,00001$ djnz r2,00001$ mov p2,#0xFF 00003$: ; _mcs51_genXINIT() end ; _mcs51_genRAMCLEAR() start mov r0,#l_XSEG mov a,r0 orl a,#(l_XSEG >> 8) jz 00005$ mov r1,#((l_XSEG + 255) >> 8) mov dptr,#s_XSEG clr a 00004$: movx @dptr,a inc dptr djnz r0,00004$ djnz r1,00004$ 00005$: mov @r0,a djnz r0,00005$ ; _mcs51_genRAMCLEAR() end .area GSFINAL (CODE) ljmp __sdcc_program_startup ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME (CODE) .area CSEG (CODE) ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CSEG (CODE) __sdcc_program_startup: lcall _main ; return from main will lock up sjmp . ;------------------------------------------------------------ ;Allocation info for local variables in function 'main' ;------------------------------------------------------------ ;------------------------------------------------------------ ;dummy.c:4: void main () ; ----------------------------------------- ; function main ; ----------------------------------------- _main: ar2 = 0x02 ar3 = 0x03 ar4 = 0x04 ar5 = 0x05 ar6 = 0x06 ar7 = 0x07 ar0 = 0x00 ar1 = 0x01 ;dummy.c:6: while (1); 00102$: ; Peephole 112.b changed ljmp to sjmp sjmp 00102$ 00104$: ret .area CSEG (CODE) .area XINIT (CODE)