- Timestamp:
- Mar 29, 2017 1:24:53 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-c16-TrapRmV86Generic.asm
r64529 r66316 63 63 64 64 %macro Bs3TrapRmV86GenericEntryErrCd 1 65 push ax ; 1 byte: Save AX (BP(+2) + 2) 66 mov ax, i | 0ff00h ; 2 bytes: AL = trap/interrupt number; AH=indicate have error code. 67 jmp %1 ; 3 bytes: Jump to handler code 68 ALIGNCODE(8) 69 %assign i i+1 65 Bs3TrapRmV86GenericEntryNoErr %1 ; No error code pushed in real mode or V86 mode. 70 66 %endmacro 71 67 … … 113 109 ; Trap or interrupt with error code, faked if necessary. 114 110 ; 111 ; early 386+ stack (movzx ebp, sp): 112 ; [bp + 000h] ebp 113 ; [bp + 004h] ax 114 ; [bp + 006h] errcd [bp'+0] <--- bp at jmp to common code. 115 ; [bp + 008h] cs [bp'+2] 116 ; [bp + 00ah] ip [bp'+4] 117 ; [bp + 00ch] flags [bp'+6] 118 ; ([bp + 00eh] post-iret sp value) [bp'+8] 119 ; 115 120 BS3_PROC_BEGIN _bs3TrapRmV86GenericTrapOrInt 116 121 BS3_PROC_BEGIN bs3TrapRmV86GenericTrapOrInt … … 160 165 test ah, 0ffh 161 166 jz .no_error_code 162 ;; @todo Do voodoo checks for 'int xx' or misguided hardware interrupts.163 167 mov dx, [bp + 6] 164 168 mov [ss:bx + BS3TRAPFRAME.uErrCd], dx … … 211 215 test ah, 0ffh 212 216 jz .no_error_code 213 ;; @todo Do voodoo checks for 'int xx' or misguided hardware interrupts.214 217 mov dx, [bp + 4] 215 218 mov [ss:bx + BS3TRAPFRAME.uErrCd], dx
Note:
See TracChangeset
for help on using the changeset viewer.