⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtrap.lst

📁 比dos下的debug更好的debug程序源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
Turbo Assembler	 Version 5.0	    08-31-98 14:27:45	    Page 1
mtrap.asm



      1					 ;
      2					 ; GRDB
      3					 ;
      4					 ; Copyright(c)	LADsoft
      5					 ;
      6					 ; David Lindauer, gclind01@starbase.spd.louisville.edu
      7					 ;
      8					 ;
      9					 ; mtrap.asm
     10					 ;
     11					 ; Function: handle the	all traps.  Int	3 and Int 1 are	debug traps and
     12					 ; are handled specially
     13						 ;MASM MODE
     14	    0000				 .model	small
     15						 .386
     16
     17	    0000				 .stack	1024
     18
     19					 include iversion.inc
1    20		  =000E			 verid = 14
     21					 include  eprints.inc
1    22					 PRINT_MESSAGE	 macro	 string
1    23						 call	 PrintFollowingMessage
1    24						 db	 string,0
1    25					 endm
1    26
1    27						 EXTRN	 printspace : PROC
1    28						 EXTRN	 printdword:PROC
1    29						 EXTRN	 printword:PROC
1    30						 EXTRN	 printbyte:PROC
1    31						 EXTRN	 scankey : PROC
1    32						 EXTRN	 crlf :	PROC
1    33
1    34						 EXTRN	 PureChar : PROC
1    35						 EXTRN	 PutChar : PROC
1    36						 EXTRN	 GetKey	: PROC
1    37						 EXTRN	 PrintFollowingMessage : PROC
1    38						 EXTRN	 olMessage : PROC
1    39						 EXTRN	 dgroupMessage : PROC
1    40
     41					 include  eregs.inc
1    42						 EXTRN	 ReadReg : PROC
1    43						 EXTRN	 DisplayRegisters : PROC
1    44						 EXTRN	 ModifyRegisters : PROC
1    45
     46					 include  einput.inc
1    47						 EXTRN	 qerr :	PROC
1    48						 EXTRN	 ReadNumber : PROC
1    49						 EXTRN	 ReadAddress : PROC
1    50						 EXTRN	 Inputhandler :	PROC
1    51						 EXTRN	 WadeSpace : PROC
1    52						 EXTRN	 GetInputLine :	PROC
1    53						 EXTRN	 WadeSpaceOnly : PROC
1    54						 EXTRN	 inputbuffer : byte
1    55					   EXTRN defDS : PROC
1    56					   EXTRN defCS : PROC
     57					 include  ebreaks.inc
Turbo Assembler	 Version 5.0	    08-31-98 14:27:45	    Page 2
mtrap.asm



1    58						 EXTRN	setbreak : PROC
1    59						 EXTRN	 breaks	: PROC
1    60						 EXTRN	enableBreaks : PROC
1    61						 EXTRN	 disableBreaks : PROC
1    62
     63					 include  eenv.inc
1    64						 EXTRN	 CopyEnv : PROC
1    65						 EXTRN	 TgtPgmEnvSeg :	word
1    66						 EXTRN	 TgtPgmEnvSpaceUsed: word
1    67						 EXTRN	 TgtPgmNamePtr : word
1    68						 EXTRN	 TgtPgmEnvLen :	word
1    69						 EXTRN	 SetEnvName : PROC
1    70						 EXTRN	 QualifyName : PROC
1    71
     72					 include  eloader.inc
1    73						 EXTRN	 MakeEmptyProg : PROC
1    74						 EXTRN	 userbasepsp : word
1    75						 EXTRN	 filelen : dword
1    76						 EXTRN	 loadcommand : byte
1    77						 EXTRN	 loadfile : byte
1    78						 EXTRN	 exeflag : byte
1    79						 EXTRN	 LoadProgram : proc
1    80						 EXTRN	 ParseProgName : PROC
1    81						 EXTRN	 ExeStats : PROC
1    82						 EXTRN	 lastexe : byte
1    83						 EXTRN	 lastip	: dword
1    84						 EXTRN	 lastcs: word
1    85
     86					 include  elogging.inc
1    87						 EXTRN	 LogToFile : PROC
1    88						 EXTRN	 CloseLogFile :	PROC
1    89						 EXTRN	 LoggingStat : PROC
1    90
     91					 include  edos.inc
