Programmer's Toolkit
The Programmer's Toolkit from TransWare Enterprises Inc. contains various useful software development tools for Unix and DOS software developers working on Intel-based systems. The toolkit includes utilities to display, disassemble, and convert files in Unix COFF, Unix ELF, and Intel OMF formats.

Following is a list of the software development tools provided in the Programmer's Toolkit:

 

OTC This tool translates Intel/Microsoft OMF files into Unix ELF or COFF files. This tool is available as either a standalone utility code or a linkable code module which is an ideal back-end processor for cross-platform compilers and compiler vendors who support multiple platforms.
DOMF This tool displays the complete contents of each record type from Intel and Microsoft Object Module Format (OMF) files in human-readable form.
DELF This tool displays the complete contents of a Unix Executable and Linking Format (ELF) file in human-readable form.
DCOFF This tool displays the complete contents of Unix Common Object File Format (COFF) files in human-readable form.
DASM This tool disassembles Unix ELF and COFF files, converts object code to assembly code, and translates 16-bit code to 32-bit code.
FDUMP This tool displays a byte-image representation of a file in hexadecimal form.

OTC

OTC is a signficant software developers tool which translates Intel and Microsoft OMF files into Unix ELF or COFF files. This tool is available as either a standalone utility code or a linkable code module which is an ideal back-end processor for cross-platform compilers and compiler vendors who support multiple platforms with differing object code requirements.

 

OTC is advanced software technology which allows compiler vendors, cross-compiler vendors, and vendors who support multiple platforms to easily port their compiler technologies between DOS and Unix systems. OTC accomplishes its task by translating OMF object modules into Unix ELF and COFF formats. As ELF or COFF files, the translated object modules have native Unix object file attributes which allow the object modules to be linked with native Unix-generated modules to form fully executable Unix program files.

 

OTC is available as either a standalone utility code or as a linkable code module which can be integrated with your code generator programs. The utility code is an executable program that will convert OMF files to either ELF or COFF files. Several command line options permit the user to control the operation of OTC, including the generation of a detailed output listing which describes the complete contents of the OMF file in human-readable form. The linkable code module can be linked with your user program to generate ELF and COFF object files. This capability is a highly cost effective method for compiler vendors who support multiple platforms with different object code formats.

DOMF

DOMF is a software development tool which display the complete contents of each record type from Intel and Microsoft Object Module Format (OMF) files in human-readable form. DOMF is especially useful for compiler vendors who need to examine the details contained in these files. The type of each record is displayed along with the data contained in that record in hexadecimal form.

 

Sample output from DOMF:

******************************************
DOMF Release 1.00-90158
Display an OMF Object File
Copyright 1990 TransWare Enterprises Inc.
All Rights Reserved.
******************************************

   OMF Filename = t2.obj

Record No. 1 [THEADR]:
0000000 80 04 00 02 54 32 f4                             ....T2.

Record No. 2 [COMENT]:
0000007 88 1d 00 00 81 43 3a 5c 54 57 45 5c 44 4f 53 5c  .....C:\TWE\DOS\
0000017 46 37 37 4c 33 5c 46 37 37 4c 33 2e 4c 49 42 ac  F77L3\F77L3.LIB.

Record No. 3 [LNAMES]:
0000027 96 42 00 00 04 43 4f 44 45 08 46 37 37 4c 43 4f  .B...CODE.F77LCO
0000037 4d 4e 08 46 37 37 4c 44 41 54 41 08 46 37 37 4c  MN.F77LDATA.F77L
0000047 42 4c 4e 4b 03 5f 4c 54 03 5f 4e 54 01 54 07 5f  BLNK._LT._NT.T._
0000057 46 4c 47 32 52 54 06 44 47 52 4f 55 50 06 43 47  FLG2RT.DGROUP.CG
0000067 52 4f 55 50 64                                   ROUPd

DELF and DCOFF

DELF and DCOFF are software developer tools which display the complete contents of Unix Executable and Linking Format (ELF) files and Common Object File Format (COFF) files in human-readable format.

 

The records in the file are categorized and displayed as header records, section headers, symbol tables, relocation data, and raw data. This detailed information can beused by compiler vendors and run time library developers to evaluate and debug their object files.

 

Sample output from DELF and DCOFF:

**********************************************
Display_ELF                 Release 1.00-94222
     Display Contents of a UNIX ELF File
Copyright (c) 1994 TransWare Enterprises Inc.
All Rights Reserved.
**********************************************
ELF File Name = t2.o

