Windows


- 4


; EAX - ( )

;

; WARNINGS ()

;

; NOTES ()

; ,

; .

;

; .

;

; CALLS ()

 

BeginProc Port_IO_Callback, NO_LOG

Dispatch_Byte_IO Fall_through,Port_Output_Callback

 

Port_Input_Callback:

call CheckOwner

jc short ioexit

mov al,bFakeData

or bFakeData,FAKE_STAT_ERROR ;

ioexit:

ret

 

Port_Output_Callback:

call CheckOwner

jc short ioexit ; -,

test al,FAKE_CTL_START

jnz short,poc1 ;, -

test bFakeData,FAKE_START_BUSY

jz short,poc1 ;,

test bFakeData,FAKE_START_IRQ

jz short,poc1 ;, IRQ

push eax

push edx

and bFakeData,NOT (FAKE_STAT_ERROR) ;

mov eax,100 ; 1/10

mov edx,hOwner ;

mov esi,OFFSET32 TimeoutProc

VMMcall Set_VM_Time_Out

pop edx

pop eax

or esi,esi

jz short,poc1 ;,

and bFakeData,NOT (FAKE_STAT_BUSY) ;

or bFakeData,FAKE_STAT_ERROR ;

mov hTimeout,esi ; -

poc1:

test al,FAKE_CTL_EOI

jnz short poc2 ; , EOI

test bFakeData,FAKE_STAT_IRQ ; ?

jnz short poc2 ; ,

or bFakeData,FAKE_STAT_IRQ ;, -

push eax

mov eax,hIRQ

VxDcall VPICD_Clear_Int_Request

pop eax

poc2:

ret

EndProc Port_IO_Callback




- -  - -  - -