@foone May I insert some really old news? DOS already parses the command line for you, putting up to two file names into prepared FCB. Add a zero byte and you'll fine to use stream calls - or stay with FCB handling.Using a 128 bye loop does no longer make a notable speed difference with today's machines due all their huge blocks and caching...
https://archive.org/details/The_MS-DOS_Encyclopedia_Ray_Duncan/page/109/mode/1up?view=theater
Also, doing it as a com program (tiny memory model) saves the need to copy segment registers or care for them at all. Plain code like on an 8 bit CPU :))