
                 C_STARTUP:
C:0x0000    02232A   LJMP     STARTUP1(C:232A)

                 CALL_IAP_WRITE:
C:0x2300    C0A8     PUSH     IEN0(0xA8)
C:0x2302    C2AF     CLR      EA(0xA8.7)
                                  ;disable interrupts
C:0x2304    85D9F0   MOV      B(0xF0),CMOD(0xD9)
C:0x2307    AAF0     MOV      R2,B(0xF0)
                                  ;save CMOD contents and disable watchdog timer
C:0x2309    30F603   JNB      0xF0.6,IAPTAG11(C:230F)
C:0x230C    53D9BF   ANL      CMOD(0xD9),#0xBF
                 IAPTAG11:
C:0x230F    75E055   MOV      ACC(0xE0),#0x55
C:0x2312    758323   MOV      DPH(0x83),#0x23
C:0x2315    758270   MOV      DPL(0x82),#0x70
                                  ;data 55h to be stored at 2370h
C:0x2318    7902     MOV      R1,#0x02
                                  ;code to program data byte
C:0x231A    53B1FE   ANL      FCF(0xB1),#CCAP4H(0xFE)
                                  ;enable bootrom
C:0x231D    121FF0   LCALL    C:1FF0
                                  ;call IAP subroutine
C:0x2320    AFE0     MOV      R7,ACC(0xE0)
C:0x2322    43B101   ORL      FCF(0xB1),#0x01
                                  ;disable bootrom
C:0x2325    8AD9     MOV      CMOD(0xD9),R2
C:0x2327    D0A8     POP      IEN0(0xA8)
C:0x2329    22       RET      
                 STARTUP1:
C:0x232A    787F     MOV      R0,#0x7F
C:0x232C    E4       CLR      A
                 IDATALOOP:
C:0x232D    F6       MOV      @R0,A
C:0x232E    D8FD     DJNZ     R0,IDATALOOP(C:232D)
C:0x2330    758109   MOV      SP(0x81),#0x09
C:0x2333    022336   LJMP     main(C:2336)
                 main:
C:0x2336    122300   LCALL    CALL_IAP_WRITE(C:2300)
C:0x2339    750800   MOV      i(0x08),#0x00
                     ;had written in C as i = call_iap_write()
                     ;should returned value in R7 go to i?
C:0x233C    8F09     MOV      0x09,R7
C:0x233E    22       RET    

