mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
Правки CLP
This commit is contained in:
parent
c17ecd738f
commit
b90cabb44b
@ -361,7 +361,8 @@ _TST_PROC: CALL GETMEM
|
|||||||
;LD DE,CORE_BUFFERS.BUFFER+1
|
;LD DE,CORE_BUFFERS.BUFFER+1
|
||||||
LD DE,CORE_BUFFERS.BUFFER_CLP + 1
|
LD DE,CORE_BUFFERS.BUFFER_CLP + 1
|
||||||
CALL SCOPYS
|
CALL SCOPYS
|
||||||
LD A,#80 ;!HARDCODE cmd line size
|
;LD A,#80 ;!HARDCODE cmd line size
|
||||||
|
LD A,low CLP_Buffer
|
||||||
SUB B
|
SUB B
|
||||||
LD (CORE_BUFFERS.BUFFER_CLP),A
|
LD (CORE_BUFFERS.BUFFER_CLP),A
|
||||||
;
|
;
|
||||||
@ -406,33 +407,28 @@ _ret+1: JP 0 ;EXEC02.RET_1
|
|||||||
; áî¤ ¢®§¢à â ¨§ EXEC02.RET_1 ¨«¨ _RET_2
|
; áî¤ ¢®§¢à â ¨§ EXEC02.RET_1 ¨«¨ _RET_2
|
||||||
_TST_PROC_2:
|
_TST_PROC_2:
|
||||||
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
||||||
;
|
|
||||||
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER
|
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER
|
||||||
CALL M_PSP
|
CALL M_PSP
|
||||||
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
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 ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
LD DE,RETFAR ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
||||||
PUSH DE
|
PUSH DE
|
||||||
;PUSH HL
|
; Current Dir ;[x] 15/10/23
|
||||||
;!TEST Current Dir ;[x] 15/10/23
|
|
||||||
PUSH IX
|
PUSH IX
|
||||||
LD HL,CORE_BUFFERS.CurrentPath
|
LD HL,CORE_BUFFERS.CurrentPath
|
||||||
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
||||||
;
|
;
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.set_path
|
JR NZ,.set_path
|
||||||
|
;
|
||||||
CALL DIR_PATH_CHANGE.FullCurrent
|
CALL DIR_PATH_CHANGE.FullCurrent
|
||||||
LD HL,CORE_BUFFERS.CurrentPath
|
LD HL,CORE_BUFFERS.CurrentPath
|
||||||
.set_path: CALL CHDIR_FN
|
.set_path: CALL CHDIR_FN
|
||||||
POP IX
|
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)
|
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||||
EI
|
EI
|
||||||
@ -440,16 +436,17 @@ _TST_PROC_2:
|
|||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
; ! ¢ë§ë¢ ¥âáï ª®£¤ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
; ! ¢ë§ë¢ ¥âáï ª®£¤ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
||||||
M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
DEC H
|
DEC H ;!FIXIT ®âáâ㯠256 (CLP buffer + data) § ¤ ®â LD_ADDR
|
||||||
LD D,H
|
LD D,H
|
||||||
LD E,L
|
LD E,L
|
||||||
INC DE
|
INC DE
|
||||||
LD BC,#00FF ;!FIXIT
|
LD BC,#00FF ;!FIXIT à §¬¥à ¯®¤ ¡ãä¥à CLP
|
||||||
LD (HL),B
|
LD (HL),B
|
||||||
LDIR
|
LDIR
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
DEC H
|
DEC H
|
||||||
LD DE,#0080 ;!FIXIT
|
;LD DE,#0080 ;!FIXIT
|
||||||
|
LD DE,#0003 ;!FIXIT
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD XH,D
|
LD XH,D
|
||||||
@ -460,16 +457,16 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
INC C
|
INC C
|
||||||
LDIR
|
LDIR
|
||||||
EX DE,HL ;R06
|
EX DE,HL ;R06
|
||||||
LD (HL),B
|
;LD (HL),B
|
||||||
LD A,(TASK)
|
LD A,(TASK)
|
||||||
LD (IX-1),A
|
LD (IX-1),A
|
||||||
LD A,(EXE_MEM)
|
LD A,(EXE_MEM)
|
||||||
LD (IX-2),A
|
LD (IX-2),A
|
||||||
LD A,(EXE_FM)
|
LD A,(EXE_FM)
|
||||||
LD (IX-3),A
|
LD (IX-3),A
|
||||||
;R05
|
; â ª ¨áâ®à¨ç¥áª¨ á«®¦¨«®áì, çâ® ¤¢ 0 ¯®á«¥ ¯ à ¬¥â஢ áâப¨
|
||||||
INC HL
|
INC HL
|
||||||
LD (HL),B
|
;LD (HL),B
|
||||||
INC HL
|
INC HL
|
||||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||||
CALL CURDISK
|
CALL CURDISK
|
||||||
@ -480,45 +477,73 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
;!FIXIT âãâ ç¨â âì CURRDIR ¢ ®â¤¥«ìë© ¡ãä¥à ¨ ¨§ ¥£® ª®¯¨à®¢ âì ¢ HL ¡¥§ ¢ë室 § £à ¨æë ¡ãä¥à
|
||||||
|
LD HL,CORE_BUFFERS.BUFFER_CLP
|
||||||
CALL CURRDIR
|
CALL CURRDIR
|
||||||
;
|
;
|
||||||
POP HL
|
POP DE
|
||||||
XOR A
|
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
LD BC,#0100 ;!FIXIT ¥â ¯à¨¢ï§ª¨ ª CurrentDirectory.DEPTH
|
SBC HL,DE
|
||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
;!FIXIT ®âà ¡®â âì Z ¨ CF
|
||||||
DEC HL
|
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
|
DEC HL
|
||||||
LD A,'\' ;
|
LD A,'\' ;
|
||||||
CP (HL)
|
|
||||||
INC HL
|
|
||||||
JR Z,.YP_ESLA
|
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
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
|
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
|
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)
|
.loop: LD A,(HL)
|
||||||
CP C
|
CP C
|
||||||
JR C,.copy
|
JR C,.copy
|
||||||
|
;
|
||||||
INC HL
|
INC HL
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
XOR A
|
XOR A
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
LD B,#80
|
LD B,low CLP_Buffer
|
||||||
RET
|
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)
|
.loop2: LD A,(HL)
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC HL
|
INC HL
|
||||||
@ -526,6 +551,8 @@ SCOPYS: LD BC,#80*256 + ' '+1 ;!HARDCODE cmd line size
|
|||||||
CP C
|
CP C
|
||||||
RET C
|
RET C
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
|
; âã⠮訡ª - ᫨誮¬ ¤«¨ ï áâப ¯ à ¬¥â஢
|
||||||
|
INC B
|
||||||
RET
|
RET
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
ENVPATH: DB "PATH=",0
|
ENVPATH: DB "PATH=",0
|
||||||
@ -594,9 +621,11 @@ LEAVE: ;LD A,R
|
|||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD A,(ErrorLevel)
|
LD A,(ErrorLevel)
|
||||||
;R12
|
;R12
|
||||||
CP DSS_Error.sys.UNEXPECTED_APP_TRMN
|
CP DSS_Error.sys.UNEXPECTED_APP_TRMN ; #27 0010 0111 6
|
||||||
JR Z,.error_exit
|
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
|
JR NZ,.norm_exit
|
||||||
.error_exit: SCF
|
.error_exit: SCF
|
||||||
JP (HL)
|
JP (HL)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
STRUCT Input_Line
|
STRUCT Input_Line
|
||||||
.max_Len BYTE 254 ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
.max_Len BYTE 253 ;+0 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 fbc8d02bd696cba183b6440a5d1e01b12b128693
|
Subproject commit 51198ce44bd19f511b63e6fafaf91b3de5470f9d
|
||||||
Loading…
Reference in New Issue
Block a user