-bug с выводом строки в BAT

This commit is contained in:
Tolik Trek 2026-05-13 05:19:53 +10:00
parent b90cabb44b
commit f389fbb938
8 changed files with 43 additions and 24 deletions

View File

@ -122,8 +122,4 @@ PUTCHAR: LD C,0
; ;
POP HL POP HL
RET RET
; .NO_SCROLL:
; .CHAR: DZ "X"
;/////////////////////////////////////////////////////////////////////// ;///////////////////////////////////////////////////////////////////////

View File

@ -1 +1 @@
65 66

View File

@ -323,8 +323,10 @@ CMDMODE:
ld b,a ld b,a
inc hl ;+5 inc hl ;+5
push bc push bc
ld c,BIOS.LP_PRINT_LINE2 ; ¢ë¢®¤ áâப¨ ¡¥§  âਡã⮢ LD C,Dss.PChars
RST ToBIOS RST ToDSS
;ld c,BIOS.LP_PRINT_LINE2 ; ¢ë¢®¤ áâப¨ ¡¥§  âਡã⮢
;RST ToBIOS
pop bc ; b=¤«¨­  áâப¨ pop bc ; b=¤«¨­  áâப¨
ld a,(width_inpline) ; è¨à¨­  ¯®«ï ¢¢®¤  (76..48) ld a,(width_inpline) ; è¨à¨­  ¯®«ï ¢¢®¤  (76..48)
sub b sub b
@ -403,7 +405,7 @@ EVALCMD: xor a
call EVALSTR call EVALSTR
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,max_len_comline+2
.loop: LD A,C .loop: LD A,C
DEC A DEC A
JR Z,.error JR Z,.error
@ -413,10 +415,11 @@ EVALCMD: xor a
inc b inc b
or a or a
jr nz,.loop jr nz,.loop
;
dec b dec b
ld a,b ld a,b
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 .error: LD (DE),A

View File

