54 lines
701 B
NASM
Executable File
54 lines
701 B
NASM
Executable File
.model tiny
|
|
.486
|
|
smart
|
|
.code
|
|
org 0100h
|
|
start:
|
|
jmp tsr
|
|
db '8253'
|
|
Tsr:
|
|
cli
|
|
cmp ax,1234h
|
|
jne nomore
|
|
mov ax,4321h
|
|
jmp itsok
|
|
nomore:
|
|
push bx
|
|
mov bl,ah
|
|
xor bh,bh
|
|
shl bx,1
|
|
mov bx,cs:[bx].tables
|
|
mov cs:current,bx
|
|
pop bx
|
|
call cs:current
|
|
itsok:
|
|
jnc noerror
|
|
push bp
|
|
mov bp,sp
|
|
or byte ptr [bp+6],1b
|
|
pop bp
|
|
mov ax,cs
|
|
shl eax,16
|
|
mov ax,cs:current
|
|
jmp endofint
|
|
noerror:
|
|
push bp
|
|
mov bp,sp
|
|
and byte ptr [bp+6],0FEh
|
|
pop bp
|
|
endofint:
|
|
sti
|
|
iret
|
|
current dw 0
|
|
tables dw enableirq
|
|
dw disableirq
|
|
dw readmaskirq
|
|
dw readirr
|
|
dw readisr
|
|
dw installhandler
|
|
dw replacehandler
|
|
dw getint
|
|
dw setint
|
|
dw seteoi
|
|
|