; NEW.ASM for E32 - Copyright (C) 1994 Douglas Herr ; all rights reserved ; clears the current file from the buffer include model.inc public new extrn yesno_message:near extrn top:near extrn mark:near include dataseg.inc extrn warning:byte ; color attribute for warning messages extrn dirty_bits:byte ; status flags extrn verify_msg:byte extrn filesel:word extrn filesiz:dword ; file size extrn buffersiz:dword ; bytes available in file buffer extrn filename:dword ; ptr to filename extrn mark_mode:byte extrn push_mode:byte extrn file_row:dword extrn key_status:byte extrn display_mode:byte @curseg ends include codeseg.inc new proc near test dirty_bits,10000000b ; has the file has been changed? jz short no_prompt mov key_status,0FFh mov ah,warning mov esi,offset verify_msg call yesno_message cmp al,'N' je short exit no_prompt: xor eax,eax mov display_mode,al mov push_mode,al mov ebx,filename ; get ptr to filename mov [ebx],al mov filesiz,eax and dirty_bits,00111111b cmp mark_mode,al je short mark_off call mark mark_off: mov file_row,1 or dirty_bits,00100000b ; flag top line refresh ; re-size file buffer mov ecx,1024 mov buffersiz,ecx mov bx,filesel sys ResMem32 call top mov al,'Y' exit: ret new endp @curseg ends end