@ -57,6 +57,7 @@ input_line:
ld (cursor_position),de ; Y/X ¯®§¨æ¨ï ªãàá®à  ld (cursor_position),de ; Y/X ¯®§¨æ¨ï ªãàá®à 
call clear_inpline ; ®ç¨áâ¨âì áâàãªâãàã ~input line~ call clear_inpline ; ®ç¨áâ¨âì áâàãªâãàã ~input line~
call print_compath ; ¢ë¢¥á⨠¯ãâì + ­®¢ ï è¨à¨­  ¯®«ï ¢¢®¤  call print_compath ; ¢ë¢¥á⨠¯ãâì + ­®¢ ï è¨à¨­  ¯®«ï ¢¢®¤ 
call print_inpline
jp event_input_line ; ­  ®¡à ¡. áâப¨ ¢¢®¤  jp event_input_line ; ­  ®¡à ¡. áâப¨ ¢¢®¤ 
@ -98,6 +99,7 @@ print_compath:
ld a,">" ld a,">"
ld bc,1*256 + BIOS.LP_PRINT_SYM ; ᨬ¢®« ¡¥§  âਡãâ  ld bc,1*256 + BIOS.LP_PRINT_SYM ; ᨬ¢®« ¡¥§  âਡãâ 
RST ToBIOS RST ToBIOS
RET
;jr print_inpline ; ¢ë¢®¤ áâப¨ ¢¢®¤  ;jr print_inpline ; ¢ë¢®¤ áâப¨ ¢¢®¤ 
;------------------------------------------------- ;-------------------------------------------------
; ‚뢮¤ áâப¨ ~input line~ ­  íªà ­ ; ‚뢮¤ áâப¨ ~input line~ ­  íªà ­
@ -156,7 +158,7 @@ print_inpline:
ld e,(iy + Input_Line.Cur_X) ;+2 ⥪. ¯®«®¦. ªãàá®à  ¢ áâப¥ ld e,(iy + Input_Line.Cur_X) ;+2 ⥪. ¯®«®¦. ªãàá®à  ¢ áâப¥
add a,e add a,e
cp width_inpline.MAX ; è¨à¨­  íªà ­  cp width_inpline.MAX ; è¨à¨­  íªà ­ 
jr c,prne1__ jr c,.prne1
ld b,width_inpline.MAX-1 ld b,width_inpline.MAX-1
sub b sub b
ld d,a ; "­ ¥§¤" §  ¯à ¢ë© ªà © ld d,a ; "­ ¥§¤" §  ¯à ¢ë© ªà ©
@ -164,7 +166,7 @@ print_inpline:
sub d sub d
ld (iy + Input_Line.Cur_X),a ;+2 ­®¢®¥ ¯®«®¦. ªãàá®à  ld (iy + Input_Line.Cur_X),a ;+2 ­®¢®¥ ¯®«®¦. ªãàá®à 
ld a,b ld a,b
prne1__:ld (cursor_position),a ; X ¯®«®¦. ªãàá®à  ­  íªà ­¥ .prne1: ld (cursor_position),a ; X ¯®«®¦. ªãàá®à  ­  íªà ­¥
ret ret
; ¢å®¤: HL - ¯®«­ë© ¯ãâì ; ¢å®¤: HL - ¯®«­ë© ¯ãâì
@ -367,7 +369,7 @@ inpline_work:
add a,(iy + Input_Line.Left_Shift) add a,(iy + Input_Line.Left_Shift)
cp (iy + Input_Line.max_Len) cp (iy + Input_Line.max_Len)
;ret nc ;ret nc
JR NC,LastChar_BEEP JR NC,NoMoreChars_BEEP
bit 7,(iy + Input_Line.ReadyString) bit 7,(iy + Input_Line.ReadyString)
;ret nz ;ret nz
JR NZ,NoMoreChars_BEEP JR NZ,NoMoreChars_BEEP
@ -424,22 +426,34 @@ no_insert:
pop de ; ¢®ááâ. ¡ « ­á á⥪  pop de ; ¢®ááâ. ¡ « ­á á⥪ 
input_line_done: input_line_done:
ret ret
LastChar_BEEP: ; LastChar_BEEP:
;!TODO ¥á«¨ ᨬ¢®«ë ¯à¨¢ëᨫ¨ ¬ ªá¨¬ «ì­®¥ ç¨á«®, â® ­  íªà ­¥ ; ; ¥á«¨ ᨬ¢®«ë ¯à¨¢ëᨫ¨ ¬ ªá¨¬ «ì­®¥ ç¨á«®, â® ­  íªà ­¥
; ¢ áâப¥ ®áâ ñâáï íå® ­ ¦ â®© ª« ¢¨è¨, ª®â®à ï ­¥ ¢«¥§«  ; ; ¢ áâப¥ ®áâ ñâáï íå® ­ ¦ â®© ª« ¢¨è¨, ª®â®à ï ­¥ ¢«¥§« 
; ¨ ¢¨á¨â ¤® ­ ¦ â¨ï ®ç¥à¥¤­®© ª« ¢¨è¨. ˆá¯à ¢¨âì. ; ; ¨ ¢¨á¨â ¤® ­ ¦ â¨ï ®ç¥à¥¤­®© ª« ¢¨è¨. ˆá¯à ¢¨âì.
LD A,7 ;ASCII BELL ; LD A,7 ;ASCII BELL
LD C,Dss.PutChar ; LD C,Dss.PutChar
JP ToDSS ; JP ToDSS
;!FIXIT SCROLL ᤥ« âì 㦥 ä㭪樨 ¤®á  ¤«ï ¯¥ç â¨ ¢ ª®­á®«ì ¡¥§ áªà®«« 
NoMoreChars_BEEP: NoMoreChars_BEEP:
;!TODO ¥á«¨ ᨬ¢®«ë ¯à¨¢ëᨫ¨ ¬ ªá¨¬ «ì­®¥ ç¨á«®, â® ­  íªà ­¥ ;!TODO ¥á«¨ ᨬ¢®«ë ¯à¨¢ëᨫ¨ ¬ ªá¨¬ «ì­®¥ ç¨á«®, â® ­  íªà ­¥
; ¢ áâப¥ ®áâ ñâáï íå® ­ ¦ â®© ª« ¢¨è¨, ª®â®à ï ­¥ ¢«¥§«  ; ¢ áâப¥ ®áâ ñâáï íå® ­ ¦ â®© ª« ¢¨è¨, ª®â®à ï ­¥ ¢«¥§« 
; ¨ ¢¨á¨â ¤® ­ ¦ â¨ï ®ç¥à¥¤­®© ª« ¢¨è¨. ˆá¯à ¢¨âì. ; ¨ ¢¨á¨â ¤® ­ ¦ â¨ï ®ç¥à¥¤­®© ª« ¢¨è¨. ˆá¯à ¢¨âì.
LD A,7 ;ASCII BELL LD DE,(cursor_position)
LD C,Dss.Locate
RST ToDSS
PUSH DE
LD C,Dss.RdChar
RST ToDSS ; A - ᨬ¢®«, B -  âਡãâ
POP DE
LD A,' ' ; ᨬ¢®«
LD C,Dss.WrChar ; #58
RST ToDSS
LD A,7 ;ASCII BELL
LD C,Dss.PutChar LD C,Dss.PutChar
JP ToDSS JP ToDSS
; ‘®¡ë⨥ - ªãàá. ª« ¢¨è¨ ¨«¨ ª®¬¡¨­ æ¨¨ ; ‘®¡ë⨥ - ªãàá. ª« ¢¨è¨ ¨«¨ ª®¬¡¨­ æ¨¨
EvComComb: EvComComb:
ld b,(hl) ;+1 what ld b,(hl) ;+1 what

