# ! $Source$ ! $State$ ! $Revision$ #include "libsysasm.h" ! .sys_cpyout: copy ecx bytes starting from ds:eax to the transfer ! buffer. Return eax := offset of transfer buffer in the real mode data ! segment. Preserve all other registers, except the flags. .extern .sys_cpyout .sys_cpyout: push ecx push edx push esi push edi xchg esi, eax movzx edi, (transfer_buffer_ptr) mov eax, edi mov es, (pmode_ds) mov edx, ecx shr ecx, 2 rep movs movb cl, dl andb cl, 3 rep movsb mov ecx, ss mov es, ecx pop edi pop esi pop edx pop ecx ret