Interrupt 2Fh Function 1680h


mov     ax, 1680h   ; Release Current VM Time-Slice
int     2Fh         ; multiplex interrupt

Release Current VM Time-Slice (Interrupt 2Fh Function 1680h) directs Windows to suspend the time slice of the current VM and start a new time slice for another VM. MS-DOS programs use this function when they are idle, such as when waiting for user input, to allow Windows to run other programs that are not idle.

This function has no parameters.

Only non-Windows programs should use Release Current VM Time-Slice; Windows applications should yield by calling the WaitMessage function. A program can call this function at any time, even when running in environments other than Windows environment. If the current environment does not support the function, the function returns and the program continues execution.

Windows suspends the current VM only if there is another VM scheduled to run. If no other VM is ready, the function returns to the program and execution continues. A program should call the function frequently (for example, once during each pass of the program's idle loop) to give Windows ample opportunity to check for other VMs that are ready for execution.

Before calling this function, a program should check that the Interrupt 2Fh address is not zero.

Example

The following example checks for for a valid Interrupt 2Fh address, then releases the current VM time slice:


    mov     ax, 352Fh       ; Get Interrupt Vector
    int     21h

    mov     ax, es
    or      ax, bx
    jz      Skip_Idle_Call  ; es:bx is equal to 0:0

    mov     ax, 1680h       ; otherwise, Release Current VM Time-Slice
    int     2Fh
Skip_Idle_Call: