Anonymous avatar Anonymous committed ce1ab35

This tool edits DOS executables at the low level. It should be extended to support ELF or a.out too.
and possibly portable executables and/or linear executables. It's a good educational tool about
how binaries work. This code seems to be missing a key class; BinHeaders::TEXEFile

Comments (0)

Files changed (24)

Binary file added.

Binary file added.

+ExeTool
+-------
+MS-DOS 2.0 EXE Modification Tool Version 0.01
+Copyright 1998 Overlord David Duncan Ross Palmer, Daybo Logic.
+
+Edits the MS-DOS .EXE header of a DOS program or the header
+of a stub for a 16-bit Windows NE/32-bit Win32 PE header.
+
+Here is what you can do with this tool:
+
+a) Change the expected address of a relocation table
+----------------------------------------------------
+This changes the address where the relocation table is expected to be,
+changing this after the linker has created the finished executable
+will probally crash the program on execution if the relocation table
+contains valid entries which the code attempts to dereference.
+	It is not likely a valid situation will arise in which you
+must manually modify the address of this table.
+
+b) Change the size of the header record
+---------------------------------------
+This changes the length DOS expects the header to be, this means all
+the fields plus the length of the relocation table.  Just like the
+last option changing this value is a bit dodgey, decrementing the
+value will truncate the relocation table and could corrupt addressing
+on execution.  Incrementing the value usually is OK, except if the
+program attempts to enumerate the relocation count by using this
+and read all the addresses.  Perhaps the program will try to read
+this value to grab the start of it's code.  All sorts of situations
+could develop, so I can't gaurentee that program won't crash
+somewhere along the line.
+
+c) Change the minimum number of extra paragraphs required
+---------------------------------------------------------
+The minimum size specifies the smallest ammount of memory needed
+to execute the program, if this memory is not available at execution
+the message 'Program too big to fit in memory' is displayed and
+execution does not take place.  Changing this value should only be
+done by the compiler or someone who just can't get enough base RAM
+free and wants to cheat as a last resort (as if the value was
+calculated well by the compiler and reduction will cause the run-time
+library not to allocate at run-time).  Apart from the desparate
+reason above this value can't be changed for any real reason.
+
+d) Change the maximum number of extra paragraphs required
+---------------------------------------------------------
+The maximum size specifies the ammount of memory that the program
+should be able to allocate once it has been loaded into memory,
+most compilers just set this value to 0xFFFF so they can allocate
+as much as possible.  If a programmer sets this value to lower
+than the maximum ever required in the program and attempts to allocate
+over this value he will not be able to allocate this dynamic mem.
+and in the case of C the message 'Abnormal program termination' or
+something will be displayed and the program will abort abnormally
+not cleaning up any temp. files or releasing file handles (a bad
+mess).
+
+NOTE:  For the above two fields remember that one paragraph is
+equivilant to 16 bytes or a 128bit value (two QWORDS).
+
+So calculate the number of paragraphs from the number of bytes you
+wish to be allocated with this simple formula:
+PARAS = NumBytes / 16
+
+e) Change the file load CRC checksum
+------------------------------------
+This value does not seem to ever be used by DOS, it is one of these
+two states however:
+
+0x0000 - Linker cound not be bother to calculate this number (ignore)
+NOT 0x0000 - This number must be considered the checksum of the
+header (from the file base to the length specified in the
+size of header record field).  I can't see the use unless
+the program decided to verify that the value with the checksum to
+see if it has become corrupted.  I'm sorry that most linkers
+don't bother with this, if it's just a stub you could link it
+with the old Microsoft LINK program, that did the job.  I would
+not be difficult to calculate the checksum by yourself though
+using the size of header field.  If you aren't a programmer
+who can do this, well you shouldn't be using this program in the
+first place I suppose because you might cause havoc as this is
+a dangerous program (YOU HAVE BEEN WARNED).
+
+There is no reason why you might want to change a correct checksum,
+only enter one if has been ommited, you can't do any damage
+by changing this field as far as system execution is concerned,
+I have never encountered a program that verifies it's own header
+checksum, it is however technically possible, so you should
+bear that in mind when changing a valid-looking number (anything but
+zero).
+
+f) Change overlay number
+------------------------
+I don't know for sure what this does, but here's my best guess,
+I think it might be reserved for an overlay manager that the program
+might implement so it knows how many overlay segments there are.
+If this is the case changing this value would seriously mess-up
+the overlay manager and if you are running in real mode the
+program would most likely crash.
+
+g) Change the initial stack area
+--------------------------------
+This is the first option you will encounter which will ask you
+for two different bits of information, the stack area consists
+of the SS:SP (Stack Segment:Stack Pointer), changing the stack
+pointer forward slightly will probally not do much nasty as
+the stack is usually treated with PUSH & POP and pointer
+arithmetic with SP.  If the stack is unusually small you
+might cause the program to cause a stack overflow assuming it
+has logic to detect such an error, if it doesn't you might be OK
+in real mode but the program will be terminated in protected mode.
+In real mode you might however erase an essential driver or later
+code in your program if the stack segment came first.
+
+Stack pointer decrementation will result in code being corrupted
+at the first PUSH operation or possibly a general protection fault.
+
+Changing the segment will almost certainly crash the program.
+
+There is not really any reason to do this, and doing so without
+extream care and a knowledge of the operation of the program
+internally will crash it.  It's not reconmended even for
+experts.
+
+h) Change the program entry point
+---------------------------------
+Changing the entry point into the executable file is the most
+danagerous thing you can do to an executable file with this program.
+The notation for this is CS:IP (Code Segment:Instruction Ponter).
+When the program is executed the CS:IP register pair will
+be initialized to this value, it indicates the address of the
+first instruction that the processor will execute.  I'll just
+illustrate some things that could go wrong.  OK lets assume the
+programmer increments this value by 1, now the first
+instruction in the segment (he changed the pointer) is often
+a jump past a copyright notice to the code or something, a near
+jump in 16-bit code is 3 bytes long, he passes the high-byte of the
+address and goes to the low-byte of the address which is then
+interpreted as an instruction, while the actual instruction opcode
+byte is then used as an operand to the opcode, pretty unexpected
+results, what it this new instruction, it's not likely the system
+will make any sense of it and the program will have executed an
+invalid instruction, be terminated or crash.
+
+Even if the processor made sense of the instruction, because it
+probally did not jump onto the start of an instruction
+that applied it will soon die, the bad start it got will mess
+up it's operation, it could jump to a POP missing a PUSH, and then
+the stack has become corrupted.
+
+Here's a good one, write down the original CS:IP and set it to this
+value: F000:FFF0.  This is the start of the BIOS boot routine,
+then the program is executed the PC will simply reboot.  If you
+are running Windoes 4.0 though this will terminate the app. as
+only Windows has the authority to reboot.
+
+
+General notes: Program is standalone and only the executable file is
+needed to run it.  I would appreciate it if copies are copied with
+this text file though, otherwise the reciever may use the utility
+without being warned and have no facts at their disposal.
+
+Remember this program is designed for nerds only, if you do not
+understand any of the above text you should not use the tool.
+
+This program has been designed for MS-DOS.
+
+
+Getting started
+---------------
+From MS-DOS, type EXETOOL, read the options at your disposal, choose
+option 1 and type the name of the file to open, you cannot open
+a file that does not contain an MS-DOS 2 header (determined by
+the signature at the file base 0x5a4d)  or type EXETOOL <file>
+to avoid choosing option 1 for speed.
+
+From Windows 3.x (16-bit Windows like 3.0, 3.1, 3.11): Drag a
+compatible file onto the executable file from within the File
+Manager, File Manager will confirm your action, click on YES
+and EXETOOL will be editing the file you dragged onto it.
+
+From Windows 4.x (32-bit Windows like 95/98/NT 3.51/NT 4/NT 5 etc.)
+: Drag a compatible file onto the executable file that is shown
+in the directory where EXETOOL is contained, the system is integrated
+better than Windows 3.1, it's a copy of Explorer that running but
+you don't have to know that, you will not be prompted and EXETOOL
+will start in a windowed DOS box (by default), it's quite easy to
+edit the file from here.
+
+If you are worried that you aren't editing the right file, the name
+is displayed at the top of each menu that is displayed in EXETOOL.
+
+Protection against mistakes
+---------------------------
+EXETOOL is a powerful tool for the small number of purposes where
+it's use is useful, it puts all responsibility with the programmer
+(the user), the only protection that is in this program is the
+refusal to edit anything that does not contain an MS-DOS 2 header.
+Filese that can be edited are MS-DOS executable files, Windows new
+executable stubs (EXE/DLL) Windows protable executable stubs (EXE/DLL
+etc.) and the linear executable stubs (mainly in some DOS extender
+apps and VXDs).  The executable images in .COM file are not supported
+as they have no calculatable memory size and no header.
+
+Overlord David Duncan Ross Palmer
+---------------------------------

Binary file added.

+#ifndef __INC_EXETOOL_H
+#define __INC_EXETOOL_H
+
+#include "Headers\BinHead.h" // Binary headers (misc. structures from all types of files */
+//------------------------------------------------------------------------------
+extern int DisplayMenu(void); // Returns the menu choice
+extern void DisplayTitle(void);
+extern BinHeaders::TEXEFile* EXEFile;
+void GlobalClassInitializer(void);
+void GlobalClassDestroyer(void);
+//------------------------------------------------------------------------------
+#endif /* __INC_EXETOOL_H */

Binary file added.

