2.3.1 /Fa, /FA, /Fc and /Fl

Microsoft has extended the C7 /Fa, /Fc, /Fl assembly listing functionality by deprecating /Fc and /Fl, and adding /FA*. The idea is that /Fa names the assembly listing file, and /FA describes what should be in it in addition to the basic assembly text.

/FA takes a string argument, which may contain the letters 'a', 'c', or 's'.

CLAXP does not produce an assemblable assembly language source file. Only options that create a .COD file are valid. In effect, the default is .COD because that is the only form of listing supported.

While /Fc and /Fl are still silently accepted, they aren't being documented. Comparison of old and new formats:

old

new


/Fa

/FA and/or /Fa

/Fc

/FAcs (with or without /Fa)

/Fl

/FAc (with or without /Fa)

/Fa{file}

/Fa{file} (with or without /FA)

/Fc{file}

/Fa{file} /FAcs

/Fl{file}

/Fa{file}_/FAs


The overrides are set up in such a way that /Fc, /Fl and /FA are mutually overriding, as are /Fc /Fl and /Fa, while /Fa and /FA do not override.

An alternative description for CLAXP presents the options in two groups. Group 1 is as follows:

Option

Interpretation


/Fa

Error, but treated as if /FAc specified

/Fa{file}

Error, but treated as if /FAc specified

/Fc

Undocumented, but equivalent to /Fa /FAc

/Fc{file}

Undocumented, but equivalent to /Fa{file} /FAc

/Fl

Undocumented, but equivalent to /Fa /FAcs

/Fl{file}

Undocumented, but equivalent to /Fa{file} /FAcs


Group 2 is:

Option

Interpretation


/FA

Error (equivalent to /FAa), but forced to /FAc

/FAa

Error (.ASM), but forced to /FAc (.COD)

/FAc or /FAac

Create listing with code bytes (.COD)

/FAcs or /FAacs

Create listing with code bytes and source (.COD)

/FAs or /FAas

Error (equivalent to /FAas), but forced to /FAcs


/Fa or /Fafile can be added in combination with any of the Group 2 options. The effect is only to determine the name of the file created. Whether the requested file can be created or not is determined solely by the associated /FA form. As noted above, the erroneous forms requesting a .ASM file are forced to request a .COD file with code bytes. So while

/Fa /FAs
/Fa{file} /FA

specify .ASM files, they are treated as if they were written

/Fa /FAcs
/Fa{file} /FAc

respectively.