Ensure first argument is filename

This commit is contained in:
Juhani Krekelä 2021-07-30 00:55:57 +03:00
parent 1e2b59ad46
commit b802689b66
1 changed files with 33 additions and 15 deletions

View File

@ -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