+[Version]
+
+; Version number is recognized as two integer numbers (Major.Minor)
+; Increase to clone changes for project configuration files
+VersionNumber=2.60
+
+[System]
+
+; Where Together add-on's help is located.
+; (Make sure it is the same directory as in host.ini)
+; Tuned by Installer
+Helpfile=C:\BC5\help\together.hlp
+
+[Notations]
+
+; List of notations for Object Model Editor corresponds to the local menu commands
+Coad=1
+OMT=2
+Unified=3
+
+[View]
+
+
+; Format:
+;
+; MapXX=Type, Filter, Active, "FilterTitle", "Query", "Command", "Argument"[, "Notation"]
+;
+; Type ::=Class | Member | Attribute | Link | Operation
+; Filter ::=0 | 1
+;   determines whether view statement is included in Filter dialog
+; Active ::=0 | 1
+;   determines whether view is active
+; FilterTitle...
+;   is the title of corresponding Filter check
+; Query ::=...see table of queries...
+;   Query is one of the queries that are available for the Type
+;   The result of the Query can be true or false.
+;   To negate the query result, precede it by "!".
+; Command ::=...see table of commands...
+;   Command is a graphical-property command which is executed if the Query is true.
+;   This command accepts "Argument" as argument.
+; Argument ::=...see table of arguments...
+;   Additional argument for the Command.
+; Notation ::=Coad | OMT | Unified
+;   optional parameter determines the notation to which the view is applied.
+;   If ommited, the view is applied to any notation
+;
+; Note that view maps are not cumulative.
+; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+; Look for the word "message" later in this section and uncomment the appropriate lines
+; to get an example of user-defined link
+
+; ------------------------------------------------------------------------
+
+; Queries supported by Types:
+; ^^^^^^^
+
+; Query         Applied to:         What is?
+;               Class
+;                   Member
+;                       Attribute
+;                           Link
+;                               Operation
+;
+; Equal(Name)   x   x   x   x   x   true if the identifier matches Name
+; HasTag(Name)  x   x   x   x   x   true if the identifier has the tag Name in the comment
+; HasTagValue(Name,Value)   
+;               x   x   x   x   x   true if the identifier has the tag Name with the value Value
+; DeclSubString(s)
+;               x   x   x   x   x   true if declaration contains substring s
+; IsClass()     x                   true if class
+; IsStruct()    x                   true if structure
+; IsTemplate()  x                   true if the class or the member is a template class
+; IsNested()    x                   true if the class is nested into another class
+; IsExport()    x                   true if the class has the export keyword
+; IsObject()    x                   true if the class is an object
+; IsAbstract()  x                   true if the class is pure virtual
+; IsImported()  x                   true if the class is imported (is not defined in diagram's branch)
+; IsPublic()        x   x   x   x   true if the member is public
+; IsPrivate()       x   x   x   x   true if the member is private
+; IsProtected()     x   x   x   x   true if the member is protected
+; IsStatic()        x   x   x   x   true if the member is static
+; IsConst()         x   x   x   x   true if the member is const
+; IsVolatile()      x   x   x   x   true if the member is volatile
+; IsAttribute()     x   x   x   x   true if the member is an  attribute
+; IsOperation()     x   x   x   x   true if the member is an operation
+; IsLink()          x   x   x   x   true if the member is a link
+; IsLinkType(Type)  x   x   x   x   true if the member is a link of the specified type
+; IsLinkCategory(Type)
+;                   x   x   x   x   true if the member is a link of the specified category
+; IsPureLink()      x   x   x   x   true if the member is a pure link (link-as-comment)
+; IsRegister()          x           true if the attribute has the register keyword
+; IsInline()                    x   true if the operation is inline
+; IsConstructorOrDestructor()
+;                               x   true if the operation is a constructor or a destructor
+; IsConstructor()               x   true if the operation is a constructor
+; IsDestructor()                x   true if the operation is a destructor
+; IsOperator()                  x   true if the operation is an operator
+; IsVirtual()                   x   true if the operation is virtual
+; IsPureVirtual()               x   true if the operation is pure virtual
+; IsOverloaded()                x   true if the operation is overloaded
+; IsInitiator()                 x   true if the operation is an initiator of a scenario
+; ------------------------------------------------------------------------
+
+; Commands supported by OME
+; ^^^^^^^^
+; (Optional command argument is written to the 8th parameter)
+
+; Command            Argument        Comment
+;
+; Orthogonal         -               Makes link "orthogonal" (as in Coad notation)
+; Vertical           -               Makes link "vertical" (as inheritance link)
+; Icon               IconArg         Inserts icon to a link
+; Role               RoleArg         Inserts role to a link
+; Color              ColorSpec       Changes the foreground color
+; Background         ColorSpec       Changes the background color
+; LineStyle          LineStyleArg    Changes the line style
+; Width              Width           Changes the width of line
+; FontStyle          FontStyleArg    Changes the font style
+; Font               FontSpec        Changes the font
+; Hilite             -               Displays the element as highlighted
+; Hide               -               Hides the diagram element
+; NodeShape          ShapeArg        Defines the shape of node (usually class)
+; RoleLabels         CardArg         Inserts Role labels to a link
+; Qualifiers         CardArg         Inserts Qualifier labels within rectangles at link edges
+; Prefix             symbol          Prefixes the member name with given symbol
+; PropertyInBraces   TagName         Insert label "TagName" in { } below the class name
+; PropertyIndented   TagName         Insert label "TagName" indented and in italic below the class name
+; PropertyInBracesValue
+;                    TagName         Insert label "TagName=Value" in { } below the class name
+; PropertyIndentedValue
+;                    TagName         Insert label "TagName=Value" indented and in italic below the class name
+; CardinalityDashed  CardArg         Inserts Coad-style cardinality using CardArg
+; CardinalityAsIcons CardArg         Inserts OMT-style cardinality using CardArg
+; CardinalityDotsReverse
+;                    CardArg         Inserts Unified-style cardinality using CardArg
+; ------------------------------------------------------------------------
+
+; Many commands: RoleLabels, Cardinality*, Qualifiers, Prop* specially process its argument.
+; If argument is identifier it extract the value of corresponding tag.
+; Otherwise, it accepts the argument as directly passed value.
+; For the commands effective on links:
+;   Given one of 2 ways value is separeted onto 2 parts by slash sign ('/').
+;   Each part is the string label to place at one of 2 edges of the link.
+;   The place and the order is determined by the command:
+;   Cardinality* : above link line.
+;   RoleLabels:    below link line
+;   Qualifiers:    in the rectangle squeezed to a class.
+
+;
+; Argument formats accepted by Commands
+; ^^^^^^^^
+
+; Argument      Format                              Examples
+
+; FontSpec      % FontName - Size - Style           "%times-12-i". May be "default"
+; FontStyleArg  [b][i][u]                           "i" (italic),
+;                                                   "u" (underline),
+;                                                   "b" (bold),
+;                                                   "ub" (underline bold)
+; ColorSpec     [rXXX][gXXX][bXXX]
+;               where XXX is in the range 0-255     "r255", "r99g99"
+; Width         Number in the range 1-99            "3"
+; LineStyleArg  solid | dash | dashdot | dot        "dot"
+; IconArg       {S|C|D}{O|A|U}#<StandardIconName>   "CO#Triangle" (for Aggregation)
+; RoleArg       {S|D}[G]#<StandardIconName>         "DBG#HalfCircle" (for Inheritance)
+; CardArg   the name of cardinality label tag   "Cardinalities"
+;               or directly passed string           "0..1/n"
+;       (in special format)
+; ------------------------------------------------------------------------
+; ShapeArg is the parameter for NodeShape command. It can be:
+; ^^^^^^^^
+; DefaultType
+; Note
+; RoundRectangle
+; RoundRectangleDoubleBorder
+; Rectangle
+; ShadowedRectangle
+; RectangleWithoutOperations
+; RectangleImpacted
+; StructuredCloud
+; ShadowedRectangleImpacted
+
+; ------------------------------------------------------------------------
+; IconArg is the parameter for Icon command. It has the following format:
+; ^^^^^^^
+; {Source|Center|Destination}{Online|Aboveline|Underline}#<StandardIconName>
+;
+; Only first (capitalized) characters can be specified for icon position.
+
+; <StandardIconName> is a standard icon names from:
+; ^^^^^^^^^^^^^^^^^^
+;
+; Empty
+; Triangle
+; HalfCircle
+; Arrow
+; ThickArrow
+; HalfArrow
+; Circle
+; FilledCircle
+; Box
+; FilledBox
+; BackArrow
+; Timeout
+; Sync
+; Rhomb
+
+; RoleArg is the parameter for Role command. It has the following format:
+; ^^^^^^^
+; {Source|Destination}[Grouping]#<StandardIconName>
+;
+; Only first (capitalized) characters can be specified for icon position.
+
+; CardArg is the parameter for CardLabels command.
+; ^^^^^^^
+; It is the tag name from which cardinality labels will be constructed.
+; The format of the value of this tag should be:
+; "k..l/m..n", where k, l, m, n can be a digit, 'n', or 'm'
+; The contents of the tag value before the slash will be used for label
+; at the source node, and contents after the slash will be used for label
+; at the destination node.
+;========================================================================
+
+; ------------------------------------------------------------------------
+; highlighting...
+
+; ------------------------------------------------------------------------
+; Class
+; Default color for classes
+Map40D=Class, 0, 1, "", "IsClass()", "Color", "r0g0b0"
+
+; Background color for classes and structures
+Map40C=Class, 0, 1, "", "IsClass()", "Background", "r255g255b255"
+Map40S=Class, 0, 1, "", "IsStruct()", "Background", "r255g255b255"
+
+; Display user-defined properties
+MapProp0=Class, 0, 1, "", "HasTag (Property)", "PropertyInBracesValue", "Property", OMT
+MapProp1=Class, 0, 1, "", "HasTag (Property)", "PropertyIndentedValue", "Property", Unified
+
+; Display classnames in bold
+Map42=Class, 0, 1, "", "IsStruct()", "Font", "%Arial-11-b"
+Map43=Class, 0, 1, "", "IsClass ()", "Font", "%Arial-11-b"
+
+; Display member names in plain
+Map44=Attribute, 0, 1, "", "IsAttribute()", "Font", "%Arial-11-"
+Map45=Operation, 0, 1, "", "IsOperation ()", "Font", "%Arial-11-"
+
+; Display structures with green border:
+Map41g=Class, 0, 1, "", "IsStruct()", "Color", "g99"
+
+; ----------------------------------
+; Notation specific nodes
+
+MapCoad45=Class, 0, 1, "", "IsAbstract ()", "NodeShape", "RoundRectangle", Coad
+MapCoad46=Class, 0, 1, "", "!IsAbstract ()", "NodeShape", "RoundRectangleDoubleBorder", Coad
+MapCoad47=Class, 0, 1, "", "IsStruct ()", "NodeShape", "RoundRectangleDoubleBorder", Coad
+
+MapOMT47=Class, 0, 1, "", "IsClass()", "NodeShape", "Rectangle", OMT
+MapOMT48=Class, 0, 1, "", "HasTag (Object)", "NodeShape", "RectangleWithoutOperations", OMT
+
+MapUnified47=Class, 0, 1, "", "IsClass()", "NodeShape", "RectangleImpacted", Unified
+MapUnified48=Class, 0, 1, "", "HasTag (Object)", "NodeShape", "StructuredCloud", Unified
+MapUnified50=Class, 0, 1, "", "HasTag (Utility)", "NodeShape", "ShadowedRectangleImpacted", Unified
+
+; ------------------------------------------------------------------------
+; Members
+
+; Private attributes black, others dark cyan
+Map51A=Attribute, 0, 1, "", "!IsPrivate()", "Color", "r0g128b128"
+
+; Private operations black, others dark green
+Map51O=Operation, 0, 1, "", "!IsPrivate()", "Color", "r0g128b0"
+
+; Display const members bold
+Map52=Member, 0, 1, "", "IsConst()", "FontStyle", "b"
+
+; Display labels of virtual operations with italic font:
+Map53=Operation, 0, 1, "", "IsVirtual()", "FontStyle", "i"
+
+; Display operations with scenario underlined
+Map55=Operation, 0, 1, "", "IsInitiator()", "FontStyle", "u"
+
+; Display visibility symbols of members in Coad, OMT and Unified
+;X Map56=Member, 0, 1, "", "IsPublic ()", "Prefix", "+", Coad
+;X Map57=Member, 0, 1, "", "IsPublic ()", "Prefix", "+", OMT
+Map58=Member, 0, 1, "", "IsPublic ()", "Prefix", "+", Unified
+
+;X Map59=Member, 0, 1, "", "IsProtected ()", "Prefix", "#", Coad
+;X Map60=Member, 0, 1, "", "IsProtected ()", "Prefix", "#", OMT
+Map61=Member, 0, 1, "", "IsProtected ()", "Prefix", "#", Unified
+
+;X Map62=Member, 0, 1, "", "IsPrivate ()", "Prefix", "-", Coad
+;X Map63=Member, 0, 1, "", "IsPrivate ()", "Prefix", "-", OMT
+Map64=Member, 0, 1, "", "IsPrivate ()", "Prefix", "-", Unified
+
+; Display leading '$' for static members in OMT and Unified
+;X Map65=Member, 0, 1, "", "IsStatic ()", "Prefix", "$", OMT
+Map66=Member, 0, 1, "", "IsStatic ()", "Prefix", "$", Unified
+
+; ------------------------------------------------------------------------
+; Links
+; ------------------------------------------------------------------------
+
+; Display association links in blue:
+MapLnkCol01=Link, 0, 1, "", "IsLinkCategory (Association)", "Color", "r0g0b255"
+
+; Display aggregation links in dark blue:
+MapLnkCol02=Link, 0, 1, "", "IsLinkCategory (Aggregation)", "Color", "r0g0b130"
+
+; Display inheritance links in dark magenta:
+MapLnkCol03=Link, 0, 1, "", "IsLinkType (Inheritance)", "Color", "r128g0b128"
+
+; ------------------------------------------------------------------------
+; General
+
+; MapLnk00=Link, 0, 1, "", "IsLink ()", "Font", "default"
+MapLnk01=Link, 0, 1, "", "IsLink ()", "Width", "2"
+MapLnk02=Link, 0, 1, "", "IsLink ()", "Orthogonal", ""
+
+MapLnk03=Link, 0, 1, "", "HasTag (Qualifiers)", "Qualifiers", "Qualifiers", OMT
+MapLnk04=Link, 0, 1, "", "HasTag (Qualifiers)", "Qualifiers", "Qualifiers", Unified
+MapLnk05=Link, 0, 1, "", "HasTag (Roles)", "RoleLabels", "Roles", Coad
+MapLnk06=Link, 0, 1, "", "HasTag (Roles)", "RoleLabels", "Roles", OMT
+MapLnk07=Link, 0, 1, "", "HasTag (Roles)", "RoleLabels", "Roles", Unified
+
+; ------------------------------------------------------------------------
+; Blueprint specific
+; Do not change the order of groups of commands
+
+; default pointer association cardinality: 0..1
+MapAsoPtr04=Link, 0, 1, "", "IsLinkType (AssociationPtr)", "CardinalityDashed", "0..1/", Coad
+MapAsoPtr03=Link, 0, 1, "", "IsLinkType (AssociationPtr)", "CardinalityAsIcons", "0..1/", OMT
+MapAsoPtr05=Link, 0, 1, "", "IsLinkType (AssociationPtr)", "CardinalityDotsReverse", "0..1/", Unified
+
+; default template association cardinality: 0..n
+MapAsoMem04=Link, 0, 1, "", "IsLinkType (AssociationTmpl)", "CardinalityDashed", "0..n/", Coad
+MapAsoMem03=Link, 0, 1, "", "IsLinkType (AssociationTmpl)", "CardinalityAsIcons", "0..n/", OMT
+MapAsoMem05=Link, 0, 1, "", "IsLinkType (AssociationTmpl)", "CardinalityDotsReverse", "0..n/", Unified
+
+
+; default template aggregation cardinality: 0..n
+MapAggMem04=Link, 0, 1, "", "IsLinkType (AggregationTmpl)", "CardinalityDashed", "1..n/", Coad
+MapAggMem03=Link, 0, 1, "", "IsLinkType (AggregationTmpl)", "CardinalityAsIcons", "1..n/", OMT
+MapAggMem05=Link, 0, 1, "", "IsLinkType (AggregationTmpl)", "CardinalityDotsReverse", "1..n/", Unified
+
+
+; Display cardinality labels on links, that has tag "Cardinalities". Take a label from the tag value.
+MapCardCoad=Link, 0, 1, "", "HasTag (Cardinalities)", "CardinalityDashed", "Cardinalities", Coad
+MapCardOMT=Link, 0, 1, "", "HasTag (Cardinalities)", "CardinalityAsIcons", "Cardinalities", OMT
+MapCardUnified=Link, 0, 1, "", "HasTag (Cardinalities)", "CardinalityDotsReverse", "Cardinalities", Unified
+
+; Display Inheritance with Vertical lines, and
+; HalfCircle icon below line near Destination class:
+MapInh01=Link, 0, 1, "", "IsLinkType (Inheritance)", "Vertical", ""
+MapInh02=Link, 0, 1, "", "IsLinkType (Inheritance)", "Role", "DBG#HalfCircle", Coad
+MapInh04=Link, 0, 1, "", "IsLinkType (Inheritance)", "Role", "DBG#Triangle", OMT
+MapInh05=Link, 0, 1, "", "IsLinkType (Inheritance)", "Role", "DBG#", Unified
+MapInh06=Link, 0, 1, "", "IsLinkType (Inheritance)", "Icon", "DO#ThickArrow", Unified
+
+
+; display aggregation links with notation specific icons...
+; Triangle icon On line in the Center between classes
+MapAgg00=Link, 0, 1, "", "IsLinkCategory (Aggregation)", "Vertical", ""
+MapAgg01=Link, 0, 1, "", "IsLinkCategory (Aggregation)", "Icon", "CO#Triangle", Coad
+MapAgg02=Link, 0, 1, "", "IsLinkCategory (Aggregation)", "Icon", "SO#Rhomb", OMT
+MapAgg04=Link, 0, 1, "", "IsLinkCategory (Aggregation)", "Icon", "SO#Rhomb", Unified
+
+; Display message link as dotted thin line with an arrow at the destination
+;MapMsg00=Link, 0, 1, "", "IsLinkCategory (Message)", "Color", "r0g128b0"
+;MapMsg01=Link, 0, 1, "", "IsLinkCategory (Message)", "Width", "1"
+;MapMsg02=Link, 0, 1, "", "IsLinkCategory (Message)", "LineStyle", "dot"
+;MapMsg03=Link, 0, 1, "", "IsLinkCategory (Message)", "Icon", "DO#Arrow"
+
+; ------------------------------------------------------------------------
+; Filters shown in the Filter dialog
+
+; ------------------------------------------------------------------------
+; Show/Hide all attributes:
+MapFilter00=Attribute, 1, 0, "All attributes", "IsAttribute ()", "Hide", ""
+
+; Show/Hide all operations:
+MapFilter01=Operation, 1, 0, "All operations", "IsOperation ()", "Hide", ""
+
+; Show/Hide private members:
+MapFilter02=Attribute, 1, 0, "Private attributes", "IsPrivate()", "Hide", ""
+MapFilter03=Operation, 1, 0, "Private operations", "IsPrivate()", "Hide", ""
+
+; Show/Hide constructors and destructors:
+MapFilter20=Operation, 1, 0, "Constructors and destructors", "IsConstructorOrDestructor()", "Hide", ""
+
+; Show/Hide non-virtual operations:
+MapFilter21=Operation, 1, 0, "Non-virtual operations", "!IsVirtual()", "Hide", ""
+
+; Show/Hide static operations:
+MapFilter22=Operation, 1, 0, "Static operations", "IsStatic()", "Hide", ""
+
+; Show/Hide Aggregation links:
+MapFilter31=Link, 1, 0, "Aggregation links", "IsLinkCategory (Aggregation)", "Hide", ""
+
+; Show/Hide Association links:
+MapFilter33=Link, 1, 0, "Association links", "IsLinkCategory (Association)", "Hide", ""
+
+; Show/Hide Inheritances:
+MapFilter34=Link, 1, 0, "Inheritances", "IsLinkType (Inheritance)", "Hide", ""
+
+; Show/Hide imported classes:
+MapFilter35=Class, 1, 0, "Imported classes", "IsImported ()", "Hide", ""
+
+[Blueprints]
+
+; Format:
+;
+; BlueprintXX=Type, "MenuName", "DeclarationTemplate", "DefinitionTemplate", LinkKind, LinkCategory, "IconId", "IconLabel", "ToolTip"
+;
+; Type ::=Class | Attribute | Operation
+;   determines the type of model object
+; MenuName ...
+;   ...is displayed in Code Editor's dialogs in the field 'Blueprint'
+; DeclarationTemplate ...
+;   ...is used for generating the declaration source code of the model object
+; DefinitionTemplate ...
+;   ...is used for generating the definition source code of the model object
+;   about templates see below
+; LinkKind ::=<user-defined-identifier>
+;   determines the kind of link corresponding to the model object (attribute)
+;   LinkKind is in correspondence to the attribute due to Parser recognizing.
+; LinkCategory ::=Aggregation | Association | <user-defined-identifier>
+;   determines the category of link corresponding to the model object (attribute)
+;   LinkCategory is in correspondence to the attribute due to Parser recognizing.
+; Note: LinkKind and LinkType fields can be ommited.
+; IconId determines the icon established in the Icon tool bar for corresponding blueprint.
+;   ...is the name (without extension) of the file containing bitmap for icon
+;   The bitmaps for icons are stored in the directory <Installation>\BIN\ICONS\<Notation>
+;    where: <Installation> is the installation directory,
+;           <Notation> is one of the directory coad, omt, or unified.
+;   The bitmaps is taken from the directory in accordance to the notation of the diagram editor.
+;   Preinstalled icon file names have the mnemonic value:
+;   IconId ::=<Signature><ColorPallete>
+;     <ColorPallete> is the number from 0 to 5.
+;     <Signature> ::=<ObjectId> | <LinkId>
+;       <ObjectId> ::=C | B | A | O
+;       ... which means: Class, aBstract, Attribute, Operation
+;       <LinkId> ::=<LinkCategory><MultiPlicity>
+;       <LinkCategory> ::=I | S | G
+;       ... which means: Inheritance, aSsociation, aGgregation
+;       <MultiPlicity> ::=O | _ | Z | N
+;       ... which means: Optional (0..1), Only (1..1), Zero to N (0..n), maNy (1..n)
+; IconLabel
+;   ..is the string labelled the icon in the Icon ToolBar
+; ToolTip
+;   ...is the string shown in status bar when the mouse comes onto the toolbar-icon
+
+; Templates are the C-strings in quotes. They consist of constant text and Code-Editor variables.
+; ^^^^^^^^^
+; Variables         Expanded to
+; ^^^^^^^^^
+; %Name%            name of the object
+; %ClassName%       name of the class (usually used for members)
+; %Type%            type (for attributes and operations)
+; %Dst%             name of the destination class (for links)
+; %Dimension%       dimension (for attributes)
+; %Arguments%       arguments within '()' (for operations)
+; %PostArguments%   modifiers, or initialization list after ')' (for operations)
+; %Body%            body of operation
+; %FileMacro%       macro identifier=%ClassName%_<HeaderExtension> (for classes)
+; %filemacro%       macro identifier=tolower(%ClassName%_<HeaderExtension>)
+; %FILEMACRO%       macro identifier=toupper(%ClassName%_<HeaderExtension>)
+;                   where <HeaderExtension> is defined by DefaultHeaderExtension option in CodeEditor group.
+; %IncludeStm%      include statement #include "HeaderFileName" (for classes)
+; %ClassId%         unique class identifier (for classes)
+; %Comment%         design comment
+; %Declaration%     contents of Declaration field of the dialog quotably (for attributes & operations)
+; %Any%             <none>
+;
+; %Any% is a special variable for Parser to recognize links. It matches any C++ token.
+; It is not used in creative Code Editor blueprints
+;
+; Look for the word "message" later in this section and uncomment the appropriate lines
+; to get an example of user-defined link definition
+
+; ------------------------------------------------------------------------
+; Classes
+
+; Abstract class - the class with pure virtual operation
+
+Class00=Class, "Abstract", "#ifndef %FileMacro%\n#define %FileMacro%\n//-----------------------------------------------------------------\n//\n//-----------------------------------------------------------------\n\t%Comment%\nclass %ClassName%\n{\npublic:\n\tvirtual ~%ClassName%() = 0; \n};\n#endif\n", "%IncludeStm%\n\n/**# implementation %ClassName%:: id(%ClassId%) \n*/", "B0", "", "Abstract class - class with pure virtual operation"
+
+; Class
+
+Class01=Class, "Class",     "#ifndef %FileMacro%\n#define %FileMacro%\n//-----------------------------------------------------------------\n//\n//-----------------------------------------------------------------\n\t%Comment%\nclass %ClassName%\n{\npublic:\n};\n#endif\n", "%IncludeStm%\n\n/**# implementation %ClassName%:: id(%ClassId%) \n*/", "C0", "", "Class"
+
+; ------------------------------------------------------------------------
+; Members
+
+; Generic attribute
+
+Attribute00=Attribute, "Attribute", "%Comment%\n\t%Type% %Name%%Dimension%", "%Type% %ClassName%::%Name%%Dimension%", "A0", "", "Default attribute"
+
+; Generic operation
+
+Operation00=Operation, "Operation", "%Comment%\n\t%Type% %Name%%Arguments% %PostArguments%", "%Type% %ClassName%::%Name% %Arguments% %PostArguments%\n{\n%Body%\n}", "O0", "", "Default operation"
+
+; ------------------------------------------------------------------------
+; Attribute-as-Links, Associations
+; uncomment for additional associations
+
+; association 0..1
+; p=Attribute, "Association 0..1", "%Comment%\n\t%Dst% * %Name%", "",,, "SO0", "", "Association, 0 to 1, implemented as pointer to destination class"
+
+; association 1..1
+; po=Attribute, "Association 1..1", "/**#: [Cardinalities = \"1..1/\"]*/\n\t%Dst% * %Name%", "",,, "S_0", "", "Association, 1 to 1, implemented as annotated pointer to destination class"
+
+; association 0..n
+vp=Attribute, "Association 0..n", "%Comment%\n\tvector <%Dst% *> %Name%", "",,, "SZ0", "", "Association, 0 to n, implemented as vector of pointers"
+
+; association 1..n
+; vp1n=Attribute, "Association 1..n", "/**#: [Cardinalities = \"1..n/\"]*/\n\tvector <%Dst% *> %Name%", "",,, "SN0", "", "Association, 1 to n, implemented as annotated vector of pointers"
+
+; ------------------------------------------------------------------------
+; Attribute-as-Links, Aggregations
+; uncomment for additional aggregations
+
+; aggregation 0..1
+; v01=Attribute, "Aggregation 0..1", "/**#: [Cardinalities = \"0..1/\"]*/\n\tvector <%Dst%> %Name%", "",,, "GO0", "", "Aggregation, 0 to 1, implemented as annotated vector"
+
+; aggregation 1..1
+; v11=Attribute, "Aggregation 1..1", "/**#: [Cardinalities = \"1..1/\"]*/\n\tvector <%Dst%> %Name%", "",,, "G_0", "", "Aggregation, 1 to 1, implemented as annotated vector"
+
+; aggregation 0..n
+; v1n=Attribute, "Aggregation 0..n", "/**#: [Cardinalities = \"0..n/\"]*/\n\tvector <%Dst%> %Name%", "",,, "GZ0", "", "Aggregation, 0 to n, implemented as annotated vector"
+
+; aggregation 1..n
+v=Attribute, "Aggregation 1..n", "%Comment%\n\tvector <%Dst%> %Name%", "",,, "GN0", "", "Aggregation, 1 to n, implemented as vector"
+
+; ------------------------------------------------------------------------
+; Link-as-Comment (pure link):
+; uncomment for additional aggregations and associations
+
+;PureAggr=Attribute, "Pure aggregation", "/**# aggregation <%Dst%> %Name%*/", "", PureAggr,, "G_1", "", "Link-as-Comment (pure link): Aggregation"
+;PureAssoc=Attribute, "Pure association", "/**# association <%Dst%> %Name%*/", "", PureAssoc,, "S_1", "", "Link-as-Comment (pure link): Association"
+
+; Pure link: message
+;message=Attribute, "Pure message", "/**# message <%Dst%> %Name% */", "",,, "M2", "", "Message (pure link)"
+
+; ------------------------------------------------------------------------
+; Parser only
+
+; pointers to destination class -- parser only
+match_p=Attribute, "", "%Dst% * %Name%", "", AssociationPtr, Association
+
+; pointers as template argument -- parser only
+match_tp=Attribute, "", "%Any% <%Dst% *> %Name%", "", AssociationTmpl, Association
+
+; members as template argument -- parser only
+match_tm=Attribute, "", "%Any% <%Dst%> %Name%", "", AggregationTmpl, Aggregation
+
+[Tags]
+
+; Format:
+;
+; TagXX=Type, "TagName", "TagFormat"
+;
+; Type ::=Ident | Class | Member | Attribute | Operation
+;   determines to which Type of model object the tag may be applied
+;   Ident referred to any object, including Class, Attribute and Operation
+;   Member referred to Attribute and Operation
+; TagName is displayed in Code Editor dialogs as the title of tag,
+;   and is inserted as lvalue in design comment:
+;   /**#: [TagName=TagValue] */
+;   where symbols /, #, :, , [,=and ] is typed quotly
+;   and TagValue format is determined by TagFormat.
+; TagFormat ::=%s | %s<Length> | %sw | %sm | %b | %#<List> | %f | %m | %r
+;   where: <Length> is the integer number
+;          <List> ::=Ident1[,Ident2]...
+; ------------------------------------------------------------------------
+
+; TagFormat     Value                       Control element in dialog
+;
+; %s            C-string in quotes          Edit box: single line
+; %s<Length>    -"- at least <Length>       Edit box: validating length
+;               characters
+; %sw           One word in quotes          Edit box: validating for single word
+; %sm           C-string in quotes          Edit box + Edit button to invoke multiline editbox
+; %b            [TagName] for true          Check box
+;               <empty> for false
+; %#<List>      Identifier from List        Drop-down combobox
+; %f            File name in quotes         Edit box + Browse button to invoke File dialog
+;                                           Also, double-click opens the file
+; %m            "k..l/m..n"                 2 edit boxes, switching by press '/', validating format.
+;               k,l,m,n is a digit or 'n'
+; %r            "string1/string2"           2 edit boxes, switching by press '/'.
+;
+;========================================================================
+
+; Some tags are defined by notations and have corresponding statements in View group
+; ------------------------------------------------------------------------
+; Commenting any object
+
+; Alias name is displayed instead identifier
+Tag01=Ident, "Alias", "%s"
+
+; Description is free multi line comment
+Tag02=Ident, "Description", "%sm"
+
+; Note is displayed as label in rectangle (for classes)
+Tag03=Ident, "Note", "%sm"
+
+; Level of development phase
+Tag04=Ident, "Level","%#Analysis,Design,Implementation"
+
+; ------------------------------------------------------------------------
+; Commenting classes
+TagCl01=Class, "Stereotype", "%s"
+TagCl02=Class, "Utility", "%b"
+TagCl03=Class, "Object", "%b"
+TagCl14=Class, "Document", "%f"
+TagCl15=Class, "Property", "%s"
+
+; ------------------------------------------------------------------------
+; Commenting attributes, espesially used for links
+TagAt01=Attribute, "Label", "%s"
+
+; Cardinalities is the cardinality label
+TagAt02=Attribute, "Cardinalities", "%m"
+TagAt03=Attribute, "Roles", "%r"
+TagAt04=Attribute, "Qualifiers", "%r"
+
+; ------------------------------------------------------------------------
+; Commenting operations
+TagOp01=Operation, "Inputs", "%s"
+TagOp02=Operation, "Output", "%s"
+
+[ScenarioEditor]
+
+; DefaultFont ::=%fontName-fontSize-fontStyle
+;   fontName  ::=helvetica | courier | times
+;   fontStyle ::=[b][i][u]
+;   b - bold, i -italic, u - underline
+DefaultFont=%Arial-11-
+
+; if ConfirmCopy, user is asked to confirm copying
+ConfirmCopy=No
+
+; if ConfirmMove, user is asked to confirm moving
+ConfirmMove=No
+
+; if ConfirmDelete, user is asked to confirm deletion
+ConfirmDelete=No
+
+; if ConfirmHide, user is asked to confirm removing (hiding) from scenario
+ConfirmHide=Yes
+
+; if KeyDeclarationInStatusLine, the declaration of a focused operation
+; is displayed in status bar of the IDE
+KeyDeclarationInStatusLine=Yes
+
+; MemberDisplayType ::=None | Cpp | Unified
+;  None -       member type is not displayed
+;  Cpp  -       member type is displayed in C++ format: <Type> <Name>
+;  Unified -    member type is displayed in the Unified format: <Name>:<Type>
+;  (applied to operations only, of course)
+MemberDisplayType=None
+
+; Zoom ratio in % for printing
+PrintZoom=100
+
+; if ShowPrintGrid, the grid lines between print pages is displayed on the screen
+ShowPrintGrid=No
+
+[CodeEditor]
+
+; SourcePrologue defines the string inserted in the beginning of each Source file
+; when it is created.
+SourcePrologue="// -----------------\n#include <vector>  \nusing namespace std;\n//  ----------------\n\n"
+
+; HeaderPrologue defines the string inserted in the beginning of each Header file
+; when it is created.
+HeaderPrologue=""
+
+;FileNameLengthLimit ::=0 | 1 | <n>, where <n> is in the range from 8 to 255
+;   0 - use standard DOS file names (8 - names + 3 - extension)
+;   1 - use long file names, supported in Windows/NT and Windows 95
+;   <n> - is the user-defined length limit for file names
+; FileNameLengthLimit determines initial state of the check "Use long file name"
+; and maximum length of automatically constructed file name in the Class dialog.
+FileNameLengthLimit=255
+
+; set default extension for "Header file" name of the Class dialog
+DefaultHeaderExtension=.h
+
+; set default extension for "Source file" name of the Class dialog
+DefaultSourceExtension=.cpp
+
+; if DefaultRemoveFromProject, check box "Remove file from project" is
+; initially checked in the Delete class dialog
+DefaultRemoveFromProject=Yes
+
+; if DefaultRemoveFile, check box "Remove file from disk" is
+; initially checked in the Delete class dialog
+DefaultRemoveFile=Yes
+
+; if DisplayDefaultType=No, the Attribute and Operation dialogs
+; shows only member name instead of full declaration in the "Declaration" field
+; for default member types: "int xxxxxxx;" and "void xxxxxxx();".
+DisplayDefaultType=No
+
+; String delimiters, inserted between similar source code construction.
+; The format is C-string in quotes.
+
+;  between declarations of classes (1 empty line between)
+BlanksBetweenClassDecl="\n\n"
+
+;  between declarations of members (from new line and indented 1 tab)
+BlanksBetweenDecls="\n\t"
+
+;  between definitions of members (1 empty line between)
+BlanksBetweenDefs="\n\n"
+
+;  between items in declaration list via comma. (like list base classes)
+;  ( 1 space after comma before next item)
+BlanksBetweenCommaList=" "
+
+; if ReformatAfterCodeEditor, source Code Reformatter is automatically called
+; after each Code Editor action.
+; Manual call: Shift-Ctrl-F on the project node or in the Text Editor
+ReformatAfterCodeEditor=0
+
+; Allow Code Editor to modify source files located outside project subdirectory.
+ModifyFilesOutsideProject=0
+
+; if CStyleIncludeNames, Code Editor generates include file name in Microsoft C-style,
+; i.e. without the path relative to project directory,
+; otherwise the include statement contain the relative path to the header file
+CStyleIncludeNames=Yes
+
+[PrintServer]
+
+; Header and Footer are the strings (without quotes) printed in corresponding positions
+; A string may contain variables:
+;   %P - page number
+;   %D - expanded to current date
+;   %F - expanded to View node file name
+Header=%F
+Footer=Page %P
+
+; Margin offsets from the corresponding page edge.
+;  " - inches
+; cm - centimeters
+; mm - millimeters
+LeftMargin=1"
+RightMargin=1"
+TopMargin=1"
+BottomMargin=1"
+
+; if PrintEmpty, empty pages are printed (not supported)
+PrintEmpty=1
+
+; if Border, the thin border is printed around the page
+Border=1
+
+; Header and footer fonts
+; Format:
+; HeaderFont ::="FaceName", <Height>, <Width>, <Escapement>, <Orientation> , <Weight>, <PitchAndFamily>, <Italic>, <Underline>, <Strikeout>
+; Missed parameters mean default values (leave comma within the string)
+HeaderFont="Times New Roman",20,0,0,0,700,18,0,0,0
+FooterFont="Times New Roman",17,0,0,0,700,18,255,1,0
+
+[Parser]
+
+; if SkipStandardDirectories, the include files placed in the standard include directories
+; are not processed, and therefore the classes declared in them are not included into Object Model.
+; Standard include directories are defined in Options | Project | Include path
+SkipStandardDirectories=YES
+
+; Explicit list of directories to be excluded from processing include files.
+; Actually it is more significant for Parser then SkipStandardDirectories.
+SkipDirectories=C:\BC5\include
+
+; if SkipStructs, structures are not included into Object Model
+SkipStructs=NO
+
+; if SkipEnums, enumerated types are not processed
+SkipEnums=YES
+
+; if SubstituteMacros, macro variables are substituted in the processed source code
+SubstituteMacros=NO
+
+[InformationExport]
+
+; Default Inforamtion Export templates directory
+TemplateDir=..\TOGETHER\IE
+
+; Custom execute values
+Custom1=hcw /a /c /e /m %helpproject%; #helpview %fullpath(output)%\%name(output)%.hlp
+Custom2=winword %output%
+LastTemplate=
+LastOutput=
+LastOptions=4
+LastSave=0
+
+[ObjectModelEditor]
+
+; DefaultFont ::=%fontName-fontSize-fontStyle
+;   fontName  ::=helvetica | courier | times
+;   fontStyle ::=[b][i][u]
+;   b - bold, i -italic, u - underline
+DefaultFont=%Arial-9-
+
+; if LayoutSemiAutomatic, dragging an object is followed by layouting
+;  to make sure links looks good
+LayoutSemiAutomatic=1
+
+; if ShowModelComponents, the name of the subtarget of a class is displayed below the class name
+ShowModelComponents=1
+
+; if ShowLinkAttributes, the Attributes-as-Links is displayed among attributes
+ShowLinkAttributes=0
+
+; if ShowTemplateArgs, the arguments of a template class is displayed at the right upper corner of the class
+ShowTemplateArgs=1
+
+; if ShowTypeAsLinkLabel, the type of Attribute-as-Link is displayed as a label on the link near the source
+ShowTypeAsLinkLabel=0
+
+; ShowForward ::=All | Inheritance | None
+; All -           all forward-declared (not defined) classes are displayed (grayed)
+; Inheritance -   only undefined base classes are displayed
+; None -          forward-declared classes are not displayed     
+ShowForward=All
+
+; if JoinLinks, a number of same kind links between the same two classes are joined into one link.
+JoinLinks=1
+
+; MemberDisplayType ::=Auto | None | Cpp | Unified
+;  Auto -       member type is dependent on notation: Coad=> None, OMT and Unified => Unified
+;  None -       member type is not displayed
+;  Cpp  -       member type is displayed in C++ format: <Type> <Name>
+;  Unified -    member type is displayed in the Unified format: <Name>:<Type>
+MemberDisplayType=Auto
+
+; Zoom ratio in % for printing
+PrintZoom=100
+
+; if ShowPrintGrid, the grid lines between print pages is displayed on the screen
+ShowPrintGrid=0
+
+; if KeyDeclarationInStatusLine, the declaration of a focused element
+; is displayed in status bar of the IDE
+KeyDeclarationInStatusLine=Yes
+
+; if ConfirmCopy, user is asked to confirm copying
+ConfirmCopy=0
+
+; if ConfirmMove, user is asked to confirm moving
+ConfirmMove=0
+
+; if ConfirmDelete, user is asked to confirm deletion
+ConfirmDelete=0
+
+; ShowOperationParameters ::=Auto | Yes | No
+;  Auto -       display of operation parameters is dependent on notation: 
+;               Coad=> None, OMT and Unified => Yes
+;  Yes  -       display operation parameters with operation names
+;  No   -       NOT display operation parameters 
+ShowOperationParameters=Auto
+
+; The maximum number of characters in class labels
+MaximumClassLabelLength=20
+
+[Formatter]
+
+; Typename options are accomodative. They define the identifiers which are enforced to be a type.
+Typename=string
+Typename=DEFINE_RESPONSE_TABLE
+Typename=DECLARE_RESPONSE_TABLE
+Typename=HWND
+Typename=vector
+;       End of user type names
+BracesAlignType2=Yes
+BracesAlignType3=Yes
+CodeLineCommentColumn=41
+DeclarationIndent=8
+DeclLineCommentColumn=41
+IndentationSpaces=4
+MaximumLineLength=132
+PreprocessorElseEndifCommentColumn=41
+SpacesAfterCaseCode=4
+TabSize=8
+UseTabsForSpaces=No
+
+[FindDialog]
+
+; Keep the state of search options
+; The value is hexadecimal disjunction of flags:
+; 0x0001 - Whole words only
+; 0x0002 - Case sensitive
+; 0x0400 - Classes
+; 0x0800 - Attributes
+; 0x1000 - Operations
+; 0x2000 - Messages
+LastOptions=3d52
+
+; Keep the last text in 'Text to find' combobox
+LastText=
+

Binary file added.

Binary file added.

+/Tde/m/l/c/k /V3.10 /LC:\BC5\LIB +
+-v- C:\BC5\LIB\C0S.OBJ+
+-v- BINHEAD.OBJ+
+-v- SMLFUNCS.OBJ+
+-v- MENUS.OBJ+
+-v- VIDEO.OBJ+
+-v- PIECRUST.OBJ+
+-v- DOSWIN.OBJ+
+-v- WARNINGS.OBJ+
+-v- EXETOOL.OBJ
+EXETOOL.EXE
+EXETOOL.MAP
+-v- C:\BC5\LIB\CS.LIB
+
+#ifndef __INC_MENUS_H
+#define __INC_MENUS_H
+//------------------------------------------------------------------------------
+namespace DOS2EXE_Menu
+{
+	void ChangeFile(void);
+   void ChangeFileSize(void);
+   void ChangeRelocAddress(void);
+   void ChangeHeaderRecSize(void);
+   void ChangeMinMemReq(void);
+   void ChangeMaxMemReq(void);
+   void ChangeFileLoadCRC(void);
+   void ChangeOverlayNum(void);
+   void ChangeSSSP(void);
+   void ChangeCSIP(void);
+   void About(void);
+}
+//------------------------------------------------------------------------------
+#endif /* __INC_MENUS_H */
+APR 19 1998 - 14:41 hrs G.M.T.: 0.01a -- Added support for hexadenery.
+APR 21 1998 - 20:21 hrs G.M.T.: 0.01b -- Added protection against changing any files without the MS-DOS 2.0 .EXE header
+APR 22 1998 - 12:03 hrs G.M.T.: 0.01b -- Added 'no file selected' message box instead of text message
+JUN 13 1998 - 15:10 hrs G.M.T.: 0.01  -- Added open in readonly mode to command-line filename entries until we are sure it's an .EXE so that the date is not changed
+;**********************************************************************;
+;*                       T E S T E X E . A S M                        *;
+;*--------------------------------------------------------------------*;
+;*    Task           : Simple EXE program: can be assembled using     *;
+;*                     either Turbo Assembler (TASM) or Microsoft's   *;
+;*                     Macro Assembler (MASM)                         *;
+;*--------------------------------------------------------------------*;
+;*    Author         : MICHAEL TISCHER                                *;
+;*    Developed on   : 06/07/1987                                     *;
+;*    Last update    : 12/24/1991                                     *;
+;*--------------------------------------------------------------------*;
+;*    Assembly       : MASM:   masm testexe;                          *;
+;*                             link testexe;                          *;
+;*                                                                    *;
+;*                     TASM:   tasm testexe                           *;
+;*                             tlink testexe                          *;
+;**********************************************************************;
+
+;== Stack ==============================================================
+
+stackseg  segment para STACK 'STACK'      ;Definition of stack segment
+
+          dw 256 dup (?)          ;The stack comprises 256 words
+
+stackseg  ends                     ;End of stack segment 
+        
+;== Data ===============================================================
+
+data      segment para 'DATA'     ;Definition of data segment 
+
+          ;-- All data, buffers and variables can be stored here -------
+          
+          ;...
+          ;...
+          ;...
+
+data      ends                    ;End of data segment
+
+;== Code ===============================================================
+
+code      segment para 'CODE'     ;Definition of CODE segment
+
+          assume cs:code, ds:data, ss:stackseg
+
+                                  ;CS defines the code segment, DS
+                                  ;DS the data segment and SS the stack
+                                  ;segment. ES can be accessed freely
+                                  
+prog      proc far                ;This procedure is the main routine,
+                                  ;and is accessed right after the start
+                                  ;of the program
+
+          ;-- CS and SS are already initialized. DS must be initialized 
+          ;-- manually, because it prints to the PSP (like ES)
+          
+          mov  ax,data            ;Load segment address of data segment
+          mov  ds,ax              ;into the DS register 
+
+          call setfree            ;Release memory not needed
+
+          ;-- Place additional main program code here ------------------
+          
+          ;...
+          ;...
+          ;...
+
+          ;--- End program here using DOS function 4Ch -----------------
+
+          mov  ax,4C00h           ;Load function number and error code 00
+          int  21h                ;DOS call                   
+                                  
+          ;--- Program execution stops here because of DOS call --------
+          
+prog      endp                    ;End of PROG procedure
+
+;-- Subroutines --------------------------------------------------------
+;-- This is the area provided for subroutines within the program -------
+
+a_proc    proc near
+
+          ;...
+          ;...
+          ;...
+          ret
+
+a_proc    endp 
+
+b_proc    proc near
+
+          ;...
+          ;...
+          ;...
+          ret
+
+b_proc    endp 
+
+;-- SETFREE: Release unused memory -------------------------------------
+;-- Input    : ES = Address of PSP
+;-- Output   : none 
+;-- Registers: AX, BX, CL and FLAGS are affected
+;-- Info     : Since the stack segment is always the last segment in an
+;              EXE file, ES:0000 points to the beginning of the program
+;              in memory, and SS:SP points to the end. This allows easy
+;              calculation of the program's length.
+
+setfree   proc near
+
+          mov  bx,ss              ;Compute distance between
+          mov  ax,es              ;PSP and stack
+          sub  bx,ax
+
+          mov  ax,sp              ;Compute stack length
+          add  ax,15              ;in paragraphs
+          mov  cl,4                         
+          shr  ax,cl              ;Stack length
+
+          add  bx,ax              ;Add two values of current length
+
+          mov  ah,4ah             ;Reserve this memory only
+          int  21h                ;DOS call
+
+          ret                     ;Return to caller
+
+setfree   endp
+
+;== End ================================================================
+
+code      ends                    ;End of CODE segment
+          end  prog               ;Begin execution with PROG procedure
+                                  

Binary file added.

+
+ Start  Stop   Length Name               Class
+
+ 00000H 001FFH 00200H STACKSEG           STACK
+ 00200H 00200H 00000H DATA               DATA
+ 00200H 00224H 00025H CODE               CODE
+
+Program entry point at 0020:0000
+
+#ifndef __INC_WARNINGS_H
+#define __INC_WARNINGS_H
+//------------------------------------------------------------------------------
+/* Warnings.h - warnings available to other units */
+namespace EXEToolWarnings
+{
+	extern bool ExecChangeWarning(void); // Warns about updating commercial programs
+   extern void NoFileSelected(void); // Alerts user that no file is selected
+}
+//------------------------------------------------------------------------------
+#endif /* __INC_WARNINGS_H */
+
+ Start  Stop   Length Name               Class
+
+ 00000H 0CFFBH 0CFFCH _TEXT              CODE
+ 0D000H 0D000H 00000H _FARDATA           FAR_DATA
+ 0D000H 0D000H 00000H _FARBSS            FAR_BSS
+ 0D000H 0D000H 00000H _OVERLAY_          OVRINFO
+ 0D000H 0D000H 00000H _1STUB_            STUBSEG
+ 0D000H 0E585H 01586H _DATA              DATA
+ 0E586H 0E587H 00002H _CVTSEG            DATA
+ 0E588H 0E58DH 00006H _SCNSEG            DATA
+ 0E58EH 0E58EH 00000H _CONST             CONST
+ 0E58EH 0E5CFH 00042H _INIT_             INITDATA
+ 0E5D0H 0E5D0H 00000H _INITEND_          INITDATA
+ 0E5D0H 0E5F3H 00024H _EXIT_             EXITDATA
+ 0E5F4H 0E5F4H 00000H _EXITEND_          EXITDATA
+ 0E5F4H 0E7F1H 001FEH _BSS               BSS
+ 0E7F2H 0E7F2H 00000H _BSSEND            BSSEND
+ 0E800H 0E87FH 00080H _STACK             STACK
+
+  Address         Publics by Name
+
+ 0000:7555       operator delete(void far*)
+ 0000:77D0       operator delete(void near*)
+ 0000:7579       operator delete[](void far*)
+ 0000:77E0       operator delete[](void near*)
+ 0000:7837       operator new(unsigned int)
+ 0000:7877       operator new[](unsigned int)
+ 0000:1575       __tpdsc__[doswl::tdoswindow]
+ 0000:15C1       __tpdsc__[piecrust::tabsbase]
+ 0000:222E       __tpdsc__[binheaders::texefile]
+ 0000:1557       __tpdsc__[doswl::tdoswindow near*]
+ 0000:220D       __tpdsc__[binheaders::texefile near*]
+ 0000:0293       binheaders::texefile::texefile()
+ 0000:031F       binheaders::texefile::~texefile()
+ 0000:03F0       binheaders::texefile::clearfilename()
+ 0000:0419       binheaders::texefile::close()
+ 0000:0511       binheaders::texefile::getexelengthbytes()
+ 0000:0376       binheaders::texefile::getfilename()
+ 0000:052E       binheaders::texefile::isexecutable()
+ 0000:040C       binheaders::texefile::isopen()
+ 0000:043F       binheaders::texefile::open()
+ 0000:0488       binheaders::texefile::openusingcurrenthandle()
+ 0000:04E4       binheaders::texefile::readheader()
+ 0000:0383       binheaders::texefile::setfilename(const char near*)
+ 0000:054D       binheaders::texefile::sethexefile(int)
+ 0000:04B7       binheaders::texefile::writeheader()
+ 0000:4CFD       dec(ios near&)
+ 0000:1FE9       displaymenu()
+ 0000:2078       displaytitle()
+ 0000:0AC0       dos2exe_menu::about()
+ 0000:1337       dos2exe_menu::changecsip()
+ 0000:089A       dos2exe_menu::changefile()
+ 0000:0F71       dos2exe_menu::changefileloadcrc()
+ 0000:0CD6       dos2exe_menu::changeheaderrecsize()
+ 0000:0E7C       dos2exe_menu::changemaxmemreq()
+ 0000:0DA9       dos2exe_menu::changeminmemreq()
+ 0000:103E       dos2exe_menu::changeoverlaynum()
+ 0000:0C03       dos2exe_menu::changerelocaddress()
+ 0000:110B       dos2exe_menu::changesssp()
+ 0000:1739       doswl::tdoswindow::tdoswindow() __fastcall
+ 0000:1799       doswl::tdoswindow::~tdoswindow() __fastcall
+ 0000:1903       doswl::tdoswindow::getbackgroundcolor()
+ 0000:1BA8       doswl::tdoswindow::getexpectedwidth(const char near*)
+ 0000:18CF       doswl::tdoswindow::getforegroundcolor()
+ 0000:17FF       doswl::tdoswindow::getheight()
+ 0000:1867       doswl::tdoswindow::getleft()
+ 0000:1BD8       doswl::tdoswindow::getscreencolumns()
+ 0000:1BFA       doswl::tdoswindow::getscreenlines()
+ 0000:189B       doswl::tdoswindow::gettop()
+ 0000:1833       doswl::tdoswindow::getwidth()
+ 0000:1B69       doswl::tdoswindow::gotowindowrelativexy(int,int)
+ 0000:1A34       doswl::tdoswindow::hide()
+ 0000:1A7A       doswl::tdoswindow::movetocentre()
+ 0000:1AD3       doswl::tdoswindow::puttext(int,const char near*)
+ 0000:1C07       doswl::tdoswindow::resetvisibillity(bool)
+ 0000:18DC       doswl::tdoswindow::setbackgroundcolor(int)
+ 0000:18A8       doswl::tdoswindow::setforegroundcolor(int)
+ 0000:17D8       doswl::tdoswindow::setheight(int)
+ 0000:1840       doswl::tdoswindow::setleft(int)
+ 0000:1BC3       doswl::tdoswindow::setscreencolumns(int)
+ 0000:1BE5       doswl::tdoswindow::setscreenlines(int)
+ 0000:1874       doswl::tdoswindow::settop(int)
+ 0000:180C       doswl::tdoswindow::setwidth(int)
+ 0000:1910       doswl::tdoswindow::show()
+ 0000:4CDF       endl(ostream near&)
+ 0000:1C5E       exetoolwarnings::execchangewarning()
+ 0000:1DF1       exetoolwarnings::nofileselected()
+ 0000:4DD3       filebuf::filebuf(int)
+ 0000:4F0B       filebuf::~filebuf()
+ 0000:4D45       filebuf::close()
+ 0D00:110C       filebuf::openprot
+ 0000:4FE6       filebuf::overflow(int)
+ 0000:5175       filebuf::seekoff(long,ios::seek_dir)
+ 0000:50E6       filebuf::setbuf(char near*,int)
+ 0000:52C1       filebuf::sync()
+ 0000:5402       filebuf::underflow()
+ 0000:21C8       globalclassdestroyer()
+ 0000:2160       globalclassinitializer()
+ 0000:4D21       hex(ios near&)
+ 0000:6FDD       ios::ios()
+ 0000:7079       ios::~ios()
+ 0D00:122C       ios::adjustfield
+ 0D00:1228       ios::basefield
+ 0000:6FA5       ios::clear(int)
+ 0D00:1230       ios::floatfield
+ 0000:71AD       ios::init(streambuf near*)
+ 0D00:1234       ios::nextbit
+ 0000:71F6       ios::setf(long)
+ 0000:72AD       ios::setf(long,long)
+ 0000:730D       ios::setstate(int)
+ 0D00:169A       ios::stdioflush
+ 0000:733A       ios::tie(ostream near*)
+ 0D00:1238       ios::usercount
+ 0000:48DF       iostream_delete()
+ 0000:5578       istream::istream()
+ 0000:586B       istream::~istream()
+ 0000:5D38       istream::operator >>(long near&)
+ 0000:5ECA       istream::operator >>(unsigned long near&)
+ 0000:5F01       istream::operator >>(unsigned short near&)
+ 0000:5A72       istream::eatwhite()
+ 0000:57AA       istream::ipfx(int)
+ 0000:555F       istream_withassign::operator =(streambuf near*)
+ 0000:566B       istream_withassign::istream_withassign()
+ 0000:593E       istream_withassign::~istream_withassign()
+ 0000:5F55       ostream::ostream()
+ 0000:6182       ostream::~ostream()
+ 0000:66BA       ostream::operator <<(char)
+ 0000:64B0       ostream::operator <<(long)
+ 0000:6841       ostream::operator <<(ios near&(near*)(ios near&))
+ 0000:65E7       ostream::operator <<(unsigned long)
+ 0000:6856       ostream::do_opfx()
+ 0000:6889       ostream::do_osfx()
+ 0000:63A6       ostream::flush()
+ 0000:68CD       ostream::outstr(const char near*,const char near*)
+ 0000:5F32       ostream_withassign::operator =(streambuf near*)
+ 0000:6043       ostream_withassign::ostream_withassign()
+ 0000:6272       ostream_withassign::~ostream_withassign()
+ 0000:1607       overlordsvideostuff::setvideomode(unsigned char)
+ 0000:1686       piecrust::stdcmdlinefaults(int,int)
+ 0000:1717       piecrust::stdwin32consoleexit(int,const char near*)
+ 0000:1615       piecrust::tabsbase::tabsbase()
+ 0000:1641       piecrust::tabsbase::~tabsbase()
+ 0000:166B       piecrust::tabsbase::getparentthis()
+ 0000:1677       piecrust::tabsbase::setparentthis(void near*)
+ 0000:77F0       set_new_handler(void(near*)())
+ 0000:8958       set_terminate(void(near*)())
+ 0000:8A28       set_unexpected(void(near*)())
+ 0000:0759       smallfuncs::calccrc(const char near*,void(near*)(unsigned long))
+ 0000:06A7       smallfuncs::calcfileblocksize(unsigned long)
+ 0000:0569       smallfuncs::checkfileexistance(const char near*)
+ 0000:05B8       smallfuncs::copyfile(const char near*,const char near*,unsigned long,unsigned long)
+ 0000:6B39       streambuf::streambuf()
+ 0000:6D21       streambuf::~streambuf()
+ 0000:6B07       streambuf::doallocate()
+ 0000:6C08       streambuf::do_sgetn(char near*,int)
+ 0000:6BDF       streambuf::do_snextc()
+ 0000:6C9C       streambuf::do_sputn(const char near*,int)
+ 0000:6D9E       streambuf::overflow(int)
+ 0000:6DA6       streambuf::pbackfail(int)
+ 0000:6EC0       streambuf::seekoff(long,ios::seek_dir)
+ 0000:6ECB       streambuf::seekpos(long,int)
+ 0000:6DD0       streambuf::setb(char near*,char near*,int)
+ 0000:6DAE       streambuf::setbuf(char near*,int)
+ 0000:6E49       streambuf::setg(char near*,char near*,char near*)
+ 0000:6E8C       streambuf::setp(char near*,char near*)
+ 0000:6EEE       streambuf::sputn(const char near*,int)
+ 0000:6F3D       streambuf::sync()
+ 0000:6F7B       streambuf::underflow()
+ 0000:C3C6       string::string(const char near*)
+ 0000:C28B       string::string(const string near&)
+ 0000:C638       string::~string()
+ 0000:C6E8       string::assert_element(unsigned int) const
+ 0000:C7CF       string::assert_index(unsigned int) const
+ 0D00:1520       string::case_sensitive
+ 0D00:152A       string::freeboard
+ 0D00:1526       string::initial_capac
+ 0000:CD66       string::initial_capacity(unsigned int)
+ 0000:CDAD       string::max_waste(unsigned int)
+ 0D00:1522       string::paranoid_check
+ 0D00:1528       string::resize_inc
+ 0000:CD83       string::resize_increment(unsigned int)
+ 0000:CD0F       string::set_case_sensitive(int)
+ 0000:CD2C       string::set_paranoid_check(int)
+ 0D00:1524       string::skip_white
+ 0000:CD49       string::skip_whitespace(int)
+ 0000:8950       terminate()
+ 0000:C957       tstringref::tstringref(const char near*,unsigned int,const char near*,unsigned int,unsigned int)
+ 0000:CA0E       tstringref::~tstringref()
+ 0000:CACD       tstringref::check_freeboard()
+ 0000:CB31       tstringref::grow_to(unsigned int)
+ 0000:CA6B       tstringref::reserve(unsigned int)
+ 0000:CB82       tstringref::round_capacity(unsigned int)
+ 0000:CBCF       tstringref::splice(unsigned int,unsigned int,const char near*,unsigned int)
+ 0000:C8B6       tsubstring::assert_element(unsigned int) const
+ 0000:BC9A       typeinfo::operator =(const typeinfo near&)
+ 0000:BC3F       typeinfo::typeinfo(const typeinfo near&)
+ 0000:BCA6       typeinfo::~typeinfo()
+ 0000:BCCF       typeinfo::operator ==(const typeinfo near&) const
+ 0000:BCFD       typeinfo::operator !=(const typeinfo near&) const
+ 0000:BD18       typeinfo::before(const typeinfo near&) const
+ 0000:BD7A       typeinfo::name() const
+ 0000:8A20       unexpected()
+ 0000:8BA6       xalloc::xalloc(const string near&,unsigned int)
+ 0000:8C0F       xalloc::raise()
+ 0000:8F83       xmsg::operator =(const xmsg near&)
+ 0000:8E28       xmsg::xmsg(const xmsg near&)
+ 0000:8D85       xmsg::xmsg(const string near&)
+ 0000:8EA9       xmsg::~xmsg()
+ 0000:8F18       xmsg::raise()
+ 0000:A761       _catchcleanup()
+ 0000:A016       _rethrowexception(unsigned int,unsigned char near*)
+ 0000:9FC6       _throwexception(void far*,void far*,void far*,void far*,unsigned int,unsigned int,unsigned int,unsigned char near*)
+ 0000:C085       __dynamiccast(void far*,void far*,void far*,void far*,int)
+ 0000:8AA0       __getpolymorphicdtc(void far*,unsigned int)
+ 0000:8B02       __getpolymorphicdtcfar(void far*,unsigned int)
+ 0000:BD93       __gettypeinfo(void far*,void far*,void far*,void far*)
+ 0000:90E2       __refdestructorcount()
+ 0000:90E8       __refexceptionlist()
+ 0000:BC32       __throwexceptionname()
+ 0000:BC18       __throwfilename()
+ 0000:BC25       __throwlinenumber()
+ 0D00:0000       DATASEG@
+ 0000:028F       DGROUP@
+ 0000:7390       F_LDIV@
+ 0000:739F       F_LMOD@
+ 0000:7397       F_LUDIV@
+ 0000:73A7       F_LUMOD@
+ 0000:743E       F_LXLSH@
+ 0000:745F       F_LXURSH@
+ 0000:811A       F_PADD@
+ 0000:8149       F_PSUB@
+ 0000:7390       LDIV@
+ 0000:739F       LMOD@
+ 0000:7397       LUDIV@
+ 0000:73A7       LUMOD@
+ 0000:743E       LXLSH@
+ 0000:745F       LXURSH@
+ 0000:738D       N_LDIV@
+ 0000:739C       N_LMOD@
+ 0000:7394       N_LUDIV@
+ 0000:73A4       N_LUMOD@
+ 0000:743B       N_LXLSH@
+ 0000:747D       N_LXMUL@
+ 0000:745C       N_LXURSH@
+ 0000:8117       N_PADD@
+ 0000:8177       N_PCMP@
+ 0000:8146       N_PSUB@
+ 0000:8198       N_SCOPY@
+ 0000:811A       PADD@
+ 0000:8149       PSUB@
+ 0000:826A       _abort
+ 0000:827A       _atexit
+ 0000:80D3       _brk
+ 0D00:1648       _cerr
+ 0D00:15FA       _cin
+ 0D00:166E       _clog
+ 0000:3557       _close
+ 0D00:1622       _cout
+ 0000:24B1       _cprintf
+ 0000:24CB       _cputs
+ 0000:8864       _delay
+ 0000:3FAA       _eof
+ 0D00:0094       _errno
+ 0D00:15F4       _EXEFile
+ 0000:82F7       _exit
+ 0000:79C7       _farfree
+ 0000:7AD1       _farmalloc
+ 0000:7C2B       _farrealloc
+ 0000:3581       _fflush
+ 0000:4122       _fgetc
+ 0000:41FE       _fgetchar
+ 0000:4028       _filelength
+ 0000:3661       _flushall
+ 0000:39DE       _fputc
+ 0000:3B39       _fputchar
+ 0000:36DB       _fputs
+ 0000:7CA3       _free
+ 0000:3792       _fseek
+ 0000:37FE       _ftell
+ 0000:2BF5       _getch
+ 0000:2C12       _getche
+ 0000:8926       _getdate
+ 0000:38CC       _gets
+ 0000:2531       _gettext
+ 0000:893B       _gettime
+ 0000:8357       _getvect
+ 0000:24E4       _gotoxy
+ 0000:2361       _highvideo
+ 0000:453E       _ioctl
+ 0000:2FFB       _isatty
+ 0000:2C5F       _kbhit
+ 0000:236B       _lowvideo
+ 0000:3010       _lseek
+ 0000:1EB6       _main
+ 0000:7D72       _malloc
+ 0000:2D3A       _memcpy
+ 0000:2DE6       _memmove
+ 0000:2D81       _memset
+ 0000:25F5       _movetext
+ 0000:2D9D       _movmem
+ 0000:2375       _normvideo
+ 0000:825F       _nosound
+ 0000:423E       _open
+ 0000:3938       _perror
+ 0000:39A8       _printf
+ 0000:269D       _putch
+ 0000:2593       _puttext
+ 0000:8798       _raise
+ 0000:A18F       _RaiseException
+ 0000:3551       _read
+ 0000:7EC9       _realloc
+ 0000:80E3       _sbrk
+ 0000:80F7       _setblock
+ 0000:2D59       _setmem
+ 0000:3D09       _setvbuf
+ 0000:836A       _setvect
+ 0000:8696       _signal
+ 0000:88C5       _sleep
+ 0000:822F       _sound
+ 0000:2E01       _stricmp
+ 0000:2E41       _strlen
+ 0000:2352       _textattr
+ 0000:2335       _textbackground
+ 0000:231C       _textcolor
+ 0000:2C3D       _ungetch
+ 0000:2A16       _wherex
+ 0000:2A29       _wherey
+ 0000:3554       _write
+ 0D00:1396       __8086
+ 0000:8342       __abort
+ 0000:1000  Abs  __AHINCR
+ 0000:000C  Abs  __AHSHIFT
+ 0D00:13C0       __argc
+ 0D00:13C2       __argv
+ 0D00:1398       __atexitcnt
+ 0D00:16A0       __atexittbl
+ 0000:7FA6       __brk
+ 0D00:00A0       __brklvl
+ 0D00:0084       __C0argc
+ 0D00:0086       __C0argv
+ 0000:2B0F       __c0crtinit
+ 0D00:0088       __C0environ
+ 0D00:0A29       __cChar
+ 0000:8320       __cexit
+ 0D00:0A28       __cFlag
+ 0000:015B       __checknull
+ 0000:0148       __cleanup
+ 0000:3F9A       __close
+ 0000:2380       __CPUTN
+ 0000:2B30       __crtinit
+ 0D00:1244       __ctype
+ 0000:BBC7       __CurrExcContext
+ 0000:0000  Abs  __cvtfak
+ 0000:8332       __c_exit
+ 0D00:16EA       __DestructorCountPtr
+ 0D00:0A1E       __directvideo
+ 0D00:0DB4       __doserrno
+ 0000:2FE7       __DOSERROR
+ 0D00:0DB6       __dosErrorToSV
+ 0D00:008A       __envLng
+ 0D00:008C       __envseg
+ 0D00:008E       __envSize
+ 0000:8B68       __ExceptInit
+ 0000:AE7B       __ExceptionHandler
+ 0D00:0096       __Exception_list
+ 0000:830A       __exit
+ 0D00:139A       __exitbuf
+ 0D00:139C       __exitfopen
+ 0D00:139E       __exitopen
+ 0000:410D       __fgetc
+ 0D00:138E       __first
+ 0000:3619       __flushall
+ 0000:3669       __flushout
+ 0000:2C75       __fmemcmp
+ 0000:2C9D       __fmemcpy
+ 0000:2CE7       __fmemset
+ 0D00:0DB0       __fmode
+ 0000:39C3       __fputc
+ 0000:3B4E       __FPUTN
+ 0000:2EFA       __freeio
+ 0000:2CC1       __fsetmem
+ 0000:2D0A       __fstrcmp
+ 0000:A144       __Global_unwind
+ 0D00:009C       __heapbase
+ 0D00:1378       __heaplen
+ 0D00:00A4       __heaptop
+ 0D00:0074       __Int0Vector
+ 0D00:0078       __Int4Vector
+ 0D00:007C       __Int5Vector
+ 0D00:0080       __Int6Vector
+ 0000:2FA9       __IOERROR
+ 0D00:1390       __last
+ 0000:ADA8       __Local_unwind
+ 0000:7494       __LONGTOA
+ 0000:0291       __MMODEL
+ 0D00:169C       __new_handler
+ 0000:4122       __Nfgetc
+ 0D00:0D4A       __nfile
+ 0000:2C12       __Ngetche
+ 0D00:0DB2       __notUmask
+ 0000:2C3D       __Nungetch
+ 0000:440C       __open
+ 0D00:0D4C       __openfd
+ 0D00:0092       __osmajor
+ 0D00:0093       __osminor
+ 0D00:0092       __osversion
+ 0D00:0090       __psp
+ 0000:306E       __read
+ 0000:7551       __REALCVT
+ 0D00:1586       __RealCvtVector
+ 0000:01DD       __restorezero
+ 0000:ADC8       __Return_unwind
+ 0D00:1392       __rover
+ 0000:3F59       __rtl_chmod
+ 0000:3F78       __rtl_close
+ 0000:43BB       __rtl_open
+ 0000:303D       __rtl_read
+ 0000:44E8       __rtl_write
+ 0000:7FE9       __sbrk
+ 0D00:1588       __ScanTodVector
+ 0000:27F0       __SCREENIO
+ 0000:28AF       __SCROLL
+ 0000:0000  Abs  __setargv__
+ 0000:2E5D       __setupio
+ 0D00:137A       __stklen
+ 0D00:0A2A       __streams
+ 0D00:0E78       __sys_errlist
+ 0D00:0ED8       __sys_nerr
+ 0000:0182       __terminate
+ 0000:0000  Abs  __turboCrt
+ 0000:7511       __UTOA
+ 0000:282E       __VALIDATEXY
+ 0D00:0092       __version
+ 0D00:0A0E       __video
+ 0000:2A80       __VideoInt
+ 0000:309E       __VPRINTER
+ 0000:227E       __VPTR
+ 0000:22A2       __VRAM
+ 0000:2A08       __wherexy
+ 0000:4526       __write
+ 0D00:0A0C       __wscroll
+ 0000:2F8F       __xclose
+ 0000:3F1B       __xfflush
+ 0000:8078       ___brk
+ 0D00:009A       ___brklvl
+ 0000:89B6       ___call_terminate
+ 0000:8A5E       ___call_unexpected
+ 0D00:13EE       ___CPPexceptionList
+ 0000:81B4       ___ErrorMessage
+ 0D00:13F2       ___exceptFlags
+ 0D00:140E       ___exceptionNameBuff
+ 0D00:140C       ___exceptMemAllocVars
+ 0D00:140A       ___exceptStaticBuffP
+ 0D00:148E       ___ExceptStaticXbuff
+ 0000:9154       ___ExitExceptBlocks
+ 0000:7887       ___first
+ 0D00:0098       ___heapbase
+ 0000:908C       ___InitExceptBlock
+ 0000:90EE       ___InitExceptBlocks
+ 0000:9167       ___JumpToCatch__
+ 0000:7889       ___last
+ 0000:4420       ___read
+ 0000:788B       ___rover
+ 0D00:13F4       ___savedDS
+ 0D00:13F6       ___savedSI
+ 0000:809E       ___sbrk
+ 0D00:16E0       ___SignalPtr
+ 0D00:1698       ___stderr_streambuf
+ 0D00:1694       ___stdin_streambuf
+ 0D00:1696       ___stdout_streambuf
+ 0D00:13F8       ___terminatePTR
+ 0D00:1400       ___terminate_DS
+ 0D00:1408       ___throwExceptionName
+ 0D00:1404       ___throwFileName
+ 0D00:1406       ___throwLineNumber
+ 0D00:13FC       ___unexpectdPTR
+ 0D00:1402       ___unexpectd_DS
+ 0000:3DF2       ___write
+ 0D00:137C       ___xalloc
+
+  Address         Publics by Value
+
+ 0000:0000  Abs  __setargv__
+ 0000:0000  Abs  __turboCrt
+ 0000:0000  Abs  __cvtfak
+ 0000:000C  Abs  __AHSHIFT
+ 0000:1000  Abs  __AHINCR
+ 0000:0148       __cleanup
+ 0000:015B       __checknull
+ 0000:0182       __terminate
+ 0000:01DD       __restorezero
+ 0000:028F       DGROUP@
+ 0000:0291       __MMODEL
+ 0000:0293       binheaders::texefile::texefile()
+ 0000:031F       binheaders::texefile::~texefile()
+ 0000:0376       binheaders::texefile::getfilename()
+ 0000:0383       binheaders::texefile::setfilename(const char near*)
+ 0000:03F0       binheaders::texefile::clearfilename()
+ 0000:040C       binheaders::texefile::isopen()
+ 0000:0419       binheaders::texefile::close()
+ 0000:043F       binheaders::texefile::open()
+ 0000:0488       binheaders::texefile::openusingcurrenthandle()
+ 0000:04B7       binheaders::texefile::writeheader()
+ 0000:04E4       binheaders::texefile::readheader()
+ 0000:0511       binheaders::texefile::getexelengthbytes()
+ 0000:052E       binheaders::texefile::isexecutable()
+ 0000:054D       binheaders::texefile::sethexefile(int)
+ 0000:0569       smallfuncs::checkfileexistance(const char near*)
+ 0000:05B8       smallfuncs::copyfile(const char near*,const char near*,unsigned long,unsigned long)
+ 0000:06A7       smallfuncs::calcfileblocksize(unsigned long)
+ 0000:0759       smallfuncs::calccrc(const char near*,void(near*)(unsigned long))
+ 0000:089A       dos2exe_menu::changefile()
+ 0000:0AC0       dos2exe_menu::about()
+ 0000:0C03       dos2exe_menu::changerelocaddress()
+ 0000:0CD6       dos2exe_menu::changeheaderrecsize()
+ 0000:0DA9       dos2exe_menu::changeminmemreq()
+ 0000:0E7C       dos2exe_menu::changemaxmemreq()
+ 0000:0F71       dos2exe_menu::changefileloadcrc()
+ 0000:103E       dos2exe_menu::changeoverlaynum()
+ 0000:110B       dos2exe_menu::changesssp()
+ 0000:1337       dos2exe_menu::changecsip()
+ 0000:1557       __tpdsc__[doswl::tdoswindow near*]
+ 0000:1575       __tpdsc__[doswl::tdoswindow]
+ 0000:15C1       __tpdsc__[piecrust::tabsbase]
+ 0000:1607       overlordsvideostuff::setvideomode(unsigned char)
+ 0000:1615       piecrust::tabsbase::tabsbase()
+ 0000:1641       piecrust::tabsbase::~tabsbase()
+ 0000:166B       piecrust::tabsbase::getparentthis()
+ 0000:1677       piecrust::tabsbase::setparentthis(void near*)
+ 0000:1686       piecrust::stdcmdlinefaults(int,int)
+ 0000:1717       piecrust::stdwin32consoleexit(int,const char near*)
+ 0000:1739       doswl::tdoswindow::tdoswindow() __fastcall
+ 0000:1799       doswl::tdoswindow::~tdoswindow() __fastcall
+ 0000:17D8       doswl::tdoswindow::setheight(int)
+ 0000:17FF       doswl::tdoswindow::getheight()
+ 0000:180C       doswl::tdoswindow::setwidth(int)
+ 0000:1833       doswl::tdoswindow::getwidth()
+ 0000:1840       doswl::tdoswindow::setleft(int)
+ 0000:1867       doswl::tdoswindow::getleft()
+ 0000:1874       doswl::tdoswindow::settop(int)
+ 0000:189B       doswl::tdoswindow::gettop()
+ 0000:18A8       doswl::tdoswindow::setforegroundcolor(int)
+ 0000:18CF       doswl::tdoswindow::getforegroundcolor()
+ 0000:18DC       doswl::tdoswindow::setbackgroundcolor(int)
+ 0000:1903       doswl::tdoswindow::getbackgroundcolor()
+ 0000:1910       doswl::tdoswindow::show()
+ 0000:1A34       doswl::tdoswindow::hide()
+ 0000:1A7A       doswl::tdoswindow::movetocentre()
+ 0000:1AD3       doswl::tdoswindow::puttext(int,const char near*)
+ 0000:1B69       doswl::tdoswindow::gotowindowrelativexy(int,int)
+ 0000:1BA8       doswl::tdoswindow::getexpectedwidth(const char near*)
+ 0000:1BC3       doswl::tdoswindow::setscreencolumns(int)
+ 0000:1BD8       doswl::tdoswindow::getscreencolumns()
+ 0000:1BE5       doswl::tdoswindow::setscreenlines(int)
+ 0000:1BFA       doswl::tdoswindow::getscreenlines()
+ 0000:1C07       doswl::tdoswindow::resetvisibillity(bool)
+ 0000:1C5E       exetoolwarnings::execchangewarning()
+ 0000:1DF1       exetoolwarnings::nofileselected()
+ 0000:1EB6       _main
+ 0000:1FE9       displaymenu()
+ 0000:2078       displaytitle()
+ 0000:2160       globalclassinitializer()
+ 0000:21C8       globalclassdestroyer()
+ 0000:220D       __tpdsc__[binheaders::texefile near*]
+ 0000:222E       __tpdsc__[binheaders::texefile]
+ 0000:227E       __VPTR
+ 0000:22A2       __VRAM
+ 0000:231C       _textcolor
+ 0000:2335       _textbackground
+ 0000:2352       _textattr
+ 0000:2361       _highvideo
+ 0000:236B       _lowvideo
+ 0000:2375       _normvideo
+ 0000:2380       __CPUTN
+ 0000:24B1       _cprintf
+ 0000:24CB       _cputs
+ 0000:24E4       _gotoxy
+ 0000:2531       _gettext
+ 0000:2593       _puttext
+ 0000:25F5       _movetext
+ 0000:269D       _putch
+ 0000:27F0       __SCREENIO
+ 0000:282E       __VALIDATEXY
+ 0000:28AF       __SCROLL
+ 0000:2A08       __wherexy
+ 0000:2A16       _wherex
+ 0000:2A29       _wherey
+ 0000:2A80       __VideoInt
+ 0000:2B0F       __c0crtinit
+ 0000:2B30       __crtinit
+ 0000:2BF5       _getch
+ 0000:2C12       __Ngetche
+ 0000:2C12       _getche
+ 0000:2C3D       _ungetch
+ 0000:2C3D       __Nungetch
+ 0000:2C5F       _kbhit
+ 0000:2C75       __fmemcmp
+ 0000:2C9D       __fmemcpy
+ 0000:2CC1       __fsetmem
+ 0000:2CE7       __fmemset
+ 0000:2D0A       __fstrcmp
+ 0000:2D3A       _memcpy
+ 0000:2D59       _setmem
+ 0000:2D81       _memset
+ 0000:2D9D       _movmem
+ 0000:2DE6       _memmove
+ 0000:2E01       _stricmp
+ 0000:2E41       _strlen
+ 0000:2E5D       __setupio
+ 0000:2EFA       __freeio
+ 0000:2F8F       __xclose
+ 0000:2FA9       __IOERROR
+ 0000:2FE7       __DOSERROR
+ 0000:2FFB       _isatty
+ 0000:3010       _lseek
+ 0000:303D       __rtl_read
+ 0000:306E       __read
+ 0000:309E       __VPRINTER
+ 0000:3551       _read
+ 0000:3554       _write
+ 0000:3557       _close
+ 0000:3581       _fflush
+ 0000:3619       __flushall
+ 0000:3661       _flushall
+ 0000:3669       __flushout
+ 0000:36DB       _fputs
+ 0000:3792       _fseek
+ 0000:37FE       _ftell
+ 0000:38CC       _gets
+ 0000:3938       _perror
+ 0000:39A8       _printf
+ 0000:39C3       __fputc
+ 0000:39DE       _fputc
+ 0000:3B39       _fputchar
+ 0000:3B4E       __FPUTN
+ 0000:3D09       _setvbuf
+ 0000:3DF2       ___write
+ 0000:3F1B       __xfflush
+ 0000:3F59       __rtl_chmod
+ 0000:3F78       __rtl_close
+ 0000:3F9A       __close
+ 0000:3FAA       _eof
+ 0000:4028       _filelength
+ 0000:410D       __fgetc
+ 0000:4122       _fgetc
+ 0000:4122       __Nfgetc
+ 0000:41FE       _fgetchar
+ 0000:423E       _open
+ 0000:43BB       __rtl_open
+ 0000:440C       __open
+ 0000:4420       ___read
+ 0000:44E8       __rtl_write
+ 0000:4526       __write
+ 0000:453E       _ioctl
+ 0000:48DF       iostream_delete()
+ 0000:4CDF       endl(ostream near&)
+ 0000:4CFD       dec(ios near&)
+ 0000:4D21       hex(ios near&)
+ 0000:4D45       filebuf::close()
+ 0000:4DD3       filebuf::filebuf(int)
+ 0000:4F0B       filebuf::~filebuf()
+ 0000:4FE6       filebuf::overflow(int)
+ 0000:50E6       filebuf::setbuf(char near*,int)
+ 0000:5175       filebuf::seekoff(long,ios::seek_dir)
+ 0000:52C1       filebuf::sync()
+ 0000:5402       filebuf::underflow()
+ 0000:555F       istream_withassign::operator =(streambuf near*)
+ 0000:5578       istream::istream()
+ 0000:566B       istream_withassign::istream_withassign()
+ 0000:57AA       istream::ipfx(int)
+ 0000:586B       istream::~istream()
+ 0000:593E       istream_withassign::~istream_withassign()
+ 0000:5A72       istream::eatwhite()
+ 0000:5D38       istream::operator >>(long near&)
+ 0000:5ECA       istream::operator >>(unsigned long near&)
+ 0000:5F01       istream::operator >>(unsigned short near&)
+ 0000:5F32       ostream_withassign::operator =(streambuf near*)
+ 0000:5F55       ostream::ostream()
+ 0000:6043       ostream_withassign::ostream_withassign()
+ 0000:6182       ostream::~ostream()
+ 0000:6272       ostream_withassign::~ostream_withassign()
+ 0000:63A6       ostream::flush()
+ 0000:64B0       ostream::operator <<(long)
+ 0000:65E7       ostream::operator <<(unsigned long)
+ 0000:66BA       ostream::operator <<(char)
+ 0000:6841       ostream::operator <<(ios near&(near*)(ios near&))
+ 0000:6856       ostream::do_opfx()
+ 0000:6889       ostream::do_osfx()
+ 0000:68CD       ostream::outstr(const char near*,const char near*)
+ 0000:6B07       streambuf::doallocate()
+ 0000:6B39       streambuf::streambuf()
+ 0000:6BDF       streambuf::do_snextc()
+ 0000:6C08       streambuf::do_sgetn(char near*,int)
+ 0000:6C9C       streambuf::do_sputn(const char near*,int)
+ 0000:6D21       streambuf::~streambuf()
+ 0000:6D9E       streambuf::overflow(int)
+ 0000:6DA6       streambuf::pbackfail(int)
+ 0000:6DAE       streambuf::setbuf(char near*,int)
+ 0000:6DD0       streambuf::setb(char near*,char near*,int)
+ 0000:6E49       streambuf::setg(char near*,char near*,char near*)
+ 0000:6E8C       streambuf::setp(char near*,char near*)
+ 0000:6EC0       streambuf::seekoff(long,ios::seek_dir)
+ 0000:6ECB       streambuf::seekpos(long,int)
+ 0000:6EEE       streambuf::sputn(const char near*,int)
+ 0000:6F3D       streambuf::sync()
+ 0000:6F7B       streambuf::underflow()
+ 0000:6FA5       ios::clear(int)
+ 0000:6FDD       ios::ios()
+ 0000:7079       ios::~ios()
+ 0000:71AD       ios::init(streambuf near*)
+ 0000:71F6       ios::setf(long)
+ 0000:72AD       ios::setf(long,long)
+ 0000:730D       ios::setstate(int)
+ 0000:733A       ios::tie(ostream near*)
+ 0000:738D       N_LDIV@
+ 0000:7390       LDIV@
+ 0000:7390       F_LDIV@
+ 0000:7394       N_LUDIV@
+ 0000:7397       LUDIV@
+ 0000:7397       F_LUDIV@
+ 0000:739C       N_LMOD@
+ 0000:739F       LMOD@
+ 0000:739F       F_LMOD@
+ 0000:73A4       N_LUMOD@
+ 0000:73A7       LUMOD@
+ 0000:73A7       F_LUMOD@
+ 0000:743B       N_LXLSH@
+ 0000:743E       LXLSH@
+ 0000:743E       F_LXLSH@
+ 0000:745C       N_LXURSH@
+ 0000:745F       LXURSH@
+ 0000:745F       F_LXURSH@
+ 0000:747D       N_LXMUL@
+ 0000:7494       __LONGTOA
+ 0000:7511       __UTOA
+ 0000:7551       __REALCVT
+ 0000:7555       operator delete(void far*)
+ 0000:7579       operator delete[](void far*)
+ 0000:77D0       operator delete(void near*)
+ 0000:77E0       operator delete[](void near*)
+ 0000:77F0       set_new_handler(void(near*)())
+ 0000:7837       operator new(unsigned int)
+ 0000:7877       operator new[](unsigned int)
+ 0000:7887       ___first
+ 0000:7889       ___last
+ 0000:788B       ___rover
+ 0000:79C7       _farfree
+ 0000:7AD1       _farmalloc
+ 0000:7C2B       _farrealloc
+ 0000:7CA3       _free
+ 0000:7D72       _malloc
+ 0000:7EC9       _realloc
+ 0000:7FA6       __brk
+ 0000:7FE9       __sbrk
+ 0000:8078       ___brk
+ 0000:809E       ___sbrk
+ 0000:80D3       _brk
+ 0000:80E3       _sbrk
+ 0000:80F7       _setblock
+ 0000:8117       N_PADD@
+ 0000:811A       F_PADD@
+ 0000:811A       PADD@
+ 0000:8146       N_PSUB@
+ 0000:8149       PSUB@
+ 0000:8149       F_PSUB@
+ 0000:8177       N_PCMP@
+ 0000:8198       N_SCOPY@
+ 0000:81B4       ___ErrorMessage
+ 0000:822F       _sound
+ 0000:825F       _nosound
+ 0000:826A       _abort
+ 0000:827A       _atexit
+ 0000:82F7       _exit
+ 0000:830A       __exit
+ 0000:8320       __cexit
+ 0000:8332       __c_exit
+ 0000:8342       __abort
+ 0000:8357       _getvect
+ 0000:836A       _setvect
+ 0000:8696       _signal
+ 0000:8798       _raise
+ 0000:8864       _delay
+ 0000:88C5       _sleep
+ 0000:8926       _getdate
+ 0000:893B       _gettime
+ 0000:8950       terminate()
+ 0000:8958       set_terminate(void(near*)())
+ 0000:89B6       ___call_terminate
+ 0000:8A20       unexpected()
+ 0000:8A28       set_unexpected(void(near*)())
+ 0000:8A5E       ___call_unexpected
+ 0000:8AA0       __getpolymorphicdtc(void far*,unsigned int)
+ 0000:8B02       __getpolymorphicdtcfar(void far*,unsigned int)
+ 0000:8B68       __ExceptInit
+ 0000:8BA6       xalloc::xalloc(const string near&,unsigned int)
+ 0000:8C0F       xalloc::raise()
+ 0000:8D85       xmsg::xmsg(const string near&)
+ 0000:8E28       xmsg::xmsg(const xmsg near&)
+ 0000:8EA9       xmsg::~xmsg()
+ 0000:8F18       xmsg::raise()
+ 0000:8F83       xmsg::operator =(const xmsg near&)
+ 0000:908C       ___InitExceptBlock
+ 0000:90E2       __refdestructorcount()
+ 0000:90E8       __refexceptionlist()
+ 0000:90EE       ___InitExceptBlocks
+ 0000:9154       ___ExitExceptBlocks
+ 0000:9167       ___JumpToCatch__
+ 0000:9FC6       _throwexception(void far*,void far*,void far*,void far*,unsigned int,unsigned int,unsigned int,unsigned char near*)
+ 0000:A016       _rethrowexception(unsigned int,unsigned char near*)
+ 0000:A144       __Global_unwind
+ 0000:A18F       _RaiseException
+ 0000:A761       _catchcleanup()
+ 0000:ADA8       __Local_unwind
+ 0000:ADC8       __Return_unwind
+ 0000:AE7B       __ExceptionHandler
+ 0000:BBC7       __CurrExcContext
+ 0000:BC18       __throwfilename()
+ 0000:BC25       __throwlinenumber()
+ 0000:BC32       __throwexceptionname()
+ 0000:BC3F       typeinfo::typeinfo(const typeinfo near&)
+ 0000:BC9A       typeinfo::operator =(const typeinfo near&)
+ 0000:BCA6       typeinfo::~typeinfo()
+ 0000:BCCF       typeinfo::operator ==(const typeinfo near&) const
+ 0000:BCFD       typeinfo::operator !=(const typeinfo near&) const
+ 0000:BD18       typeinfo::before(const typeinfo near&) const
+ 0000:BD7A       typeinfo::name() const
+ 0000:BD93       __gettypeinfo(void far*,void far*,void far*,void far*)
+ 0000:C085       __dynamiccast(void far*,void far*,void far*,void far*,int)
+ 0000:C28B       string::string(const string near&)
+ 0000:C3C6       string::string(const char near*)
+ 0000:C638       string::~string()
+ 0000:C6E8       string::assert_element(unsigned int) const
+ 0000:C7CF       string::assert_index(unsigned int) const
+ 0000:C8B6       tsubstring::assert_element(unsigned int) const
+ 0000:C957       tstringref::tstringref(const char near*,unsigned int,const char near*,unsigned int,unsigned int)
+ 0000:CA0E       tstringref::~tstringref()
+ 0000:CA6B       tstringref::reserve(unsigned int)
+ 0000:CACD       tstringref::check_freeboard()
+ 0000:CB31       tstringref::grow_to(unsigned int)
+ 0000:CB82       tstringref::round_capacity(unsigned int)
+ 0000:CBCF       tstringref::splice(unsigned int,unsigned int,const char near*,unsigned int)
+ 0000:CD0F       string::set_case_sensitive(int)
+ 0000:CD2C       string::set_paranoid_check(int)
+ 0000:CD49       string::skip_whitespace(int)
+ 0000:CD66       string::initial_capacity(unsigned int)
+ 0000:CD83       string::resize_increment(unsigned int)
+ 0000:CDAD       string::max_waste(unsigned int)
+ 0D00:0000       DATASEG@
+ 0D00:0074       __Int0Vector
+ 0D00:0078       __Int4Vector
+ 0D00:007C       __Int5Vector
+ 0D00:0080       __Int6Vector
+ 0D00:0084       __C0argc
+ 0D00:0086       __C0argv
+ 0D00:0088       __C0environ
+ 0D00:008A       __envLng
+ 0D00:008C       __envseg
+ 0D00:008E       __envSize
+ 0D00:0090       __psp
+ 0D00:0092       __version
+ 0D00:0092       __osversion
+ 0D00:0092       __osmajor
+ 0D00:0093       __osminor
+ 0D00:0094       _errno
+ 0D00:0096       __Exception_list
+ 0D00:0098       ___heapbase
+ 0D00:009A       ___brklvl
+ 0D00:009C       __heapbase
+ 0D00:00A0       __brklvl
+ 0D00:00A4       __heaptop
+ 0D00:0A0C       __wscroll
+ 0D00:0A0E       __video
+ 0D00:0A1E       __directvideo
+ 0D00:0A28       __cFlag
+ 0D00:0A29       __cChar
+ 0D00:0A2A       __streams
+ 0D00:0D4A       __nfile
+ 0D00:0D4C       __openfd
+ 0D00:0DB0       __fmode
+ 0D00:0DB2       __notUmask
+ 0D00:0DB4       __doserrno
+ 0D00:0DB6       __dosErrorToSV
+ 0D00:0E78       __sys_errlist
+ 0D00:0ED8       __sys_nerr
+ 0D00:110C       filebuf::openprot
+ 0D00:1228       ios::basefield
+ 0D00:122C       ios::adjustfield
+ 0D00:1230       ios::floatfield
+ 0D00:1234       ios::nextbit
+ 0D00:1238       ios::usercount
+ 0D00:1244       __ctype
+ 0D00:1378       __heaplen
+ 0D00:137A       __stklen
+ 0D00:137C       ___xalloc
+ 0D00:138E       __first
+ 0D00:1390       __last
+ 0D00:1392       __rover
+ 0D00:1396       __8086
+ 0D00:1398       __atexitcnt
+ 0D00:139A       __exitbuf
+ 0D00:139C       __exitfopen
+ 0D00:139E       __exitopen
+ 0D00:13C0       __argc
+ 0D00:13C2       __argv
+ 0D00:13EE       ___CPPexceptionList
+ 0D00:13F2       ___exceptFlags
+ 0D00:13F4       ___savedDS
+ 0D00:13F6       ___savedSI
+ 0D00:13F8       ___terminatePTR
+ 0D00:13FC       ___unexpectdPTR
+ 0D00:1400       ___terminate_DS
+ 0D00:1402       ___unexpectd_DS
+ 0D00:1404       ___throwFileName
+ 0D00:1406       ___throwLineNumber
+ 0D00:1408       ___throwExceptionName
+ 0D00:140A       ___exceptStaticBuffP
+ 0D00:140C       ___exceptMemAllocVars
+ 0D00:140E       ___exceptionNameBuff
+ 0D00:148E       ___ExceptStaticXbuff
+ 0D00:1520       string::case_sensitive
+ 0D00:1522       string::paranoid_check
+ 0D00:1524       string::skip_white
+ 0D00:1526       string::initial_capac
+ 0D00:1528       string::resize_inc
+ 0D00:152A       string::freeboard
+ 0D00:1586       __RealCvtVector
+ 0D00:1588       __ScanTodVector
+ 0D00:15F4       _EXEFile
+ 0D00:15FA       _cin
+ 0D00:1622       _cout
+ 0D00:1648       _cerr
+ 0D00:166E       _clog
+ 0D00:1694       ___stdin_streambuf
+ 0D00:1696       ___stdout_streambuf
+ 0D00:1698       ___stderr_streambuf
+ 0D00:169A       ios::stdioflush
+ 0D00:169C       __new_handler
+ 0D00:16A0       __atexittbl
+ 0D00:16E0       ___SignalPtr
+ 0D00:16EA       __DestructorCountPtr
+
+Program entry point at 0000:0000
+
+/* Main source file for ExeTool - the .EXE header changing program */
+#include <iostream.h>
+#include <conio.h>
+#include <io.h>
+#include <mem.h>
+#include <fcntl.h>
+#include <sys\stat.h>
+#include <errno.h>
+#include <stdio.h>
+#include <dos.h>
+#pragma hdrstop
+