mov word ptr cs:[_need_ext], 1
add bx, ax
+ mov si, offset _ext_table
+ mov cx, offset _ext_count
+
+.L106:
+
+ mov dx, di
+
push di
+ push cx
- mov al, '.'
- stosb
+ mov ax, cs:[si + 2]
+ mov cx, cs:[si]
- mov al, 'c'
- stosb
-
- mov al, 'o'
- stosb
+ add si, offset _ext_size
+ push si
- mov al, 'm'
- stosb
+ mov si, ax
+ rep movsb
+ push dx
jmp .L25
.L24:
mov word ptr cs:[_in_batch], 0
- mov ax, offset _ext_batch
+ mov ax, offset _ext_bat
push ax
call _strcmp
jc .L107
add sp, 4
+
+ cmp word ptr cs:[_need_ext], 1
+ jne .L101
+
+ pop si
+ pop cx
+ pop di
+
jmp .L101
.L104:
mov ax, HEX (4B00)
int HEX (21)
pop bx
- jnc .L101
+ jc .L103
+
+ cmp word ptr cs:[_need_ext], 1
+ jne .L101
- jmp .L103
+ pop si
+ pop cx
+ pop di
+
+ jmp .L101
.L107:
pop bx
pop ax
+ cmp word ptr cs:[_need_ext], 1
+ jne .L101
+
+ pop si
+ pop cx
+ pop di
+
jmp .L101
.L97:
.L98:
+ cmp word ptr cs:[_need_ext], 1
+ jne .L108
+
+ pop si
+ pop cx
+ pop di
+
+ dec cx
+ jnz .L106
+
+.L108:
+
mov bx, offset _err_invalid
call _writestr
_batch_flags: db "r", HEX (00)
_in_batch: dw HEX (0000)
-_ext_batch: db ".bat", HEX (00)
-
_ll_scratch: dw HEX (0000)
+
_fn_wild: db "*.*", HEX (00)
_dta_addr: dw HEX (0000)
_curr_drive: db HEX (00)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Commands.
+;; Commands and extensions.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
%include "cmdhash.gen"
+_ext_com: db ".com", HEX (00)
+_ext_bat: db ".bat", HEX (00)
+
_cmd_size: equ 6
+_ext_size: equ 4
+
+align 4
+_ext_table:
+
+ dw HEX (0004)
+ dw offset _ext_com
+
+ dw HEX (0004)
+ dw offset _ext_bat
+
+_ext_count: equ ($ - _ext_table) / _ext_size
align 4
_cmd_table: