Ints.inc
[ Return to Browse Source Page ]
; Ints.inc
; Standard Interrupt Handlers
; Hangs on CPU Errors, Issues EOI's on PIC-generated Int's.
Default_Interrupt:
iretd
deadend:
mov eax, offset fault_dead_end_msg
jmp faults
Fault_2:
in al,070h ; Masks NMI.
and al,080h ; This may or may not prevent double and triple faulting
out 070h,al ; from NMI's being triggered during the BSOD procedure.
; Note: If proper BSOD recovery is implemented, UNMASK NMI!
mov eax,offset fault_2_msg
jmp Faults
Fault_8:
pop ebp
mov eax,offset fault_8_msg
jmp Faults_1
Fault_A:
pop ebp
mov eax,offset fault_A_msg
jmp Faults_1
Fault_B:
pop ebp
mov eax,offset fault_B_msg
jmp Faults_1
Fault_C:
pop ebp
mov eax,offset fault_C_msg
jmp Faults_1
Fault_D:
pop ebp
mov eax,offset fault_D_msg
jmp Faults_1
Fault_0:
mov eax,offset fault_0_msg
jmp Faults
Fault_1:
mov eax,offset fault_1_msg
jmp Faults
Fault_3:
mov eax,offset fault_3_msg
jmp Faults
Fault_4:
mov eax,offset fault_4_msg
jmp Faults
Fault_5:
mov eax,offset fault_5_msg
jmp Faults
Fault_6:
mov eax,offset fault_6_msg
jmp Faults
Fault_7:
mov eax,offset fault_7_msg
jmp Faults
Fault_9:
mov eax,offset fault_9_msg
jmp Faults
Fault_E:
mov eax,offset fault_E_msg
jmp Faults
Fault_10:
mov eax,offset fault_10_msg
jmp Faults
Fault_reserved:
mov eax,offset fault_F_msg
;jmp Faults
Faults:
xor ebp,ebp
Faults_1:
cld
push PDA
pop ds
mov bl,040h
mov byte ptr ds:[PDA_StdStyle],bl
push OS_Data
pop ds
movzx eax,ax
push eax
call redscreen
mov ax,071Ch
call set_cursor
mov esi,offset blue_death
call print
mov ax,0A15h
call set_cursor
mov esi,offset cpu_fault_msg
call print
mov ax,0C15h
call set_cursor
mov esi,offset cpu_fault_msg2
call print
pop esi
call print
mov al,"."
call print_char
mov ax,0E15h
call set_cursor
mov esi,offset cpu_fault_msg3
call print
pop ebx;off
pop eax;seg
push ebx;off
push eax;seg
call print_hex_16
mov al,':'
call print_char
mov eax,ebx
call print_hex_32
mov al,"."
call print_char
mov ax,0F15h
call set_cursor
mov esi,offset cpu_fault_msg5
call print
pop eax;seg
pop esi;off
call get_flat_addr
push 10
pop ecx
cs_eip_bytes_loop:
mov al,020h
call print_char
lodsb
call print_hex
loop cs_eip_bytes_loop
push OS_Data
pop ds
mov ax,01522h
call set_cursor
mov esi,offset gameover
call Print
mov ax,0161Dh
call set_cursor
mov esi,offset zelda_gameover
call Print
or ebp,ebp
jz pausereset
mov ax,01115h
call set_cursor
mov esi,offset cpu_fault_msg4
call print
mov eax,ebp
call print_hex_32
mov al,"."
call print_char
jmp pausereset
Download this file.
[ Return to Browse Source Page ]
Copyright 2000, Ed Pizzi