This section describes the assembly and linking of a moderately complex program. (The project is a multi-channel high voltage control system for the stabilization of nuclear radiation detection equipment.) The files may be found in the '/project/phs_4' directory. The project includes an 'optional' module that can be downloaded by the main project. The 'optional' module is assembled from an independent file but must be linked with the main project files to resolve references external to the 'optional' module.
... Assembly ... Linking ... Go to Documentation Index
the project files included twelve .asm modules and four .def include files: phs.asm system.def acia.asm area.def acq.asm define.def hvctrl.asm data.def termio.asm select.asm status.asm histos.asm help.asm aiconv.asm phsmon.asm phsopt.asm Each of the modules was assembled individually. This was done by creating a command file containing the assembly command lines: as6809 -gloaxsff phs as6809 -gloaxsff acia as6809 -gloaxsff acq as6809 -gloaxsff hvctrl as6809 -gloaxsff termio as6809 -gloaxsff select as6809 -gloaxsff status as6809 -gloaxsff histos as6809 -gloaxsff help as6809 -gloaxsff aiconv as6809 -gloaxsff phsmon as6809 -gloaxsff phsopt the assembly process produced an object (.rel) file (-s), a listing (.lst) file (-l), and a symbol (.sym) file (-s) for each individual .asm file. the assembly process made all undefined labels global (-g), all internal labels global (-a), the output in HEX format (-x), and the listing files to have relocations flagged (-ff).
The main program was linked using a file (PHS.LNK) containing the following command lines: -mxsu ; linker options phs ; output file name phs ; input file acia ; . acq ; . hvctrl ; . termio ; . select ; . status ; . histos ; . help ; . aiconv ; . phsmon ; input file -b WORKPG = 0x0F00 ; value definition -b BUFSAV = bufsav ; . -b PGMSAV = pgmsav ; . -b IRQVEC = irqvec ; value definition -e ; end of file and was invoked by the command line: aslink -f phs The linking process produced a map (.map) file (-m) in HEX format (-x) and a Motorola (.s19) loader file (-s). The -b options specify the memory addresses for certain program sections as defined in the assembled modules. The file input was terminated by the -e option. The 'optional' loadable program was linked using a file (PHSOPT.LNK) containing the following command lines: -mxsu ; linker options phsopt ; output file name -v ; suppress linker output phs ; input file acia ; . acq ; . hvctrl ; . termio ; . select ; . status ; . histos ; . help ; . aiconv ; . phsmon ; input file -o ; enable linker output phsopt ; input file -b WORKPG = 0x0F00 ; value definition -b BUFSAV = bufsav ; . -b PGMSAV = pgmsav ; . -b IRQVEC = irqvec ; value definition -e ; end of file and was invoked by the command line: aslink -f phsopt The linking process creates an overlay output file from the PHSOPT code using all the global symbols defined in the PHS files. The order of the main project files MUST be identical to that in the main project .lnk file.
... Exit the ASxxxx Documentation
... Home Page
Last Updated: April 2009