________________________________ TRACE 4.1 __________________________________
Disassembler, Debugger, Tracer
Copyright (c) 1994, August 1995, Daniel Nazarkiewicz, Paris.
All rigths reserved
1.WHAT IS THE PURPOSE OF THIS PRODUCT ?
This software offers to programmers the entire knowledge to program a PC,
to find out what is it hidden behind interrupt number 10h (video) for
instance but also to find out the secret of the hardware interrupt, and
hence, to discover the undocumented DOS and BIOS.
TRACE 4.1 is the ideal companion of your debuggers TD and CodeView.
TRACE 4.1 accelerates your Application Development.
2.WHAT CAN I GET FROM TRACE 4.1 ?
Five types of listing are generated with plus or less precision about the
code.
/LF option :
AX=0C12 BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
SS=E741 SP=0400 BP=091C STACK=4F42 4A4E 554F 2052 0024 0000 0000 0000 81B8
000005 E782:002C B00A MOV AL,0Ah
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
SS=E741 SP=0400 BP=091C STACK=4F42 4A4E 554F 2052 0024 0000 0000 0000 81B8
000006 E782:002E CD10 INT 10h
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
SS=E741 SP=03FA BP=091C STACK=0030 E782 7302 4F42 4A4E 554F 2052 0024 0000
000007 C000:2897 FB STI
.
.
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
SS=E741 SP=03FA BP=091C STACK=0030 E782 7302 4F42 4A4E 554F 2052 0024 0000
000076 C000:3C2F CF IRET
/LF and /L option ( without the stack's line )
AX=0C12 BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
000005 E782:002C B00A MOV AL,0Ah
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
000006 E782:002E CD10 INT 10h
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
000007 C000:2897 FB STI
.
.
AX=0C0A BX=00FF CX=0064 DX=0064 SI=0000 DI=0400 ES=E731 DS=E781 FLAGS=7302
000076 C000:3C2F CF IRET
/LN ( without the regiters and the stack's line )
000005 E782:002C B00A MOV AL,0Ah
000006 E782:002E CD10 INT 10h
000007 C000:2897 FB STI
.
.
000076 C000:3C2F CF IRET
/LS ( contains all the code previously executed, contains CMP, Jxxx, ... )
MOV AL,0Ah
INT 10h
STI
.
.
IRET
/LW ( does not contain CMP,TEST,Jxxx,CALL,JMP )
MOV AL,0Ah
INT 10h
STI
.
.
IRET
3.HOW CAN I GET THESE LISTINGS ?
First method :
You just type a simple program containing two important lines that are :
int 0AEh (you begin the debugging after this line)
Everything here will be traced (i.e: Read file, Set video mode,..)
int 0AFh (you stop the debugging at this point)
For instance, to trace the writing of a point in 12h VGA mode
INT 0AEH
MOV AH,0Ch
MOV BH,00h
MOV DX,64h
MOV CX,64h
MOV AL,0Ah
INT 10h ; TRACE 4.1 will go inside INT 10h
INT 0AFh
Second method :
If you want to trace a program which does not contain these two lines, you
give to TRACE 4.1 a scan code which will allow you to start tracing by
pressing this key, until full memory assigned of step by step.
4.OPTIONS OF TRACE 4.1
If you trace a long program or if you don't have enough memory, you have
the posibility to DISCARD a number of FIRST step by step you want.
You can have also a precise number of step by step, or a combination of
the two precedents modes (i.e: discard 100 first step by step, then take
5000 traces after).
You can disassemble bytes in conventionnal memory, you just specify the
number of disassembling line you want.
/Ec where c is the excutable file with full pathname if so, /Emyprog.com
/Fc where c is the 8 first caracters of the data file (without extension)
/Ij+ to record what's going on inside interrupt number j in hexa on 2 digits
/Ij- TRACE 4.1 traces all instructions beeing executed by interrupt, with
the intention of avoiding the stop of the debugging by the interrupt
routine. So, all software interrupts are traced but if you encounter
problems with one software interrupt, you can disable the trace by
default by using the /Ij- option (j in hexa on two digits)
/MXn to reserve block of 64 ko in XMS (n in decimal)
/MCn to reserve memroy in conventionnal memory, block of 64 ko (n in decimal)
/Sn to discard the n first step by step (n in decimal)
/Nn to take only n step by step (n in decimal)
/Cj starting tracing by pressing a key of scan code j (j in hexa on two digits)
For french keyboard, the 'A' scan code is in fact the 'Q' scan code: 10h
and so on... There is no problem for the US keyboard.
/Kj:j In combination of the /Cj option, the '/K ascii code : scan code' option
lets you to change in the BIOS's keyboard buffer the caracter given by
the /Cj by the /Kascii:scan. For instance the return key is 0dh like
ascii code and 1ch like scan code. (j are in hexa on two digits)
I want to begin trace by pressing the 'Q' (the 'A' in french keyboard),
and this key will be replaced by a return key in the BIOS.
/C10/K0d:1c
For instance:
-To trace int 10h and 13h and to get 3 files called mydata.lf, mydata.ln and
mydata.ls (myprog.exe contains int 0aeh .... int 0afh)
TRACE /Emyprog.com/Fmydata/Mx5/I10/I13/LF/LN/LS
-To disassemble bytes in memory from C000:2897 and to get 1 file called
mydata.ln
TRACE /Fmydata/Dc000:2897/LN
-To debug a program which doesn't contain int 0aeh ... int 0afh, to begin
trace by pressing the 'Q' (US keyboard or the 'A' in french keyboard) key
which will be replaced by the return key
TRACE /Emyprog.exe/Fmydata/MX5/LF/L/I21-/C10/K0d:1c
5.CAPACITIES OF TRACE 4.1
This product manages XMS memory up to 16 Mo, if you use the /L option
you can have a total of 2047 steps by block of 64 ko, otherwise, you can
have only 1169 steps. So, you are capable of debugging more than
490 000 steps.
TRACE 4.1 is made exclusively from 8086 code, it makes standard calls
system as much as possible.
Some problems may occur if you trace the 21h software interrupt while the
emm386.exe has been loaded at the boot, unload it from memory (anyway TRACE
4.1 doesn't use eXpanded memory). However, most of 21h software interrupt
functions can be debugged and traced while emm386.exe runs. If you have
decided to debug a program by the /Cj option by keeping emm386.exe
company, it is preferable you debug with the /I21- option, like this you
will never go inside 21h interrupt software and you will avoid problems.
If you want to debug the 21h interrupt software whatever it happens, the
best solution is to unload emm386.exe from the memory.
6.LIMITED VERSION
This is a limited version, some functions does not work at all, you are
limited to trace only 50 assembly instructions and you cannot discard the
first traces. The assembly file about tracing hardware interrupt is not
supplied.
To make an order of a complete version, print the order.txt file, fill out
and mail it in today.
7.TO CONTACT US
By Mail: Daniel Nazarkiewicz
72 Boulevard Mortier
Paris 75020
FRANCE
By Fax: (33)(1) 49.88.11.66
(33)(1) 43.25.25.48
By E-Mail: Available in the mid-september 1995, contact us to know it.
Until this date, you can contact us at
- 100530.1620 for Compuserse users
- [[Email Removed]]