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

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

View File

@ -280,6 +280,7 @@ CMDMODE:
;xor a ;xor a
;ld (D96A6),a ; (inline.asm) ;ld (D96A6),a ; (inline.asm)
call EVALCMD ; (batch.asm) call EVALCMD ; (batch.asm)
RET C
;ld ix,T96AC ; ­ã¦­®?? § ª®¬¥­â à¨« (inline.asm) ;ld ix,T96AC ; ­ã¦­®?? § ª®¬¥­â à¨« (inline.asm)
;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm) ;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
ld hl,Buffers.input_line.Path ld hl,Buffers.input_line.Path
@ -403,7 +404,11 @@ EVALCMD: xor a
ld hl,Buffers.work.buffer2 ;work_buffer+256 ld hl,Buffers.work.buffer2 ;work_buffer+256
ld de,Buffers.input_line.Path ; ªã¤  ld de,Buffers.input_line.Path ; ªã¤ 
ld bc,255 ;!HARDCODE ld bc,255 ;!HARDCODE
.loop: ld a,(hl) .loop: LD A,C
DEC A
JR Z,.error
;
ld a,(hl)
ldi ldi
inc b inc b
or a or a
@ -413,6 +418,12 @@ EVALCMD: xor a
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨­  áâப¨ (edline.asm) ld (Buffers.input_line.Symbols_Num),a ; ¤«¨­  áâப¨ (edline.asm)
and a and a
ret ret
;
.error: LD (DE),A
LD A,DSS_Error.sys.ENV_ITEM_OVERFLOW
CALL print_err_message
SCF
RET
; HL - STRING WITH %VAR% ; HL - STRING WITH %VAR%
EVALSTR: ld a,(hl) EVALSTR: ld a,(hl)

View File

@ -3,33 +3,33 @@
; SET. “áâ ­®¢¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï ; SET. “áâ ­®¢¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
; ;
;/////////////////////////////////////////////////// ;///////////////////////////////////////////////////
cmd_set:ld a,(de) ; ª®¬-áâப  cmd_set: ld a,(de) ; ª®¬-áâப 
or a or a
jr z,A85EE ; ¯ãáâ ï jr z,A85EE ; ¯ãáâ ï
; ãáâ. ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï ; ãáâ. ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
inc de inc de
cp 9 cp 9
jr z,cmd_set jr z,cmd_set
cp " "+1 cp " "+1
jr c,cmd_set jr c,cmd_set
dec de dec de
ex de,hl ex de,hl
ld bc,Dss.Environ.Set ld bc,Dss.Environ.Set
RST ToDSS RST ToDSS
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥­¨ï call c,print_err_message ; ¢ë¢®¤ á®®¡é¥­¨ï
ret ret
; <20>®ª § âì á¨á⥬­®¥ ®ªà㦥­¨¥ ; <20>®ª § âì á¨á⥬­®¥ ®ªà㦥­¨¥
A85EE: ;ld hl,T9186 ; ªã¤  A85EE: ;ld hl,T9186 ; ªã¤ 
ld hl,Buffers.work.buffer1; ld hl,Buffers.work.buffer1;
ld bc,Dss.Environ.Read ; ¯®«ãç¨âì á¨áâ. ®ªà㦥­¨¥ ld bc,Dss.Environ.Read ; ¯®«ãç¨âì á¨áâ. ®ªà㦥­¨¥
RST ToDSS RST ToDSS
;ld hl,T9186 ;ld hl,T9186
ld hl,Buffers.work.buffer1; ld hl,Buffers.work.buffer1;
A85F8: ld c,Dss.PChars A85F8: ld c,Dss.PChars
RST ToDSS RST ToDSS
call newline call newline
ld a,(hl) ld a,(hl)
or a ; ª®­¥æ á¨áâ. ®ªà㦥­¨ï ? or a ; ª®­¥æ á¨áâ. ®ªà㦥­¨ï ?
jr nz,A85F8 ; ­¥â jr nz,A85F8 ; ­¥â
ret ret

View File

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

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