1    92						 EXTRN	 SetUserPSP :PROC
1    93						 EXTRN	 SetDebugPSP : PROC
1    94						 EXTRN	 userpsp : word
1    95						 EXTRN	 int20handle : PROC
1    96						 EXTRN	 int21handle : PROC
1    97						 EXTRN	 UnLoadProgram : PROC
1    98						 EXTRN	 KillFiles : PROC
1    99						 EXTRN	 int1bh	: PROC
1   100						 EXTRN	 CtrlBrkPressedInDOS : byte
    101					 include  eMemory.inc
1   102						 EXTRN	 ResizeMem : PROC
1   103						 EXTRN	 ReleaseDebugMem : PROC
1   104						 EXTRN	 ReleaseMemory : PROC
1   105						 EXTRN	 tagarena : PROC
1   106
    107					 include  eints.inc
1   108						 EXTRN	 SetRMInts : PROC
1   109						 EXTRN	 IntSnapShot : PROC
1   110						 EXTRN	 UnLoadInts : PROC
1   111						 EXTRN	 ReleaseRMInts : PROC
1   112						 EXTRN	 SetVectAttrib : PROC
1   113						 EXTRN	 intpage : word
1   114						 EXTRN	 int21adr : dword
Turbo Assembler	 Version 5.0	    08-31-98 14:27:45	    Page 3
mtrap.asm



1   115						 EXTRN	 orgpic	: word
1   116						 EXTRN	 int20adr : dword
1   117
    118					 include  eexec.inc
1   119						 EXTRN	 trap :	PROC
1   120						 EXTRN	 go : PROC
1   121						 EXTRN	 proceed : PROC
1   122						 EXTRN	 callcheck : PROC
1   123						 EXTRN	 cmpstring : PROC
1   124						 EXTRN	 wadeprefix : PROC
1   125
    126					 include eoptions.inc
1   127						 EXTRN	 optdword : byte
1   128						 EXTRN	 optdwordcommand : byte
1   129						 EXTRN	 doopt : PROC
1   130						 EXTRN	 optdiv0 : byte
1   131						 EXTRN	 optpure : byte
1   132					   EXTRN optflat0 : byte
1   133					   EXTRN optsignedimm :	byte
1   134						 EXTRN	 ReadOptions : PROC
1   135						 EXTRN	 WriteOptions :	PROC
1   136						 EXTRN	 opthist : byte
1   137						 EXTRN	 Disassemble32Bit : byte
1   138						 EXTRN	 winshellchk : PROC
1   139					   EXTRN optdosio : byte
    140					 include eloader.inc
1   141						 EXTRN	 MakeEmptyProg : PROC
1   142						 EXTRN	 userbasepsp : word
1   143						 EXTRN	 filelen : dword
1   144						 EXTRN	 loadcommand : byte
1   145						 EXTRN	 loadfile : byte
1   146						 EXTRN	 exeflag : byte
1   147						 EXTRN	 LoadProgram : proc
1   148						 EXTRN	 ParseProgName : PROC
1   149						 EXTRN	 ExeStats : PROC
1   150						 EXTRN	 lastexe : byte
1   151						 EXTRN	 lastip	: dword
1   152						 EXTRN	 lastcs: word
1   153
    154					 include ehistory.inc
1   155						 EXTRN	 LoadHistory : PROC
1   156						 EXTRN	 EnterHistory :	PROC
1   157						 EXTRN	 CheckHistory:PROC
1   158					   EXTRN histoff : PROC
1   159						 EXTRN histon :	PROC
    160					 include eswift.inc
1   161						 EXTRN	 traceon : byte
1   162						 EXTRN	 swiftrace : PROC
1   163						 EXTRN	 untrace : proc
1   164
    165					 include efp.inc
1   166						 EXTRN	 fpcommand : PROC
1   167						 EXTRN	 floatcheck : PROC
1   168
    169					 include ehbreak.inc
1   170						 EXTRN	 hdwebreakcommand : PROC
1   171						 EXTRN	 hdwebreakenable : PROC
Turbo Assembler	 Version 5.0	    08-31-98 14:27:45	    Page 4
mtrap.asm



