Правки CLP

This commit is contained in:
Tolik Trek 2026-05-12 02:07:25 +10:00
parent c17ecd738f
commit b90cabb44b
3 changed files with 100 additions and 71 deletions

View File

@ -361,7 +361,8 @@ _TST_PROC: CALL GETMEM
;LD DE,CORE_BUFFERS.BUFFER+1
LD DE,CORE_BUFFERS.BUFFER_CLP + 1
CALL SCOPYS
LD A,#80 ;!HARDCODE cmd line size
;LD A,#80 ;!HARDCODE cmd line size
LD A,low CLP_Buffer
SUB B
LD (CORE_BUFFERS.BUFFER_CLP),A
;
@ -406,33 +407,28 @@ _ret+1: JP 0 ;EXEC02.RET_1
; á ¢®§¢à â ¨§ EXEC02.RET_1 ¨«¨ _RET_2
_TST_PROC_2:
; ! „ «¥¥ á⥪ ¢ ­ã«¥¢®© áâà ­¨æ¥! BIOS ¨ ­¥ DSS-MAIN ­¥ ¢ë§ë¢ âì
;
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER
CALL M_PSP
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
;
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
LD DE,#0080 ;!HARDCODE CLP_Buffer
XOR A
SBC HL,DE
EX DE,HL
LD XH,D
LD XL,E
;LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
LD DE,RETFAR ;  ¤à¥á ¯/¯ "­¥®¦¨¤ ­­®¥ § ¢¥à襭¨¥ ¯à®æ¥áá "
PUSH DE
;PUSH HL
;!TEST Current Dir ;[x] 15/10/23
; Current Dir ;[x] 15/10/23
PUSH IX
LD HL,CORE_BUFFERS.CurrentPath
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
;
OR A
JR NZ,.set_path
;
CALL DIR_PATH_CHANGE.FullCurrent
LD HL,CORE_BUFFERS.CurrentPath
.set_path: CALL CHDIR_FN
POP IX
; ¯à®¢¥àª  ­  ¯¥à¥¯®«­¥­¨¥ ¡ãä¥à  CLP
LD A,(CORE_BUFFERS.BUFFER_CLP)
LD B,DSS_Error.sys.ENV_ITEM_OVERFLOW
INC A
JP Z,LEAVE
;
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
EI
@ -440,16 +436,17 @@ _TST_PROC_2:
;-----------------------------------------------------------------------
; ! ¢ë§ë¢ ¥âáï ª®£¤  á⥪ ¢ ­ã«¥¢®© áâà ­¨æ¥!
M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
DEC H
DEC H ;!FIXIT ®âáâ㯠­  256 (CLP buffer + data) ­ § ¤ ®â LD_ADDR
LD D,H
LD E,L
INC DE
LD BC,#00FF ;!FIXIT
LD BC,#00FF ;!FIXIT à §¬¥à ¯®¤ ¡ãä¥à CLP
LD (HL),B
LDIR
EX DE,HL
DEC H
LD DE,#0080 ;!FIXIT
;LD DE,#0080 ;!FIXIT
LD DE,#0003 ;!FIXIT
ADD HL,DE
EX DE,HL
LD XH,D
@ -460,16 +457,16 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
INC C
LDIR
EX DE,HL ;R06
LD (HL),B
;LD (HL),B
LD A,(TASK)
LD (IX-1),A
LD A,(EXE_MEM)
LD (IX-2),A
LD A,(EXE_FM)
LD (IX-3),A
;R05
; â ª ¨áâ®à¨ç¥áª¨ á«®¦¨«®áì, çâ® ¤¢  0 ¯®á«¥ ¯ à ¬¥â஢ áâப¨
INC HL
LD (HL),B
;LD (HL),B
INC HL
;!FIXIT âãâ ¢®ááâ ­ ¢«¨¢ âì ¯à ¢¨«ì­ë© ª â «®£
CALL CURDISK
@ -480,45 +477,73 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
LD (HL),A
INC HL
PUSH HL
;!FIXIT âãâ ç¨â âì CURRDIR ¢ ®â¤¥«ì­ë© ¡ãä¥à ¨ ¨§ ­¥£® ª®¯¨à®¢ âì ¢ HL ¡¥§ ¢ë室  §  £à ­¨æë ¡ãä¥à 
LD HL,CORE_BUFFERS.BUFFER_CLP
CALL CURRDIR
;
POP HL
XOR A
LD BC,#0100 ;!FIXIT ­¥â ¯à¨¢ï§ª¨ ª CurrentDirectory.DEPTH
CPIR ;!FIXIT ­¥â ¯à®¢¥àª¨ ­  ¢ë室 ¯® BC=0
DEC HL
POP DE
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
SBC HL,DE
;!FIXIT ®âà ¡®â âì Z ¨ CF
LD B,H
LD C,L
;EX DE,HL
JR Z,.error_CLP
JR C,.error_CLP
; hl -  ¤à¥á ¢ CLP ¤«ï § ¯¨á¨ ¯®«­®£® ¨¬¥­¨ ¯à¨«®¦¥­¨ï á ¯ãâñ¬
; bc - ª®«¨ç¥á⢮ ®á⠢襣®áï ¬¥áâ  ¢ ¡ãä¥à¥
;
LD HL,CORE_BUFFERS.BUFFER_CLP
.copy_loop: CALL .copyAndCheck
JP PO,.error_CLP
;
EX DE,HL
DEC HL
LD A,'\' ;
CP (HL)
INC HL
JR Z,.YP_ESLA
LD (HL),A
INC HL
.YP_ESLA: EX DE,HL
.YP_ESLA: PUSH HL
PUSH BC
LD HL,MASKARE
LD DE,TMPNAME
CALL GetName
POP BC
POP DE
LD HL,TMPNAME
.loop: LD A,(HL)
LDI
CP ' '+1
JR NC,.loop
DEC DE
XOR A
LD (DE),A
LD (APPINFO.LAST_PSP_PTR),IX
;
CALL .copyAndCheck
LD (APPINFO.LAST_PSP_PTR),IX ; !FIXIT ᤥ« âì ç¥à¥§ á⥪ ¯¥à¥¬¥­­ëå?
RET
;
SCOPYS: LD BC,#80*256 + ' '+1 ;!HARDCODE cmd line size
.copyAndCheck: LD A,(HL)
AND A
LDI
RET Z
JP PE,.copyAndCheck
; ¥á«¨ ¬ë âãâ, â® ¡ãä¥à  ­¥ 墠⨫® ¨ ­ã¦­® ¢ë¤ ¢ âì ®è¨¡ªã
POP HL ; á­¨¬ ¥¬  ¤à¥á ¢®§¢à â 
;
.error_CLP: LD A,#FF
LD (CORE_BUFFERS.BUFFER_CLP),A
RET
SCOPYS: LD BC,256*(low CLP_Buffer) + ' '+1
.loop: LD A,(HL)
CP C
JR C,.copy
;
INC HL
DJNZ .loop
XOR A
LD (DE),A
LD B,#80
LD B,low CLP_Buffer
RET
;
.copy: LD BC,#80*256 + ' ' ;!HARDCODE cmd line size
.copy: LD BC,256*(low CLP_Buffer) + ' '
AND A
LD (DE),A
RET Z
;
.loop2: LD A,(HL)
LD (DE),A
INC HL
@ -526,6 +551,8 @@ SCOPYS: LD BC,#80*256 + ' '+1 ;!HARDCODE cmd line size
CP C
RET C
DJNZ .loop2
; âã⠮訡ª  - ᫨誮¬ ¤«¨­­ ï áâப  ¯ à ¬¥â஢
INC B
RET
;---------------------------------------------------------------------
ENVPATH: DB "PATH=",0
@ -594,9 +621,11 @@ LEAVE: ;LD A,R
EX DE,HL
LD A,(ErrorLevel)
;R12
CP DSS_Error.sys.UNEXPECTED_APP_TRMN
CP DSS_Error.sys.UNEXPECTED_APP_TRMN ; #27 0010 0111 6
JR Z,.error_exit
CP DSS_Error.sys.USER_ABORT
CP DSS_Error.sys.USER_ABORT ; #25 0010 0101 4
JR Z,.error_exit
CP DSS_Error.sys.ENV_ITEM_OVERFLOW ; #21 0010 0001 0
JR NZ,.norm_exit
.error_exit: SCF
JP (HL)

View File

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

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