/*
 *
 * assemble  Version 0.0  18JAN84
 *
 * This is the assembler subscript.  It is generic and assembler
 * independent.
 *
 */
/*
 * TNIX Version
 * Keyshell Version Number 1
 */

assemble
{
>
>\kasm\e - Invoke the assembler for the microprocessor selected by
>            your uP variable.
>
>\kasm virt\e - Use the virtual symbol table version of the assembler
>            (if available for the current microprocessor). Takes about
>            twice as long as the non-virtual version.
>
>\klink\e - Invoke the LAS linker.
>
>\klink virt\e - Use virtual symbol table version of linker. Takes
>	     longer, allows more symbols.
>
>\klister\e - Invoke the LAS object module symbol listing program.
>
>\klibgen\e - Create, delete or update an object module library.
>
	msg (^);
	f1;asm;
	{	cmd(^asm ),
		msg(^Enter source file name : %f),
		cmd(.o $1.l $1),
		exec,
		break;
>
>\kF1-F5\e - Previously selected source files.
>
		f1;;hist;
		f2;;hist;
		f3;;hist;
		f4;;hist;
		f5;;hist;
		f6;listfiles;call,cmd(^ls),exec,return;
		f7;manual; man( asm );
		f8;done;break;
	};
	f2;asm virt;
	{	cmd(^asm -b ),
		msg(^Enter source file name : %f),
		cmd(.o $1.l $1),
		exec,
		break;
>
>\kF1-F5\e - Previously selected source files.
>
		f1;;hist;
		f2;;hist;
		f3;;hist;
		f4;;hist;
		f5;;hist;
		f6;listfiles;call,cmd(^ls),exec,return;
		f7;manual; man( asm );
		f8;done;break;
	};
	f3;link;
	{
		cmd (^link -v ), next;
	}, {
		next;
	}, {
>
>\kcmd. file\e - Use a linker command file.
>
>\kobj files\e - Enter the object file, load file and transfer address.
>
>\kdebug\e - Include debug information in the load file.
>
>\krelink\e - Make the load file relinkable.
>
>\kexecute\e - Execute the command line.
>
		msg (^Press keys for options : %%);
		f1;cmd. file; 
		{
>
>\kF1-F5\e - Previously specified command file.
>
			cmd (-c ), msg (^Enter command file name : %F), back (2);
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd (^ls), exec, return;
			f7;manual; man (link);
			f8;done; break;
		};
		f2;obj files;
		{
>
>\kF1-F5\e - Previously specified object files.
>
			cmd (-O ), msg (^Enter object file name\(s\) : %P), next;
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd(^ls), exec, return;
			f7;manual; man (link);
			f8;done; break (2);
		}, {
			cmd (-o ), msg (^Enter load file name : %F), next;
>
>\kF1-F5\e - Previously specified load files.
>
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd(^ls), exec, return;
			f7;manual; man (link);
			f8;done; break (2);
		}, {
>
>\kF1-F6\e - Previously specified transfer addresses.
>
			cmd (-x ), msg (^Enter transfer address : %P), break ;
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;; hist;
			f7;manual; man (link);
			f8;done; break (2);
		};
		f3;debug;
			cmd (-d ), back;
		f4;relink;
			cmd (-r ), back;
		f6;execute;
			exec, break;
		f7;manual; man (link);
		f8;done; break;
	};
	f4;link virt;
	{
		cmd (^link -v -b ), next;
	}, {
		next;
	}, {
>
>\kcmd. file\e - Use a linker command file.
>
>\kobj files\e - Enter the object file, load file and transfer address.
>
>\kdebug\e - Include debug information in the load file.
>
>\krelink\e - Make the load file relinkable.
>
>\kexecute\e - Execute the command line.
>
		msg (^Press keys for options : %%);
		f1;cmd. file; 
		{
>
>\kF1-F5\e - Previously specified command file.
>
			cmd (-c ), msg (^Enter command file name : %F), back (2);
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd (^ls), exec, return;
			f7;manual; man (link);
			f8;done; break;
		};
		f2;obj files;
		{
>
>\kF1-F5\e - Previously specified object files.
>
			cmd (-O ), msg (^Enter object file name\(s\) : %P), next;
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd(^ls), exec, return;
			f7;manual; man (link);
			f8;done; break (2);
		}, {
			cmd (-o ), msg (^Enter load file name : %F), next;
>
>\kF1-F5\e - Previously specified load files.
>
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd(^ls), exec, return;
			f7;manual; man (link);
			f8;done; break (2);
		}, {
>
>\kF1-F6\e - Previously specified transfer addresses.
>
			cmd (-x ), msg (^Enter transfer address : %P), break ;
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;; hist;
			f7;manual; man (link);
			f8;done; break (2);
		};
		f3;debug;
			cmd (-d ), back;
		f4;relink;
			cmd (-r ), back;
		f6;execute;
			exec, break;
		f7;manual; man (link);
		f8;done; break;
	};
	f5;lister;
	{
		cmd (^lstr -v ), next;
	}, {
		next;
	}, {
>
>\kgloblonly\e - List only global symbols.
>
>\ksec. len\e - Show the length of each section.
>
>\knum. sort\e - Sort symbols by value, rather than by name.
>
>\kundefonly\e - List only undefined symbols.
>
>\kfiles\e - Enter additional options (if desired) and the object module
>            names you want the symbols from. Example : lstr -g \s-h obj1 obj2
>
>\kexecute\e - Execute the command line.
>
		msg (^Press keys for options : %%);
		f1;globlonly;
			cmd (-g ), back;
		f2;sec. len;
			cmd (-s ), back;
		f3;num. sort;
			cmd (-n ), back;
		f4;undefonly;
			cmd (-u ), back;
		f5;files;
		{
>
>\kF1-F5\e - Previously selected files.
>
			msg (^Enter additional options and files name\(s\) : %P), back (2);
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd (^ls), exec, return;
			f7;manual; man (lstr);
			f8;done; break (2);
		};
		f6;execute;
			exec, break;
		f7;manual; man (lstr);
		f8;done; msg (^), cmd (^), break;
	};
	f6;libgen;
	{
>
>\kcreatenew\e - Create a new object module library.
>
>\kreplace\e - Replace old modules in a library with new ones.
>
>\kdelete\e - Remove modules from a library.
>
>\kcmd. file\e - Use a libgen command file. Enter additional options after
>            the command file name. See manual for details.
>
>\koptions\e - Manually enter options from the keyboard.
>
		cmd (^libgen -v ),
		msg (^Press keys for options : %%);
		f1;createnew;
		{
			cmd (-n ),
			msg (^Enter new library name : %P),
			cmd (-i ),
			msg (^Enter module names : %P),
			cmd (-h "),
			msg (^Enter header name : %p),
			cmd ("),
			exec,
			break;
>
>\kF1-F5\e - Last parameters entered.
>
			f1;;hist;
			f2;;hist;
			f3;;hist;
			f4;;hist;
			f5;;hist;
			f6;listfiles;call,cmd(^ls),exec,return;
			f7;manual;man(libgen);
			f8;done;break (2);
		};
		f2;replace;
		{
			cmd (-o ),
			msg (^Enter old library name : %F),
			cmd (-n ),
			msg (^Enter new library name : %F),
			cmd (-r ),
			msg (^Enter names of replacement modules : %p),
			exec,
			break;
>
>\kF1-F5\e - Last parameters entered.
>
			f1;;hist;
			f2;;hist;
			f3;;hist;
			f4;;hist;
			f5;;hist;
			f6;listfiles;call,cmd(^ls),exec,return;
			f7;manual;man(libgen);
			f8;done;break (2);
		};
		f3;delete;
		{
			cmd (-o ),
			msg (^Enter old library name : %F),
			cmd (-n ),
			msg (^Enter new library name : %F),
			cmd (-d ),
			msg (^Enter names of modules to delete : %p),
			exec,
			break;
>
>\kF1-F5\e - Last parameters entered.
>
			f1;;hist;
			f2;;hist;
			f3;;hist;
			f4;;hist;
			f5;;hist;
			f6;listfiles;call,cmd(^ls),exec,return;
			f7;manual;man(libgen);
			f8;done;break (2);
		};
		f4;cmd. file;
		{
			cmd (-c ),
			msg (^Enter command file name : %P),
			exec,
			break;
>
>\kF1-F5\e - Last parameters entered.
>
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;listfiles; call, cmd( ^ls ), exec, return;
			f7;manual; man( libgen );
			f8;done;break (2);
		};
		f5;options;
		{
			msg (^Enter libgen options : %P),
			exec,
			break;
>
>\kF1-F6\e - Last parameters entered.
>
			f1;; hist;
			f2;; hist;
			f3;; hist;
			f4;; hist;
			f5;; hist;
			f6;; hist;
			f7;manual; man( libgen );
			f8;done;break (2);
		};
		f7;manual; man( libgen );
		f8;done;break;
	};
	f8;done;cmd, msg, break;
}
