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
|
cpu 8086
|
||||||
org 0x100
|
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:
|
__0102:
|
||||||
db 13, 10, "The IBM Personal Computer EDITOR", 13, 10
|
db 13, 10, "The IBM Personal Computer EDITOR", 13, 10
|
||||||
|
@ -11,17 +17,26 @@ __0102:
|
||||||
__0150 db "Licensed Material - Program Property of IBM"
|
__0150 db "Licensed Material - Program Property of IBM"
|
||||||
|
|
||||||
|
|
||||||
db 0xBA, 0x5C, 0x09 ; 017B mov dx,0x95c
|
print_filename_missing_error: ; 017b
|
||||||
db 0xE9, 0xFB, 0x02 ; 017E jmp 0x47c
|
mov dx, filename_missing_error
|
||||||
db 0xC6, 0x06, 0x7F, 0x0A, 0x00 ; 0181 mov byte [0xa7f],0x0
|
|
||||||
db 0xBC, 0x48, 0x0D ; 0186 mov sp,0xd48
|
_trampoline_error_1:
|
||||||
db 0x82 ; 0189 db 0x82
|
jmp error
|
||||||
db 0x3E, 0x5D ; 018A ds pop bp
|
|
||||||
db 0x00, 0x20 ; 018C add [bx+si],ah
|
entrypoint: ; 0181
|
||||||
db 0x74, 0xEB ; 018E jz 0x17b
|
mov byte [0x0a7f], 0
|
||||||
db 0x0A, 0xC0 ; 0190 or al,al
|
mov sp, 0x0d48
|
||||||
db 0xBA, 0x41, 0x09 ; 0192 mov dx,0x941
|
|
||||||
db 0x75, 0xE7 ; 0195 jnz 0x17e
|
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 0xBE, 0x3E, 0x09 ; 0197 mov si,0x93e
|
||||||
db 0xBF, 0x65, 0x00 ; 019A mov di,0x65
|
db 0xBF, 0x65, 0x00 ; 019A mov di,0x65
|
||||||
db 0xB9, 0x03, 0x00 ; 019D mov cx,0x3
|
db 0xB9, 0x03, 0x00 ; 019D mov cx,0x3
|
||||||
|
@ -324,9 +339,12 @@ db 0xC3 ; 0474 ret
|
||||||
db 0xB4, 0x10 ; 0475 mov ah,0x10
|
db 0xB4, 0x10 ; 0475 mov ah,0x10
|
||||||
db 0xCD, 0x21 ; 0477 int 0x21
|
db 0xCD, 0x21 ; 0477 int 0x21
|
||||||
db 0xBA, 0xB9, 0x09 ; 0479 mov dx,0x9b9
|
db 0xBA, 0xB9, 0x09 ; 0479 mov dx,0x9b9
|
||||||
db 0xB4, 0x09 ; 047C mov ah,0x9
|
|
||||||
db 0xCD, 0x21 ; 047E int 0x21
|
error: ; 047c
|
||||||
db 0xCD, 0x20 ; 0480 int 0x20
|
mov ah, 9
|
||||||
|
int 0x21
|
||||||
|
int 0x20
|
||||||
|
|
||||||
db 0x8B, 0x16, 0x90, 0x0A ; 0482 mov dx,[0xa90]
|
db 0x8B, 0x16, 0x90, 0x0A ; 0482 mov dx,[0xa90]
|
||||||
db 0x8B, 0x3E, 0x92, 0x0A ; 0486 mov di,[0xa92]
|
db 0x8B, 0x3E, 0x92, 0x0A ; 0486 mov di,[0xa92]
|
||||||
db 0x3B, 0xDA ; 048A cmp bx,dx
|
db 0x3B, 0xDA ; 048A cmp bx,dx
|
||||||
|
|
Loading…
Reference in New Issue