diff --git a/DSS/FS/FAT.asm b/DSS/FS/FAT.asm index f021bad..4488b6f 100644 --- a/DSS/FS/FAT.asm +++ b/DSS/FS/FAT.asm @@ -128,6 +128,7 @@ DELETE_LFN_RECORDS: ; Поиск записи каталога в списке каталога ; ; вход: a = атрибут записи +; (MASKARE) = имя файла/директории ; выход: de = индекс записи в списке каталога ; (HANDBUF) = file's direcory record ; CF - каталог не найден diff --git a/SHELL/BATCH.ASM b/SHELL/BATCH.ASM index a33e30c..c59c74a 100644 --- a/SHELL/BATCH.ASM +++ b/SHELL/BATCH.ASM @@ -280,6 +280,7 @@ CMDMODE: ;xor a ;ld (D96A6),a ; (inline.asm) call EVALCMD ; (batch.asm) + RET C ;ld ix,T96AC ; нужно?? закоментарил (inline.asm) ;ld hl,T96AE ;;256 буфер (inline.asm) ld hl,Buffers.input_line.Path @@ -403,7 +404,11 @@ EVALCMD: xor a ld hl,Buffers.work.buffer2 ;work_buffer+256 ld de,Buffers.input_line.Path ; куда ld bc,255 ;!HARDCODE -.loop: ld a,(hl) +.loop: LD A,C + DEC A + JR Z,.error + ; + ld a,(hl) ldi inc b or a @@ -413,6 +418,12 @@ EVALCMD: xor a ld (Buffers.input_line.Symbols_Num),a ; длина строки (edline.asm) and a ret + ; +.error: LD (DE),A + LD A,DSS_Error.sys.ENV_ITEM_OVERFLOW + CALL print_err_message + SCF + RET ; HL - STRING WITH %VAR% EVALSTR: ld a,(hl) diff --git a/SHELL/Commands/SET.ASM b/SHELL/Commands/SET.ASM index 3eba9b9..9209ff3 100644 --- a/SHELL/Commands/SET.ASM +++ b/SHELL/Commands/SET.ASM @@ -3,33 +3,33 @@ ; SET. Установить переменную окружения ; ;/////////////////////////////////////////////////// -cmd_set:ld a,(de) ; ком-строка - or a - jr z,A85EE ; пустая - ; уст. переменную окружения - inc de - cp 9 - jr z,cmd_set - cp " "+1 - jr c,cmd_set - dec de - ex de,hl - ld bc,Dss.Environ.Set - RST ToDSS - call c,print_err_message ; вывод сообщения - ret +cmd_set: ld a,(de) ; ком-строка + or a + jr z,A85EE ; пустая + ; уст. переменную окружения + inc de + cp 9 + jr z,cmd_set + cp " "+1 + jr c,cmd_set + dec de + ex de,hl + ld bc,Dss.Environ.Set + RST ToDSS + call c,print_err_message ; вывод сообщения + ret ; Показать системное окружение -A85EE: ;ld hl,T9186 ; куда - ld hl,Buffers.work.buffer1; - ld bc,Dss.Environ.Read ; получить сист. окружение - RST ToDSS - ;ld hl,T9186 - ld hl,Buffers.work.buffer1; -A85F8: ld c,Dss.PChars - RST ToDSS - call newline - ld a,(hl) - or a ; конец сист. окружения ? - jr nz,A85F8 ; нет - ret +A85EE: ;ld hl,T9186 ; куда + ld hl,Buffers.work.buffer1; + ld bc,Dss.Environ.Read ; получить сист. окружение + RST ToDSS + ;ld hl,T9186 + ld hl,Buffers.work.buffer1; +A85F8: ld c,Dss.PChars + RST ToDSS + call newline + ld a,(hl) + or a ; конец сист. окружения ? + jr nz,A85F8 ; нет + ret diff --git a/SHELL/EXEC.ASM b/SHELL/EXEC.ASM index 9f78156..24dbe3f 100644 --- a/SHELL/EXEC.ASM +++ b/SHELL/EXEC.ASM @@ -7,6 +7,7 @@ SAVEHL: dw 0 ; Разбор и выполнение введенных команд и имен файлов ;------------------------------------------------------------- COMP: call EVALCMD ; (batch.asm) + RET C ld hl,Buffers.input_line.Path dec hl ld c,(hl) ; длина строки diff --git a/Shared_Includes b/Shared_Includes index e1dc7ec..e9eb5c7 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit e1dc7ec10dc9c7e9153a05884e42973a57378a63 +Subproject commit e9eb5c7c06a16b07f348992ee8ba3557cf5884c2