{D7+Win98, 不能用于 2000}
Unidad MainUnit;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, stdctrls;
tipo
TForm1 = class (tForm)
Botón 1: tbutton;
Button2: tbutton;
Button3: tbutton;
Procedimiento botón1Click (remitente: tobject);
procedimiento Button2Click (remitente: tobject);
procedimiento Button3Click (remitente: tobject);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
varilla
Form1: tform1;
implementación
{$ R *.dfm}
Velocidad del procedimiento (recuento: palabra); stdcall;
estúpido
ExceptionUsed = $ 03;
varilla
Idt: array [0..5] de byte;
lpoldgate: dword;
comenzar
ASM
sidt idt
Mov Ebx, DWORD PTR [IDT+2]
Agregar EBX, 8*Exceptionused
CLI
mov dx, palabra ptr [ebx+6]
shl edx, 16d
mov dx, palabra ptr [ebx]
mov [lpoldgate], edx
mov eax, compensación @@ ring0code
Mov Word Ptr [EBX], AX
Shr eax, 16d
Mov Word PTR [EBX+6], AX
int Exceptionused
Mov Ebx, DWORD PTR [IDT+2]
Agregar EBX, 8*Exceptionused
Mov edx, [lpoldgate]
Mov Word Ptr [EBX], DX
shr edx, 16d
Mov Word Ptr [EBX+6], DX
JMP @@ Salir
@@ ring0code:
mov al, $ 34
Fuera $ 43, AL
MOV AX, recuento
Fuera $ 40, Al
Mov al, ah
Fuera $ 40, Al
iretd
@@salida:
fin;
fin;
procedimiento tForm1.Button1Click (remitente: tobject);
comenzar
velocidad ($ 6000); // 慢
fin;
procedimiento tForm1.Button2Click (remitente: tobject);
comenzar
Velocidad ($ 1044);
fin;
procedimiento tForm1.Button3Click (remitente: tobject);
comenzar
velocidad ($ 500);
fin;
fin.