ASM - GMAP assembly command.

Syntax:

ASM sourcefile[+sourcefile]* [option]*
**=filename        Entry=name
+Clear             Hstar=filename (.h)
(+|-)ListIng (-)   Library=filename
(+|-)ListOu (-)    LoaderMemory=number
(+|-)Gmac (+)      LowLoad=number
(+|-)Load (+)      Map=filename
(+|-)SysLib (+)    Object=filename
(+|-)Oldalt (-)    Name=name
(+|-)Setup (-)     ProgramMem=number
+Zdebug            Update=filename
Alters=filename    StrangerOpts=name[,name]*
CompilerMemory=number   USe=name[,name]*
SaveFile=filename  ComDeck=filename

Examples:

asm myfile +lstin +lstou
asm /src1+/src2 uplib=tlib +clear
asm sri/cdk/tlga a=sri/upd/tlga -load +oldalt

Options:

sourcefile
is a pathname, or set of pathnames separated by plus signs.
Alters=filename
takes the named file as an alter file. ASM copies the file into a temporary file and converts it to fixed format BCD. For a description of ALTER cards, see the control cards manual.
+Clear
clears/initializes the random library.
ComDeck=filename
writes the K* compressed source deck to the file "filename".
CompilerMemory=number
sets the compiler memory size to "number" K words. The default size is 27K words.
Entry=name
specifies that the given SYMDEF name (primary or secondary) is the entry point of the program.
Hstar=filename
specifies the name of the hstar file into which the loader should write the loaded program. If you do not specify this option, the file name defaults to ".h".
Library=filename
specifies the file name of a random library to be searched for subroutines. Libraries are searched in the order of Library= options on the command line.
+ListIng
turns on the LSTIN option, which lists all input lines. This is forced on by the +Oldalt option.
+LstOu
turns on the LSTOU option. This is forced on by the +Oldalt and +ListIng options.
LoaderMemory=number
sets the loader memory size to "number" K words. The default size is 7K words.
LowLoad=number
generates a $LOWLOAD <number> statement to replace the default LOWLOAD 36 loader command.
Map=filename
writes the load map into the file "filename". This turns on the loader's MAP option.
-Gmac
does not load the GCOS system macros. This corresponds to the NGMAC option in batch.
-Load
does not attempt to make a load module. If you specify this option, ASM does not call the loader.
-SysLib
does not reference the system libraries in GELOAD.
+Oldalt
invokes fancy printing of alters, with old alter number and new alter number. +Oldalt automatically invokes +ListIng and +LstOu. This option is the same as the batch OPTZ option.
Object=filename
writes the C* object deck to the file "filename".
Name=name
specifies the name to be used for the SAVE option on the $OPTION card. The default name is "object".
ProgramMem=number
sets the program memory size to "number" K words. The default size is 16K words.
Update=filename
calls Ranedit to edit the object deck into the random library "filename".
SaveFile=filename
specifies a file to be used by GMAP with the SAVM and SAVST pseudo-ops, for saving symbol tables or macro sets.
+Setup
loads the initialization routine ".SETU.". If you do not specify this option, ASM gives the NOSETU option to the loader.
StrangerOpts=name[,name]*
supplies a list of "stranger options", such as NEISF, separated by commas.
USe=name[,name]*
forces the named routines to be loaded. Each USe= option generates a $USE control card for the loader.
+Zdebug
is intended only for the use of the developers maintaining ASM. At present, +Zdebug returns to the user when done, without closing any files, but this behavior may change without notice.
**=filename
specifies a random system loadable file containing a test version of the GMAP assembler.

Description:

ASM provides a way to invoke the batch GMAP assembler from TSS, via DRL TASK.

Since TSS GMAP source files are usually ASCII, ASM usually copies its source input to another file, converting to BCD as it goes. ASCII tab characters found in text are expanded during the copy according to GMAP conventions. However, if there is only one source file and if its media code is less than or equal to 2, the file is not copied; instead, it is passed to GMAP as is, with no checking for embedded control cards. This saves a lot of overhead if you are assembling a compressed source deck (comdk).

The source file name may be a single file name or a set of file names separated by plus signs.

ASM supports source file selection by recognizing CONVERT's "$$select" directives or GEIN's "$select" cards in the GMAP source. ASM temporarily diverts the input stream so it comes from the file named on the card. Such diversions may be nested to a depth of eight.

Alternate tab charcters can be specified by using CONVERT's "$$tab" directive. Only one alternate tab character may be specified, and any given tab stops are ignored.

The default mode of operation is to compile the source file, generate a B* file, load the B*, and suppress execution. ASM cannot initiate execution of the load module; to execute the module, use the GO command.

If you specify the Update=, SaveFile= or Object= option, ASM doesn't call the loader unless you also specify a loader-specific option like Hstar=.

When using ASM to maintain library routines, you normally use the Update=file option to edit the routine into a library. For example,

asm b/4/src/blib/getvec.g u=b/blib

assembles the GMAP source for GETVEC, then edits it into the main B library, either replacing the previous version or else appending it to the end of the library.

ASM always leaves the printer output file "fc*p*" in the AFT, in case you want to look at it. Any GMAP errors appear once in the file. FC*P* is a multi-file file, with GMAP, Ranedit and loader reports one after the other separated by logical end-of-file marks. You can use the P command to inspect these reports -- see "expl p".

The default R* file generated for the loader looks like this:

$    LOWLOAD    36
$    OPTION     NOMAP,NOGO,NOSETU,SAVE/OBJECT
$    SOURCE
$    EXECUTE

Files Used:

fc*a*, fc**a, fc*b*, fc*d*, fc*j*, fc*p*, fc*g*, fc**1 - for GMAP. fc*sc, fc*cz - for Ranedit. fc*r*, l*, *l - for the loader.

cmdlib/etc/qstar
contains the Ranedit program (which masquerades as GELOAD so it comes in when the loader is GECALLed), and a version of the GMAP assembler which knows about GECALLing RANEDIT in a DRL TASK, and which accepts "_" as a legal character in a symbol.

Copyright © 1996, Thinkage Ltd.