ELF Header Record
******************
Starting File Pointer = 0h; Record Length = 52

ELF Magic Number . . (EI_MAG0-3) = 7Fh 'ELF'
File Class . . . . . .(EI_CLASS) = 1 (32-bit objects)
Data Encoding  . . . . (EI_DATA) = 1 (LSB in lowest address)
ELF header version .(EI_VERSION) = 1
Object File Type . . . .(e_type) = 1 (Relocatable file)
Processor  . . . . . (e_machine) = 3 (Intel 80386)
Object File Version  (e_version) = 1
Entry Address  . . . . (e_entry) = 0h
PgmHdr Table Offset  . (e_phoff) = 0h
ScnHdr Table Offset  . (e_shoff) = 1CCh
Header Size  . . . . .(e_ehsize) = 34h (52)
PgmHdr Entry Size  (e_phentsize) = 0h (0)
No. of PgmHdr Entries  (e_phnum) = 0
ScnHdr Entry Size  (e_shentsize) = 28h (40)
No. of Section Headers (e_shnum) = 7
StrTable Section No (e_shstrndx) = 6

Section Header Records
**********************
Number of Sections (including Null Section) = 7
File Pointer for Section Header Data = 1CCh; Record Length = 280

Section Name . . . . . . . . . (sh_name) = .text
Type . . . . . . . . . . . . . (sh_type) = 1h (SHT_PROGBITS)
Flags . . . . . . . . . . . . (sh_flags) = 6h
  SHF_ALLOC        Section occupies memory during execution
  SHF_EXECINSTR    Section contains executable instructions
Virtual Address  . . . . . . . (sh_addr) = 0h
File Ptr to Raw Data . . . . (sh_offset) = 34h
Number of Bytes in the Section (sh_size) = 60h (96)
Section Header Link  . . . . . (sh_link) = 0h
Section Header Info  . . . . . (sh_info) = 0h
Section Address Alignment (sh_addralign) = 4h
Size of Section Entries . . (sh_entsize) = 0

DASM

DASM is a software development tool which disassembles Unix ELF and COFF files, converts object code to assembly code, and translates 16-bit code to 32-bit code.

 

The records in the object files are categorized and displayed in a format similar to DCOFF except that the code segments are converted to 80x86 assembler code. DASM has an option to translate between 16-bit code and 32-bit code. The detailed information generated by DASM can be used by code developers to evaluate and debug object files and optimize code being developed.

 

Sample output from DASM:

RAW DATA
********
Section Name (sh_name) = .text  Size (sh_size) = 60h (96)
Physical Address = 0h; Section Offset = 34h
                                _MAIN:
                                T:
00000000 55                            PUSH    EBP
00000001 8b ec                         MOV     EBP,ESP
00000003 81 ec 18 00 00 00             SUB     ESP,18H
00000009 89 5d fc                      MOV     [EBP-04H],EBX
0000000c 89 75 f8                      MOV     [EBP-08H],ESI
0000000f 89 7d f4                      MOV     [EBP-0cH],EDI
00000012 c7 45 e8 a0 ff ff ff          MOV     DWORD PTR [EBP-18H],OFFSET .data
. . .
0000005c 5d                            POP     EBP
0000005d c3                            RET
0000005e 00 00                         ADD     [EAX],AL

FDUMP

FDUMP is a software development tool which displays byte-image representations of files in hexadecimal format. FDUMP is useful to any software developer who needs to examine the contents of any binary or text formatted files.

 

Sample output from FDUMP:

**********************************************
FDUMP                       Release 1.00-89182
   Byte-Image File Display Utility Program
Copyright (c) 1989 TransWare Enterprises Inc.
All Rights Reserved.
**********************************************
File: t2.o
Size: 740 bytes

 

00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00  .ELF............

00000010 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00  ................
00000020 cc 01 00 00 00 00 00 00 34 00 00 00 00 00 28 00  ........4.....(.
00000030 07 00 06 00 55 8b ec 81 ec 18 00 00 00 89 5d fc  ....U.........].
00000040 89 75 f8 89 7d f4 c7 45 e8 a0 ff ff ff c7 45 ec  .u..}..E......E.
00000050 01 00 00 00 8d 45 e8 50 6a fa 6a 41 e8 fc ff ff  .....E.Pj.jA....
00000060 ff 83 c4 0c 6a 41 c7 45 e8 a4 ff ff ff c7 45 ec  ....jA.E......E.
. . .
000002d0 61 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00  a...............
000002e0 00 00 00 00                                      ....