Ensure first argument is filename
This commit is contained in:
parent
1e2b59ad46
commit
b802689b66
48
edlin.asm
48
edlin.asm
|
@ -1,7 +1,13 @@
|
|||
cpu 8086
|
||||
org 0x100
|
||||
|
||||
db 0xEB, 0x7F ; 0100 jmp short 0x181
|
||||
; FCB defines
|
||||
fcb_filename equ 1
|
||||
|
||||
; PSP defines
|
||||
psp_fcb_1 equ 0x005c
|
||||
|
||||
jmp entrypoint
|
||||
|
||||
__0102:
|
||||
db 13, 10, "The IBM Personal Computer EDITOR", 13, 10
|
||||
|
@ -11,17 +17,26 @@ __0102:
|
|||
__0150 db "Licensed Material - Program Property of IBM"
|
||||
|
||||
|
||||
db 0xBA, 0x5C, 0x09 ; 017B mov dx,0x95c
|
||||
db 0xE9, 0xFB, 0x02 ; 017E jmp 0x47c
|
||||
db 0xC6, 0x06, 0x7F, 0x0A, 0x00 ; 0181 mov byte [0xa7f],0x0
|
||||
db 0xBC, 0x48, 0x0D ; 0186 mov sp,0xd48
|
||||
db 0x82 ; 0189 db 0x82
|
||||
db 0x3E, 0x5D ; 018A ds pop bp
|
||||
db 0x00, 0x20 ; 018C add [bx+si],ah
|
||||
db 0x74, 0xEB ; 018E jz 0x17b
|
||||
db 0x0A, 0xC0 ; 0190 or al,al
|
||||
db 0xBA, 0x41, 0x09 ; 0192 mov dx,0x941
|
||||
db 0x75, 0xE7 ; 0195 jnz 0x17e
|
||||
print_filename_missing_error: ; 017b
|
||||
mov dx, filename_missing_error
|
||||
|
||||
_trampoline_error_1:
|
||||
jmp error
|
||||
|
||||
entrypoint: ; 0181
|
||||
mov byte [0x0a7f], 0
|
||||
mov sp, 0x0d48
|
||||
|
||||
ensure_file_argument:
|
||||
db 0x82, 0x3e ; cmp byte […], byte +… (extended)
|
||||
dw psp_fcb_1 + fcb_filename
|
||||
db ' '
|
||||
je print_filename_missing_error
|
||||
|
||||
db 0x0a, 0xc0 ; or al, al (longer encoding)
|
||||
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
|
||||
|
@ -324,9 +339,12 @@ db 0xC3 ; 0474 ret
|
|||
db 0xB4, 0x10 ; 0475 mov ah,0x10
|
||||
db 0xCD, 0x21 ; 0477 int 0x21
|
||||
db 0xBA, 0xB9, 0x09 ; 0479 mov dx,0x9b9
|
||||
db 0xB4, 0x09 ; 047C mov ah,0x9
|
||||
db 0xCD, 0x21 ; 047E int 0x21
|
||||
db 0xCD, 0x20 ; 0480 int 0x20
|
||||
|
||||
error: ; 047c
|
||||
mov ah, 9
|
||||
int 0x21
|
||||
int 0x20
|
||||
|
||||
db 0x8B, 0x16, 0x90, 0x0A ; 0482 mov dx,[0xa90]
|
||||
db 0x8B, 0x3E, 0x92, 0x0A ; 0486 mov di,[0xa92]
|
||||
db 0x3B, 0xDA ; 048A cmp bx,dx
|
||||
|
|
Loading…
Reference in New Issue