был баг при переполнении переменной окружения

This commit is contained in:
Tolik Trek 2026-05-02 05:26:10 +10:00
parent 507064e64f
commit c024399f44
5 changed files with 43 additions and 30 deletions

View File

@ -128,6 +128,7 @@ DELETE_LFN_RECORDS:
; <20>®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ª â «®£ 
;
; ¢å®¤: a =  âਡãâ § ¯¨á¨
; (MASKARE) = ¨¬ï ä ©« /¤¨à¥ªâ®à¨¨
; ¢ë室: de = ¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£ 
; (HANDBUF) = file's direcory record
; CF - ª â «®£ ­¥ ­ ©¤¥­

View File

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

View File

@ -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
; <20>®ª § âì á¨á⥬­®¥ ®ªà㦥­¨¥
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

View File

@ -7,6 +7,7 @@ SAVEHL: dw 0
; <20> §¡®à ¨ ¢ë¯®«­¥­¨¥ ¢¢¥¤¥­­ëå ª®¬ ­¤ ¨ ¨¬¥­ ä ©«®¢
;-------------------------------------------------------------
COMP: call EVALCMD ; (batch.asm)
RET C
ld hl,Buffers.input_line.Path
dec hl
ld c,(hl) ; ¤«¨­  áâப¨

@ -1 +1 @@
Subproject commit e1dc7ec10dc9c7e9153a05884e42973a57378a63
Subproject commit e9eb5c7c06a16b07f348992ee8ba3557cf5884c2