-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
RET
; .NO_SCROLL:
; .CHAR: DZ "X"
;///////////////////////////////////////////////////////////////////////

View File

@ -1 +1 @@
65
66

View File

@ -323,8 +323,10 @@ CMDMODE:
ld b,a
inc hl ;+5
push bc
ld c,BIOS.LP_PRINT_LINE2 ; ¢ë¢®¤ áâப¨ ¡¥§  âਡã⮢
RST ToBIOS
LD C,Dss.PChars
RST ToDSS
;ld c,BIOS.LP_PRINT_LINE2 ; ¢ë¢®¤ áâப¨ ¡¥§  âਡã⮢
;RST ToBIOS
pop bc ; b=¤«¨­  áâப¨
ld a,(width_inpline) ; è¨à¨­  ¯®«ï ¢¢®¤  (76..48)
sub b
@ -403,7 +405,7 @@ EVALCMD: xor a
call EVALSTR
ld hl,Buffers.work.buffer2 ;work_buffer+256
ld de,Buffers.input_line.Path ; ªã¤ 
ld bc,255 ;!HARDCODE
ld bc,max_len_comline+2
.loop: LD A,C
DEC A
JR Z,.error
@ -413,10 +415,11 @@ EVALCMD: xor a
inc b
or a
jr nz,.loop
;
dec b
ld a,b
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨­  áâப¨ (edline.asm)
and a
;and a
ret
;
.error: LD (DE),A

View File

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

View File

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

View File

@ -553,6 +553,12 @@ T8C24: db "OFF",0
include 'Commands/set.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 "Free space from ",/H,$ + Struc_Buffers
assert ($ + Struc_Buffers) < (stack_point - stack_size), "Buffers can leack to stack!"

View File

@ -1,5 +1,5 @@
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
.Cur_X BYTE 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à  ¢ ¯à¥¤¥« å áâப¨
.Left_Shift BYTE 0 ;+3 X ᬥé. áâப¨ §  «¥¢ë© ªà © (¢ ᨬ¢®« å)

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