1   172						 EXTRN	 hdwebreakdisable : PROC
1   173						 EXTRN	 hdwechk : PROC
1   174
    175
    176						 public	 entry3,indos,entry1
    177						 PUBLIC	 RegdumpFLAGS,RegdumpEAX,RegdumpEBX,RegdumpECX,RegdumpEDX
    178						 PUBLIC	 RegdumpESI,RegdumpEDI,RegdumpEBP
    179						 PUBLIC	 RegdumpESP,RegdumpEIP
    180						 PUBLIC	 RegdumpCS,RegdumpES,RegdumpDS,RegdumpSS,RegdumpFS,RegdumpGS
    181						 PUBLIC	 TrapHandler, _exit, psp
**Error** mtrap.asm(43)	Undefined symbol: TrapHandler
    182						 PUBLIC	 reentry, grdbname, veclist, entry1
    183						 PUBLIC	 stackseg,stackofs, dosver
    184
    185						 extrn checkcpu	: PROC,	FileLoadErr : PROC, trapcount :	dword
    186						 extrn ReTrap :	PROC
    187						 EXTRN	 initflatreal:PROC, rundownflatreal : PROC
    188					 ;
    189					 ; CPU instruction trap	enable flag
    190					 ;
    191		  =0100			 TRAPFLAG = 100h
    192
    193	    0000				 .data
    194	    0000  0000			 stackofs	 dw	 0	 ;to restore out stack in INT1
    195	    0002  0000			 stackseg	 dw	 0
    196					 ;
    197					 ; Register image
    198					 ;
    199	    0004  00			 veclist db	 00h
    200	    0005  006Ar				 dw	 entry0
    201	    0007  01				 db	 1
    202	    0008  0077r				 dw	 entry1
    203	    000A  03				 db	 3
    204	    000B  008Er				 dw	 entry3
    205	    000D  1B				 db	 1bh
    206	    000E  0000e				 dw	 int1bh
    207	    0010  20				 db	 20h
    208	    0011  0000e				 dw	 int20handle
    209	    0013  21				 db	 21h
    210	    0014  0000e				 dw	 int21handle
    211	    0016  FF				 db	 0ffh	 ; trailer
    212	    0017  00000000		 RegdumpFLAGS	 dd	 0
    213	    001B  00000000		 RegdumpEAX	 dd	 0
    214	    001F  00000000		 RegdumpEBX	 dd	 0
    215	    0023  00000000		 RegdumpECX	 dd	 0
    216	    0027  00000000		 RegdumpEDX	 dd	 0
    217	    002B  00000000		 RegdumpESI	 dd	 0
    218	    002F  00000000		 RegdumpEDI	 dd	 0
    219	    0033  00000000		 RegdumpEBP	 dd	 0
    220	    0037  00000000		 RegdumpESP	 dd	 0
    221	    003B  00000000		 RegdumpEIP	 dd	 0
    222	    003F  0000			 RegdumpCS	 dw	 0
    223	    0041  0000			 RegdumpES	 dw	 0
    224	    0043  0000			 RegdumpDS	 dw	 0
    225	    0045  0000			 RegdumpSS	 dw	 0
    226	    0047  0000			 RegdumpFS	 dw	 0
    227	    0049  0000			 RegdumpGS	 dw	 0
Turbo Assembler	 Version 5.0	    08-31-98 14:27:45	    Page 5
mtrap.asm



    228					 ;
    229	    004B  0000			 dosver	 dw	 0
    230	    004D  0000			 haserr	 dw	 0	 ; If there is an error# on stack
    231	    004F  0000			 errnum	 dw	 0	 ; The error#
    232	    0051  0000			 trapnum dw	 0	 ; The trap#
    233	    0053  00000000		 indos	 dd	 0	 ; pointer to indos flag
    234	    0057  2A 2A	2A 2A 2A 2A 2A+	 grdbname	 db	 '********',0
    235		  2A 00
    236	    0060  0000			 psp	 dw	 0	 ;debugger PSP
    237	    0062  00			 neederr db	 0	 ;flag for file	load result from command line
    238
    239	    0063  00006790		 trappop dd	 6790h	 ;traps	that need to pop a value
    240
    241	    0067				 .code
    242	    0000  47 52	44 42 20 72 65+	 cpuerr	 db	 "GRDB requires	a 386 or better	processor",0
    243		  71 75	69 72 65 73 20+
    244		  61 20	33 38 36 20 6F+
    245		  72 20	62 65 74 74 65+
    246		  72 20	70 72 6F 63 65+
    247		  73 73	6F 72 00
    248	    0028  6E 6F	74 20 65 6E 6F+	 memerr	 db	 "not enough memory/corrupt arena",0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -