DOB is an object module disassembler, which will create a MACRO-11 source file from any object module. It will operate on either standard object modules, or object module libraries. The output from DOB can be reassembled directly. The only errors that should be generated will be 'Z' type errors. The resultant object module should be identical to the original object module, if the original object module was generated by MACRO-11. The command syntax is as follows: DOB> output/sw,temp=input/sw *CONCATENATION If the input file is a concatenated object module, only the first module is disassembled. The program could easily be modified to disassemble all modules, but since MACRO-11 doesn't do stacked assembles, the resultant source file would have to be broken up. *DEFAULTS The output filename must be specified. The output extension defaults to .MAC. The input file must also be specified, the extension defaulting to .OBJ. The temp file defaults to SY:TEMPnn.TMP where nn is the current job number. SY: is the default disk for all files. *LABELS Labels take on one of three forms. If the location is defined as a global symbol, the global symbol name is used. When defining such a symbol, a check is made to see if more than one symbol is defined for the same location. If there is, each global symbol is written to the output file on a seperate line, followed by a colon. Only the last symbol is actually used on the line with the disassembled code. If the location is not defined as a global symbol, the symbol name takes on one of two forms. If there are less than 14 psects in the object module, the symbol name consists of an alphabetic character, followed by five octal digits. The octal digits consist of the low 5 octal digits of the address. The character is generated by using 'A' and 'B' for the first psect, 'C' and 'D' for the second, and so forth. The lower letter is used for addresses in the range 0-77777, and the higher for addresses in the range '100000-177777'. If there are more than 13 psects, the symbol name is generated by using a two character psect identifier, followed by four hex digits indicat- ing the address. The psect identifier is generated by taking the psect number (0-255) and breaking it into two parts by dividing by ten. The result of the division is used to generate the first character (0=A,1=B,...) and the remainder is used for the second (0=0,1=1,...). *SWITCHES There are currently four valid switches for the input filespec: "/LB", "/EI", "/FI", and "/FP". The "/LB" switch indicates that the input file is an object library. The switch value is from 1 to 6 RADIX-50 characters indicating the name of the module to be disassembled. An example of this is "DOB> TI:= [1,1]SYSLIB/LB:.GET". The default extension for the input file is either ".OBJ" or ".OLB", depending on whether or not there is a "/LB" switch. The remaining input filespec switches indicate which optional instruction sets to use. The default is to use them all. "/-EI" indicates that EIS instructions are not really instructions and should be disassembled as ".WORD xxxxx". "/-FI" indicates that FIS instructions are not really instructions. "/-FP" indicates that FPP instructions are not really instructions. There are new input file switches: /RT, /EP. "/RT" is used to specify that the library to be searched is an RT11 library. It can be used in place of the "/LB" switch, or in conjunction with the "/LB" switch, and the module name can be appended to either the "/LB" (as shown above) or the "/RT" switch. "/EP" says that the module name specified with the "/LB" or "/RT" switches is actually a global symbol and not a module name. There are two valid switches for the output filespec: "/AS" and "/RA". These switches indicate what additional formats to dump the code, other than instruction. "/AS" indicates that the code should be dumped in ASCII. "/RA" indicates that the code should be dumped in RAD50. If either of these options is selected, the values of the instruction is dumped in the specified format as comments. There is one switch valid for both the input file and output file side. That is "/ID", which causes DOB to print a version number. *TEMP_FILE The temp file is used for internal information, and usually doesn't need to be specified. The default filespec is "SY:TEMPnn.TMP" where nn is the current job number. This file is deleted at logout. The only reason a filespec would ever be given for this would be to cause this file to go to a different disk than the default, since this could be a rather large file. This file contains 16 blocks for each psect in the object module.