View File

@ -8,8 +8,8 @@ SAVEHL: dw 0
;------------------------------------------------------------- ;-------------------------------------------------------------
COMP: call EVALCMD ; (batch.asm) COMP: call EVALCMD ; (batch.asm)
RET C RET C
ld hl,Buffers.input_line.Path ld hl,Buffers.input_line.Path - 1
dec hl ;dec hl
ld c,(hl) ; か┃<E3818B> 痰牀<E797B0> ld c,(hl) ; か┃<E3818B> 痰牀<E797B0>
ld b,0 ld b,0
inc hl ; Buffers.input_line.Path inc hl ; Buffers.input_line.Path

View File

@ -553,6 +553,12 @@ T8C24: db "OFF",0
include 'Commands/set.asm' ; § ¤ âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï include 'Commands/set.asm' ; § ¤ âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
include 'Commands/reboot.asm' ; á®äâ à¥á¥â include 'Commands/reboot.asm' ; á®äâ à¥á¥â
; ;
DISPLAY "bat_params: ",/H,Buffers.bat_params, ". Size: ",/H, BAT_PARAMS, " End: ",/H, Buffers.bat_params + BAT_PARAMS - 1
DISPLAY "screen_path: ",/H,Buffers.screen_path, ". Size: ",/H, 2 + max_screen_path + 1, " End: ",/H, Buffers.screen_path + (2 + max_screen_path + 1) - 1
DISPLAY "sys_path: ",/H,Buffers.sys_path, ". Size: ",/H, 256, " End: ",/H, Buffers.sys_path + 255
DISPLAY "input_line: ",/H,Buffers.input_line, ". Size: ",/H, Input_Line, " End: ",/H, Buffers.input_line + Input_Line - 1
DISPLAY "history: ",/H,Buffers.history, ". Size: ",/H, history_size, " End: ",/H, Buffers.history + history_size - 1
DISPLAY "work: ",/H,Buffers.work, ". Size: ",/H, Work, " End: ",/H, Buffers.work + Work - 1
DISPLAY "Empty space for buffers from ",/H,$ DISPLAY "Empty space for buffers from ",/H,$
DISPLAY "Free space from ",/H,$ + Struc_Buffers DISPLAY "Free space from ",/H,$ + Struc_Buffers
assert ($ + Struc_Buffers) < (stack_point - stack_size), "Buffers can leack to stack!" assert ($ + Struc_Buffers) < (stack_point - stack_size), "Buffers can leack to stack!"

View File

@ -1,5 +1,5 @@
STRUCT Input_Line STRUCT Input_Line
.max_Len BYTE 253 ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢ .max_Len BYTE max_len_comline ;+0 .max_Len-1=254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
.ReadyString BYTE 0 ;+1 ä« £ ReadyString .ReadyString BYTE 0 ;+1 ä« £ ReadyString
.Cur_X BYTE 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à  ¢ ¯à¥¤¥« å áâப¨ .Cur_X BYTE 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à  ¢ ¯à¥¤¥« å áâப¨
.Left_Shift BYTE 0 ;+3 X ᬥé. áâப¨ §  «¥¢ë© ªà © (¢ ᨬ¢®« å) .Left_Shift BYTE 0 ;+3 X ᬥé. áâப¨ §  «¥¢ë© ªà © (¢ ᨬ¢®« å)

@ -1 +1 @@
Subproject commit 51198ce44bd19f511b63e6fafaf91b3de5470f9d Subproject commit d2ba40c4620459681fdc5eb8d4cadcb50eb79aa8