AX=0006h [2.08] Open file Input: AX 0006h ES:SI null-terminated filename Output: SI file handle EAX length of file in bytes, or -1 CX file block size My patch only cares about the output registers (EAX, CX and SI) and only ES and SI are used inside pm_open_file(). So there is no need to pass (correct) EAX and CX register values to pm_open_file() nor restore ES; P_ES should still contain the correct input value on exit. Sebastian