Listing 2 Link file for sample program

-! ARCH.xcl
   Link File for ARCH
-!

-c8051

-z

-!  Select register bank [0,8,10 or 18] -!

-D_R=0

-!  Setup "bit" segments (always zero if there is no
    need to reserve bit variable space for some other
    purpose) -!
    
-Z(BIT)C_ARGB,BITVARS=0

-!  Setup "data" segments. Start address may not be
    less than _R+8 (start of register bank + 8).
    Space must also be left for interrupt functions
    with the "using" attribute. That is, if _R is 0
    and there is an interrupt function with using [1],
    the start address should be set to 10 (hex) -!
    
-Z(DATA)C_ARGD,D_IDATA,D_UDATA=10-1f,24-7f

-!  Setup "idata" segments
    (usually loaded after "data") -!
    
-Z(IDATA)C_ARGI,I_UDATA,I_IDATA,CSTACK

-!  Setup "xdata" segments to the start address of
    external RAM. Note that this declaration does
    no harm even if you use a memory model that does
    not utilize external data RAM -!
    
-Z(XDATA)C_ARGX,X_UDATA,X_IDATA,ECSTR,RF_XDATA=7000

-!  Setup all read-only segments (PROM).
    Usually at zero -!
    
-Z(CODE)INTVEC,RCODE,D_CDATA,I_CDATA,X_CDATA,C_ICALL=0
-Z(CODE)C_RECFN,CSTR,CCSTR,CODE,CONST

-!  See configuration section
   concerning printf/sprintf -!
-e_small_write=_formatted_write

-!  See configuration section
   concerning scanf/sscanf -!
-e_medium_read=_formatted_read

-!  Load the 'C' library adapted for the selected
   memory model -!
-! cl8051t or cl8051s, cl8051c, cl8051m, c18051l -!

cl8051l
arch

-o arch.hex
-x
-l arch.map
-FINTEL-STANDARD
-t

-!  Code will now reside on file ARCH.hex
    in INTEL-STANDARD format -!