INT 31H 0305H: Query State Save/Restore Addresses

                                                    Compatibility: DPMI 0.9+ 
 Expects: AX    0305H
          ──────────────────────────────────────────────────────────────────
 Returns: CF    NC (this fn always succeeds)
          AX    size of buffer, in bytes, required to save the state
          BX:CX real-mode address of routine to save/restore state
          SI:DI (or SI:EDI) protected mode addr of save/restore routine
          ──────────────────────────────────────────────────────────────────
    Info: This is used by applications which perform low-level mode
          switching.  It obtains the addresses of the DPMI routine which
          saves and restores the task state.

          See INT 31H 0306H (query raw mode-switch address) for related
          info.

       AX When you perform the call the "save/restore" state routine, you
          will need to supply this much memory (in bytes).

    BX:CX this address can be called by real-mode applications to save the
          state of a protected-mode task's registers, stack, etc.

 SI:(E)DI this address can be called by protected-mode applications to save
          the state of a real-mode task's registers, stack, etc.

          Both of these routines are accessed via FAR CALL and expect:

                   AL = requested action: 00H = save the state
                                          01H = restore the state
             ES:(E)DI = address of save/restore buffer

See Also: DPMI API
          INT 2fH: Multiplex Interrupt
          DOS Functions
                                    -♦-