; MERGE.ASM for E32 - Copyright (C) 1994 Douglas Herr ; all rights reserved include model.inc public merge extrn open_space:near extrn mload:near extrn memcopy:near extrn error:near extrn edit_filename:near fname equ [ebp-64] include dataseg.inc extrn cursor:dword extrn dirty_bits:byte extrn file_read_error:byte mrg_mes db 'Merge: ',0 @curseg ends include codeseg.inc merge proc near enter 64,0 mov byte ptr fname,0 lea esi,mrg_mes call edit_filename cmp ax,27 ; ESC key? je short exit ; done if so lea edx,fname call mload jnc short m0 lea edx,file_read_error call error clc jmp short exit m0: push ebx push eax call open_space ; ret: ES = filesel pop ecx ; sizeof new file pop ebx ; BX = new file selector xor esi,esi mov edi,cursor push ds mov ds,bx call memcopy pop ds sys RelMem or dirty_bits,10000001b exit: leave ret merge endp @curseg ends end