Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Locate_Byte_In_ROM
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vmm.inc
 
mov     al, Byte            ; byte to locate
VMMcall Locate_Byte_In_ROM
 
jc      not_found           ; carry set if byte not found
mov     [Location], eax     ; linear address of byte
 
The Locate_Byte_In_ROM service scans the system ROM for a specified byte.
Virtual devices use this service to locate single byte instructions, such as
the iret instruction, that must be protected from modification by programs
running in a virtual machine.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
Byte       Specifies the value of the byte to search for.
 
Return Value
 
If the carry flag is clear, the EAX register contains the linear address of
the byte. This address will be less than 1 megabyte. If the carry flag is
set, the byte was not found or the user has disabled the service.
 
Comments
 
Users can disable this service by setting to false the SystemROMBreakpoint
setting in the [386Enh] section of the SYSTEM.INI file.
 
Uses
 
EAX, Flags
 
                                      ♦