
$NOMOD51

$include   (CAPPBASE.h)

EXTRN      CODE (?C_STARTUP)
EXTRN      CODE (ISR_EI0)
............

EXTRN      BIT  (GBboot)

CSEG       AT    000h     ;reset
           ljmp  startup
CSEG       AT    003h     ;int 0
           ljmp  ISC_EI0
.......

// here switches between boot and app.
                              
ISC_EI0:   jnb   GBboot,appET0          //int 0
           ljmp  ISR_EI0   
appET0:    ljmp  APPBASE + 000h
....

startup:;  setb  GBboot
           mov   dptr,#0fbffh
           mov   a,#0
           movc  a,@a+dptr
           jnz   startAP               ; if last page of flash is erased we are in app mode
           ljmp   ?C_STARTUP
startAP:   clr   GBboot 
           ljmp  APPBASE + 060h

           end