home *** CD-ROM | disk | FTP | other *** search
- /****************************************
- * *
- * Servis for trace. *
- * Sourse code in ftrace.asm *
- * Make by M.Potanin. *
- *****************************************/
- #include<dos.h>
-
- extern struct cpu_stat{ /* stract of processor's stat*/
- unsigned ax;
- unsigned bx;
- unsigned cx;
- unsigned dx;
- unsigned si;
- unsigned di;
- unsigned bp;
- union{
- struct{
- unsigned sp;
- unsigned ss;}Words;
- void far * stack; /*Far stack pointer */
- }stack;
- unsigned ds;
- unsigned es;}save_stat;
-
- struct blkret{ /*Bloc of return in stack*/
- union {
- struct{
- unsigned ip;
- unsigned cs;
- }Words;
- void far * point;
- }CS_IP;
- unsigned flags;
- };
-
- #define topstack ((struct blkret far *)save_stat.stack.stack)
- /* Top of stack as return's bloc*/
- #define top ((unsigned int far *)save_stat.stack.stack)
- /*Stack as word array*/
- #define topb ((unsigned char *)save_stat.stack.stack)
- /*Stack as byte array*/
- #define adress ((void far *)(topstack->CS_IP.point))
- /*The adres of last command*/
- #define last_command ((unsigned char far *)(topstack->CS_IP.point))
- /*Last command in execution stream*/
-
- void near step(void); /*Make one step */
- void interrupt ftrace(void); /*Procedure of int1 */
-
- typedef void(far * funct)();
- typedef void interrupt (far * interr)();
-
- /*-------------------------ftrace.h------------------------------*/
-