mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31: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_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
|
||||
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
|
||||
; 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,65 +457,93 @@ 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
|
||||
ADD A,'A'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,':'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
PUSH HL
|
||||
CALL CURRDIR
|
||||
;
|
||||
POP HL
|
||||
XOR A
|
||||
LD BC,#0100 ;!FIXIT ¥â ¯à¨¢ï§ª¨ ª CurrentDirectory.DEPTH
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
||||
DEC HL
|
||||
DEC HL
|
||||
LD A,'\' ;
|
||||
CP (HL)
|
||||
INC HL
|
||||
JR Z,.YP_ESLA
|
||||
LD (HL),A
|
||||
INC HL
|
||||
.YP_ESLA: EX DE,HL
|
||||
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
|
||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||
CALL CURDISK
|
||||
ADD A,'A'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,':'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
PUSH HL
|
||||
;!FIXIT âãâ ç¨â âì CURRDIR ¢ ®â¤¥«ìë© ¡ãä¥à ¨ ¨§ ¥£® ª®¯¨à®¢ âì ¢ HL ¡¥§ ¢ë室 § £à ¨æë ¡ãä¥à
|
||||
LD HL,CORE_BUFFERS.BUFFER_CLP
|
||||
CALL CURRDIR
|
||||
;
|
||||
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,'\' ;
|
||||
LD (HL),A
|
||||
INC HL
|
||||
.YP_ESLA: PUSH HL
|
||||
PUSH BC
|
||||
LD HL,MASKARE
|
||||
LD DE,TMPNAME
|
||||
CALL GetName
|
||||
POP BC
|
||||
POP DE
|
||||
LD HL,TMPNAME
|
||||
;
|
||||
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)
|
||||
|
||||
@ -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
|
||||
Loading…
Reference in New Issue
Block a user