📄 mtrap.lst
字号:
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 + -