diff --git a/edlin.asm b/edlin.asm index 6e23bde..e4a4830 100644 --- a/edlin.asm +++ b/edlin.asm @@ -218,7 +218,7 @@ setup_file_parameters: ; 01ec mov cx, [psp_segment_size] dec cx - mov [__0a98], cx + mov [last_valid_address], cx test byte [new_file_flag], 0xff jnz initialize_editor @@ -457,7 +457,7 @@ __0388: mov ah, sys_set_dta int 0x21 - mov cx, [__0a98] + mov cx, [last_valid_address] subw r_cx, r_dx jz _trampoline_oom_1 @@ -494,7 +494,8 @@ __03ca: std dec di - mov cx, [__0a98] + ; TODO: Why are we using last valid address as our loop counter? + mov cx, [last_valid_address] repne scasb inc di inc di @@ -1132,7 +1133,7 @@ __07d7: mov ax, [__0a9a] subw r_ax, r_dx addw r_ax, r_cx - cmp ax, [__0a98] + cmp ax, [last_valid_address] jnb oom xchg ax, [__0a9a] @@ -1183,7 +1184,7 @@ __082a: movw r_si, r_cx subw r_cx, r_di inc cx - mov di, [__0a98] + mov di, [last_valid_address] std rep movsb @@ -1240,7 +1241,7 @@ __088b: mov di, [__0a92] movw r_si, r_bp inc si - mov cx, [__0a98] + mov cx, [last_valid_address] subw r_cx, r_bp rep movsb dec di @@ -1377,7 +1378,7 @@ __0a92 resw 1 __0a94 resw 1 __0a96 resw 1 -__0a98 resw 1 +last_valid_address resw 1 ; 0a98 __0a9a resw 1