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 .... |