📄 womp.gml
字号:
.np
The Turbo debugging format has good support for parameterized
functions.
Turbo Debug should have no problem finding parameters when asked for
them.
.np
Turbo Debug does not have a FORTRAN mode, so FORTRAN programs will appear
in C mode.
The FORTRAN COMPLEX data type will appear as a C struct with two
fields named "real" and "imag".
.np
Any other unconvertible type will appear as an array of unsigned
characters (bytes) of the appropriate size.
.*
.section Linking Turbo Debugger Executables
.*
.np
.ix 'Turbo Linker'
.ix 'TLINK'
Once all object files required by the application are converted
to the appropriate format, the application must be linked by the
vendor's linker.
The following is an example using the Borland linker, "TLINK".
.syntax
tlink /m /n /v /s [obj],[exe],[map],\watcom\lib286\clibs.lib
.esyntax
.pc
where
.sy [obj]
is a list of object file names,
.sy [exe]
is the name of the executable image file,
and
.sy [map]
is the name of the map file.
.* .remark
.* A special startup file must be included when linking the application
.* with the Turbo Linker.
.* The file "TSTART_?" (where "?" is one of S, M, C, L, H corresponding
.* to the memory model)
.* .us must
.* be the first file that is included when linking the application.
.* This file will guarantee that segments are included in the executable
.* image in the correct order.
.* .eremark
.np
.ix 'Turbo Debugger'
The application is now ready to be debugged by Borland's Turbo
Debugger.
.*
.section Dumping Debugging Information - The "dx" Option
.*
.if '&lang' eq 'C' or '&lang' eq 'C/C++' .do begin
:set symbol="ccmd16" value="wcc".
:set symbol="ccmd32" value="wcc386".
:cmt. .if '&machine' eq '8086' .do begin
.np
The following are 16-bit examples.
.tinyexam begin
&prompt.&ccmd16 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting hello.OBJ
Miscellaneous Information
-------------------------
Processor : 8086
Memory Model : Small
Floating-point : Inline Emulation
Optimized : Yes
Lines Present : No
Types Present : No
Symbs Present : No
Source Language : C
.tinyexam end
.tinyexam begin
&prompt.&ccmd16 &sw.d1 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting hello.OBJ
Miscellaneous Information
-------------------------
Processor : 8086
Memory Model : Small
Floating-point : Inline Emulation
Optimized : Yes
Lines Present : Yes
Types Present : No
Symbs Present : No
Source Language : C
.tinyexam end
.tinyexam begin
&prompt.&ccmd16 &sw.d2 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting hello.OBJ
Miscellaneous Information
-------------------------
Processor : 8086
Memory Model : Small
Floating-point : Inline Emulation
Optimized : Yes
Lines Present : Yes
Types Present : Yes
Symbs Present : Yes
Source Language : C
.code break
Type Information
----------------
0x0000: RESERVED
.code break
0x0001: RESERVED
.code break
0x0002: INTEGER size 0x00000008 bits SIGNED
.code break
0x0003: INTEGER size 0x00000008 bits UNSIGNED
.code break
0x0004: INTEGER size 0x00000010 bits SIGNED
.code break
0x0005: INTEGER size 0x00000010 bits UNSIGNED
.code break
0x0006: INTEGER size 0x00000020 bits SIGNED
.code break
0x0007: INTEGER size 0x00000020 bits UNSIGNED
.code break
0x0008: REAL size 0x00000020 bits
.code break
0x0009: REAL size 0x00000040 bits
.code break
0x000a: VOID
.code break
0x000b: POINTER size 0x00000010 bits base_type 0x0003 NEAR
.code break
0x000c: TYPEDEF size 0x00000008 bits
scope none type 0x0003 name "char"
.code break
0x000d: TYPEDEF size 0x00000008 bits
scope none type 0x0003 name "char"
.code break
0x000e: POINTER size 0x00000010 bits base_type 0x0002 NEAR
.code break
0x000f: PROCEDURE
NEAR ret_type 0x000e num_parms 00
.code break
0x0010: POINTER size 0x00000010 bits base_type 0x000c NEAR
.code break
0x0011: ARRAY_ZERO size 0x00000010 bits
base_type 0x0010 high_bound 0x00000000
.code break
0x0012: STRUCT size 0x00000070 bits num_entries 0x0008
bit_offset 0x00000000 type 0x0010 name "_ptr"
bit_offset 0x00000010 type 0x0004 name "_cnt"
bit_offset 0x00000020 type 0x0010 name "_base"
bit_offset 0x00000030 type 0x0005 name "_flag"
bit_offset 0x00000040 type 0x0004 name "_handle"
bit_offset 0x00000050 type 0x0005 name "_bufsize"
bit_offset 0x00000060 type 0x0003 name "_ungotten"
bit_offset 0x00000068 type 0x0003 name "_tmpfchar"
.code break
0x0013: TYPEDEF size 0x00000070 bits
scope struct type 0x0012 name "__iobuf"
.code break
0x0014: ARRAY_ZERO size 0x000008c0 bits
base_type 0x0013 high_bound 0x00000013
.code break
0x0015: ARRAY_ZERO size 0x00000140 bits
base_type 0x0005 high_bound 0x00000013
.code break
0x0016: POINTER size 0x00000010 bits base_type 0x0013 NEAR
.code break
0x0017: POINTER size 0x00000010 bits base_type 0x000d NEAR
.code break
0x0018: POINTER size 0x00000010 bits base_type 0x0006 NEAR
.code break
0x0019: POINTER size 0x00000010 bits base_type 0x000a NEAR
.code break
0x001a: POINTER size 0x00000010 bits base_type 0x0006 NEAR
.code break
0x001b: POINTER size 0x00000010 bits base_type 0x000a NEAR
.code break
0x001c: POINTER size 0x00000010 bits base_type 0x0010 NEAR
.code break
0x001d: ARRAY_ZERO size 0x00000070 bits
base_type 0x0003 high_bound 0x0000000d
.code break
0x001e: TYPEDEF size 0x00000020 bits
scope none type 0x0006 name "fpos_t"
.code break
0x001f: TYPEDEF size 0x00000010 bits
scope none type 0x0011 name "__va_list"
.code break
0x0020: TYPEDEF size 0x00000010 bits
scope none type 0x0005 name "size_t"
.code break
0x0021: TYPEDEF size 0x00000070 bits
scope none type 0x0013 name "FILE"
.code break
0x0022: PROCEDURE
NEAR ret_type 0x000a num_parms 00
.code break
Symbol Information
------------------
CHANGE_SEG
data 00 00 00 00
fixup SEG_REL POINTER Frame: TARGET Target: SI(0x0001)
BLOCK name "main" type 0x0022 start_offset 0x00000000 size 0x00000017
PROLOG size 09 ret_addr_offset 0x00000002
EPILOG size 04
BLOCK_END
.tinyexam end
:cmt. .do end
:cmt. .if '&machine' eq '80386' .do begin
.np
The following are 32-bit examples.
.tinyexam begin
&prompt.&ccmd32 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting calendar.OBJ
Miscellaneous Information
-------------------------
Processor : 80386
Memory Model : Flat
Floating-point : 80x87 Inline Code
Optimized : Yes
Lines Present : No
Types Present : No
Symbs Present : No
Source Language : C
.tinyexam end
.tinyexam begin
&prompt.&ccmd32 &sw.d1 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting calendar.OBJ
Miscellaneous Information
-------------------------
Processor : 80386
Memory Model : Flat
Floating-point : 80x87 Inline Code
Optimized : Yes
Lines Present : Yes
Types Present : No
Symbs Present : No
Source Language : C
.tinyexam end
.tinyexam begin
&prompt.&ccmd32 &sw.d2 calendar
&prompt.womp &sw.f- &sw.dx calendar
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting calendar.OBJ
Miscellaneous Information
-------------------------
Processor : 80386
Memory Model : Flat
Floating-point : 80x87 Inline Code
Optimized : Yes
Lines Present : Yes
Types Present : Yes
Symbs Present : Yes
Source Language : C
.code break
Type Information
----------------
0x0000: RESERVED
.code break
0x0001: RESERVED
.code break
0x0002: INTEGER size 0x00000008 bits SIGNED
.code break
0x0003: INTEGER size 0x00000008 bits UNSIGNED
.code break
0x0004: INTEGER size 0x00000010 bits SIGNED
.code break
0x0005: INTEGER size 0x00000010 bits UNSIGNED
.code break
0x0006: INTEGER size 0x00000020 bits SIGNED
.code break
0x0007: INTEGER size 0x00000020 bits UNSIGNED
.code break
0x0008: TYPEDEF size 0x00000008 bits
scope none type 0x0003 name "char"
.code break
0x0009: TYPEDEF size 0x00000008 bits
scope none type 0x0003 name "char"
.code break
0x000a: TYPEDEF size 0x00000020 bits
scope none type 0x0007 name "size_t"
.code break
0x000b: POINTER size 0x00000020 bits base_type 0x0008 NEAR 386
.code break
0x000c: ARRAY_ZERO size 0x00000020 bits
base_type 0x000b high_bound 0x00000000
.code break
0x000d: TYPEDEF size 0x00000020 bits
scope none type 0x000c name "__va_list"
.code break
0x000e: STRUCT size 0x000000d0 bits num_entries 0x0008
bit_offset 0x00000000 type 0x000b name "_ptr"
bit_offset 0x00000020 type 0x0006 name "_cnt"
bit_offset 0x00000040 type 0x000b name "_base"
bit_offset 0x00000060 type 0x0007 name "_flag"
bit_offset 0x00000080 type 0x0006 name "_handle"
bit_offset 0x000000a0 type 0x0007 name "_bufsize"
bit_offset 0x000000c0 type 0x0003 name "_ungotten"
bit_offset 0x000000c8 type 0x0003 name "_tmpfchar"
.code break
0x000f: TYPEDEF size 0x000000d0 bits
scope struct type 0x000e name "__iobuf"
.code break
0x0010: TYPEDEF size 0x000000d0 bits
scope none type 0x000f name "FILE"
.code break
0x0011: TYPEDEF size 0x00000020 bits
scope none type 0x0006 name "fpos_t"
.code break
0x0012: TYPEDEF size 0x00000020 bits
scope none type 0x0006 name "fpos_t"
.code break
0x0013: TYPEDEF size 0x00000010 bits
scope none type 0x0005 name "wchar_t"
.code break
0x0014: STRUCT size 0x00000040 bits num_entries 0x0002
bit_offset 0x00000000 type 0x0006 name "quot"
bit_offset 0x00000020 type 0x0006 name "rem"
.code break
0x0015: TYPEDEF size 0x00000040 bits
scope none type 0x0014 name "div_t"
.code break
0x0016: STRUCT size 0x00000040 bits num_entries 0x0002
bit_offset 0x00000000 type 0x0006 name "quot"
bit_offset 0x00000020 type 0x0006 name "rem"
.code break
0x0017: TYPEDEF size 0x00000040 bits
scope none type 0x0016 name "ldiv_t"
.code break
0x0018: TYPEDEF size 0x00000010 bits
scope none type 0x0005 name "wchar_t"
.code break
0x0019: VOID
.code break
0x001a: PROCEDURE
NEAR 386 ret_type 0x0019 num_parms 00
.code break
0x001b: POINTER size 0x00000020 bits base_type 0x001a NEAR 386
.code break
0x001c: TYPEDEF size 0x00000020 bits
scope none type 0x001b name "onexit_t"
.code break
0x001d: TYPEDEF size 0x00000020 bits
scope none type 0x0006 name "ptrdiff_t"
.code break
0x001e: TYPEDEF size 0x00000020 bits
scope none type 0x0007 name "time_t"
.code break
0x001f: TYPEDEF size 0x00000020 bits
scope none type 0x0007 name "clock_t"
.code break
0x0020: STRUCT size 0x00000120 bits num_entries 0x0009
bit_offset 0x00000000 type 0x0006 name "tm_sec"
bit_offset 0x00000020 type 0x0006 name "tm_min"
bit_offset 0x00000040 type 0x0006 name "tm_hour"
bit_offset 0x00000060 type 0x0006 name "tm_mday"
bit_offset 0x00000080 type 0x0006 name "tm_mon"
bit_offset 0x000000a0 type 0x0006 name "tm_year"
bit_offset 0x000000c0 type 0x0006 name "tm_wday"
bit_offset 0x000000e0 type 0x0006 name "tm_yday"
bit_offset 0x00000100 type 0x0006 name "tm_isdst"
.code break
0x0021: TYPEDEF size 0x00000120 bits
scope struct type 0x0020 name "tm"
.code break
0x0022: STRUCT size 0x00000120 bits num_entries 0x0009
bit_offset 0x00000000 type 0x0006 name "tm_sec"
bit_offset 0x00000020 type 0x0006 name "tm_min"
bit_offset 0x00000040 type 0x0006 name "tm_hour"
bit_offset 0x00000060 type 0x0006 name "tm_mday"
bit_offset 0x00000080 type 0x0006 name "tm_mon"
bit_offset 0x000000a0 type 0x0006 name "tm_year"
bit_offset 0x000000c0 type 0x0006 name "tm_wday"
bit_offset 0x000000e0 type 0x0006 name "tm_yday"
bit_offset 0x00000100 type 0x0006 name "tm_isdst"
.code break
0x0023: TYPEDEF size 0x00000120 bits
scope struct type 0x0022 name "tm"
.code break
0x0024: TYPEDEF size 0x00000020 bits
scope none type 0x0007 name "time_t"
.code break
0x0025: STRUCT size 0x000000e0 bits num_entries 0x0007
bit_offset 0x00000000 type 0x0007 name "eax"
bit_offset 0x00000020 type 0x0007 name "ebx"
bit_offset 0x00000040 type 0x0007 name "ecx"
bit_offset 0x00000060 type 0x0007 name "edx"
bit_offset 0x00000080 type 0x0007 name "esi"
bit_offset 0x000000a0 type 0x0007 name "edi"
bit_offset 0x000000c0 type 0x0007 name "cflag"
.code break
0x0026: TYPEDEF size 0x000000e0 bits
scope struct type 0x0025 name "DWORDREGS"
.code break
0x0027: STRUCT size 0x000000e0 bits num_entries 0x0007
bit_offset 0x00000000 type 0x0005 name "ax"
bit_offset 0x00000020 type 0x0005 name "bx"
bit_offset 0x00000040 type 0x0005 name "cx"
bit_offset 0x00000060 type 0x0005 name "dx"
bit_offset 0x00000080 type 0x0005 name "si"
bit_offset 0x000000a0 type 0x0005 name "di"
bit_offset 0x000000c0 type 0x0007 name "cflag"
.code break
0x0028: TYPEDEF size 0x000000e0 bits
scope struct type 0x0027 name "WORDREGS"
.code break
0x0029: STRUCT size 0x00000070 bits num_entries 0x0008
bit_offset 0x00000000 type 0x0003 name "al"
bit_offset 0x00000008 type 0x0003 name "ah"
bit_offset 0x00000020 type 0x0003 name "bl"
bit_offset 0x00000028 type 0x0003 name "bh"
bit_offset 0x00000040 type 0x0003 name "cl"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -