From aef2ee578c54554811f86c994656901bd26be55f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Fri, 30 Jul 2021 12:38:41 +0300 Subject: [PATCH] Replace absolute addresses with labels in entrypoint --- edlin.asm | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/edlin.asm b/edlin.asm index f4029b7..1d764b8 100644 --- a/edlin.asm +++ b/edlin.asm @@ -24,8 +24,8 @@ _trampoline_error_1: jmp error entrypoint: ; 0181 - mov byte [0x0a7f], 0 - mov sp, 0x0d48 + mov byte [__0a7f], 0 + mov sp, stack_end ensure_file_argument: db 0x82, 0x3e ; cmp byte […], byte +… (extended) @@ -37,11 +37,11 @@ ensure_file_argument: mov dx, invalid_name_error jnz _trampoline_error_1 -db 0xBE, 0x3E, 0x09 ; 0197 mov si,0x93e -db 0xBF, 0x65, 0x00 ; 019A mov di,0x65 -db 0xB9, 0x03, 0x00 ; 019D mov cx,0x3 -db 0xF3, 0xA6 ; 01A0 repe cmpsb -db 0x74, 0x42 ; 01A2 jz 0x1e6 + mov si, __093e + mov di, psp_fcb_1 + fcb_filename + 8 + mov cx, 3 + repe cmpsb + je __01e6 db 0xB4, 0x0F ; 01A4 mov ah,0xf db 0xBA, 0x5C, 0x00 ; 01A6 mov dx,0x5c db 0xCD, 0x21 ; 01A9 int 0x21 @@ -72,6 +72,8 @@ db 0x0A, 0xC0 ; 01DC or al,al db 0x74, 0x0C ; 01DE jz 0x1ec db 0xBA, 0x9B, 0x09 ; 01E0 mov dx,0x99b db 0xE9, 0x96, 0x02 ; 01E3 jmp 0x47c + +__01e6: db 0xBA, 0x78, 0x09 ; 01E6 mov dx,0x978 db 0xE9, 0x90, 0x02 ; 01E9 jmp 0x47c db 0x33, 0xC0 ; 01EC xor ax,ax @@ -868,3 +870,9 @@ __0a1a db "O.K.? $" __0a21 db "Line too long", 13, 10, '$' __0a31 db "End of input file", 13, 10, '$' __0a45 db "Abort edit (Y/N)? $" + +; 0a58 + +__0a7f equ 0x0a7f + +stack_end equ 0x0d48