📄 dhlp016.asm
字号:
;************************************************************************
;* MODULE INFORMATION*
;**********************
;* FILE NAME: dhlp016.asm
;* SYSTEM NAME: devlib
;* ORIGINAL AUTHOR(S): Paul Lemmers
;* VERSION NUMBER:
;* CREATION DATE: 1990/8/14
;*
;* DESCRIPTION:
;* Contains DevHelp VirtToPhys function.
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION: $Revision: 1.1 $
;* WORKFILE: $Workfile: dhlp016.asm $
;* LOGINFO: $Log: D:/CPROG/MYDEV/DEVLIB/VCS/DHLP016.ASV $
;*
;* Rev 1.1 17 Dec 1990 14:31:02 PAUL
;* included devhlp.inc and os2def.h types
;*
;* Rev 1.0 14 Aug 1990 14:36:48 PAUL
;* Initial revision.
;************************************************************************/
;
INCLUDE cdev.inc
INCLUDE devhlp.inc
_DATA SEGMENT
EXTRN _DevHelp:DWORD
_DATA ENDS
_TEXT SEGMENT
PUBLIC _dev_VirtToPhys
;************************************************************************
;* NAME: dev_VirtToPhys
;* SYNOPSIS: USHORT dev_VirtToPhys(void far *vptr, PULONG paddr);
;* void far *vptr Virtual address
;* PULONG *paddr Pointer to returned physical address
;* DESCRIPTION: See DevHelp documentation of VirtToPhys
;* UNMODIFIED REGISTERS:
;* ds bp si di
;* RETURNS: ax = 0 --> no error
;* else error code
;************************************************************************
vptr = 4
paddr = 8
_dev_VirtToPhys PROC NEAR
PUSH BP
MOV BP,SP
push si
push ds
mov ax,ds
mov es,ax ; let ES point to data segment
lds si,[bp+vptr]
mov dl,DevHlp_VirtToPhys
call es:[_DevHelp]
pop ds
jc $L000 ; jump if error
les si,[bp+paddr] ; get ptr to physical address
mov es:[si],bx ; save least sign. part
add si,2
mov es:[si],ax ; save most sign. part
xor ax,ax
jmp short $L001
$L000: mov ax,0ffffh
$L001: pop si ; restore si
POP BP
RET
_dev_VirtToPhys ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -