mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
Current Directory
This commit is contained in:
parent
66c77848ed
commit
2df0b56e56
48
DSS/DOS5.ASM
48
DSS/DOS5.ASM
@ -561,8 +561,6 @@ F_NEXT:
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;!TODO ᤥ« âì ¤«ï ª ¦¤®£® ¤à ©¢ § ¯®¬¨ ¨¥ ⥪ã饩 ¤¨à४â®à¨¨, ¯®ª âãâ § £«ãèª
|
|
||||||
; RestoreDIR:
|
|
||||||
CHNDISK_FN:
|
CHNDISK_FN:
|
||||||
CALL CHNDISK
|
CALL CHNDISK
|
||||||
RET C
|
RET C
|
||||||
@ -577,8 +575,6 @@ CHNDISK:
|
|||||||
;
|
;
|
||||||
;????? R10
|
;????? R10
|
||||||
RET C
|
RET C
|
||||||
;LD HL,CurrentDirectory+1
|
|
||||||
;LD HL,CurrentDirectory
|
|
||||||
LD HL,WorkDirectory
|
LD HL,WorkDirectory
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
PUSH AF
|
PUSH AF
|
||||||
@ -1553,6 +1549,8 @@ GETWORD:
|
|||||||
INC HL
|
INC HL
|
||||||
CP '\'
|
CP '\'
|
||||||
JR Z,.DIR_NAME
|
JR Z,.DIR_NAME
|
||||||
|
; AND A
|
||||||
|
; JR Z,.DIR_NAME
|
||||||
;CP ':'
|
;CP ':'
|
||||||
;JR Z,.DRV_NAME
|
;JR Z,.DRV_NAME
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
@ -1760,17 +1758,18 @@ FINDDIR:
|
|||||||
;LD BC,CurrentDirectory.DEPTH-1
|
;LD BC,CurrentDirectory.DEPTH-1
|
||||||
LD HL,WorkDirectory+1
|
LD HL,WorkDirectory+1
|
||||||
LD BC,WorkDirectory.DEPTH-1
|
LD BC,WorkDirectory.DEPTH-1
|
||||||
XOR A
|
; XOR A
|
||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
; CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||||
DEC HL
|
; DEC HL
|
||||||
DEC HL
|
; DEC HL
|
||||||
LD A,'\' ; #5C
|
; LD A,'\' ; #5C
|
||||||
CP (HL)
|
; CP (HL)
|
||||||
INC HL
|
; INC HL
|
||||||
JR Z,.ADDSPE0
|
; JR Z,.ADDSPE0
|
||||||
LD (HL),A
|
; LD (HL),A
|
||||||
INC HL
|
; INC HL
|
||||||
.ADDSPE0:
|
; .ADDSPE0:
|
||||||
|
CALL .CHECK_SLASH
|
||||||
;R11
|
;R11
|
||||||
LD A,B
|
LD A,B
|
||||||
AND A
|
AND A
|
||||||
@ -1815,6 +1814,18 @@ FINDDIR:
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
.CHECK_SLASH:
|
||||||
|
XOR A
|
||||||
|
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||||
|
DEC HL
|
||||||
|
DEC HL
|
||||||
|
LD A,'\' ; #5C
|
||||||
|
CP (HL)
|
||||||
|
INC HL
|
||||||
|
RET Z
|
||||||
|
LD (HL),A
|
||||||
|
INC HL
|
||||||
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
@ -2099,7 +2110,10 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
CP ':'
|
CP ':'
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
.forceCheck: CALL .checkDrive
|
.forceCheck: LD HL,CurrentDirectory+1
|
||||||
|
LD BC,CurrentDirectory.DEPTH-1
|
||||||
|
CALL FINDDIR.CHECK_SLASH
|
||||||
|
CALL .checkDrive
|
||||||
JR Z,.checkDir
|
JR Z,.checkDir
|
||||||
;
|
;
|
||||||
LD HL,CurrentPath
|
LD HL,CurrentPath
|
||||||
@ -2122,7 +2136,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
JR .ReDir
|
JR .ReDir
|
||||||
.end: CP (HL)
|
.end: CP (HL)
|
||||||
RET Z
|
RET Z
|
||||||
.ReDir: LD HL,CurrentDirectory
|
.ReDir: LD HL,CurrentPath
|
||||||
JP GETWORD
|
JP GETWORD
|
||||||
;
|
;
|
||||||
.checkDrive: LD HL,CurrentPath
|
.checkDrive: LD HL,CurrentPath
|
||||||
|
|||||||
487
DSS/EXECUTE.ASM
487
DSS/EXECUTE.ASM
@ -671,18 +671,18 @@ ABSOLUTE_DIR EQU 1
|
|||||||
FINDPATH:
|
FINDPATH:
|
||||||
SET_PAGE_X ENVPAGE
|
SET_PAGE_X ENVPAGE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;!TEST
|
||||||
CALL CURRDSK_FN
|
;CALL CURRDSK_FN
|
||||||
ADD A,"A"
|
;ADD A,"A"
|
||||||
LD HL,TMP_CURDIR
|
;LD HL,TMP_CURDIR
|
||||||
LD (HL),A
|
;LD (HL),A
|
||||||
INC HL
|
;INC HL
|
||||||
LD A,":"
|
;LD A,":"
|
||||||
LD (HL),A
|
;LD (HL),A
|
||||||
INC HL
|
;INC HL
|
||||||
CALL CURRDIR_FN
|
;CALL CURRDIR_FN
|
||||||
|
;
|
||||||
CALL MAKE_PATH_ARRAY
|
CALL .MAKE_PATH_ARRAY
|
||||||
LD HL,PATH_PNT_ARRAY
|
LD HL,PATH_PNT_ARRAY
|
||||||
.NEXTPATHI:
|
.NEXTPATHI:
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
@ -694,8 +694,8 @@ FINDPATH:
|
|||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
CALL Z,GOTO_CURDIR
|
CALL Z,.GOTO_CURDIR
|
||||||
CALL CHDIR
|
CALL NZ,CHDIR
|
||||||
JR C,.BADPATH
|
JR C,.BADPATH
|
||||||
LD HL,CORE_BUFFERS.EXEBUFF
|
LD HL,CORE_BUFFERS.EXEBUFF
|
||||||
LD DE,MASKARE
|
LD DE,MASKARE
|
||||||
@ -716,19 +716,21 @@ FINDPATH:
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
||||||
RET
|
RET
|
||||||
|
.GOTO_CURDIR:
|
||||||
GOTO_CURDIR:
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,TMP_CURDIR
|
;LD HL,TMP_CURDIR
|
||||||
|
LD HL,CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP HL
|
POP HL
|
||||||
|
POP AF
|
||||||
RET
|
RET
|
||||||
|
.MAKE_PATH_ARRAY:
|
||||||
MAKE_PATH_ARRAY:
|
|
||||||
LD HL,PATH_PNT_ARRAY-1 ;R04 -1
|
LD HL,PATH_PNT_ARRAY-1 ;R04 -1
|
||||||
LD DE,ENVTEMP-1
|
LD DE,ENVTEMP-1
|
||||||
LD B,#00
|
LD B,#00
|
||||||
NEXTAR: LD (HL),C ;R04
|
.NEXTAR:
|
||||||
|
LD (HL),C ;R04
|
||||||
INC HL ;R04
|
INC HL ;R04
|
||||||
XOR A
|
XOR A
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
@ -741,21 +743,25 @@ NEXTAR: LD (HL),C ;R04
|
|||||||
;R04 LD (HL),C
|
;R04 LD (HL),C
|
||||||
;R04 INC HL
|
;R04 INC HL
|
||||||
INC B
|
INC B
|
||||||
NEXTRT: LD A,(DE)
|
.NEXTRT:
|
||||||
|
LD A,(DE)
|
||||||
CP '\'
|
CP '\'
|
||||||
JR NZ,NEXTCH
|
JR NZ,.NEXTCH
|
||||||
NEXTDR: SET ABSOLUTE_DIR,C
|
.NEXTDR:
|
||||||
NEXTRL: ;SET RELATIVE_DIR,C ;!TODO ????
|
SET ABSOLUTE_DIR,C
|
||||||
NEXTCH: LD A,(DE)
|
.NEXTRL:
|
||||||
|
;SET RELATIVE_DIR,C ;!TODO ????
|
||||||
|
.NEXTCH:
|
||||||
|
LD A,(DE)
|
||||||
CP ";"
|
CP ";"
|
||||||
JR Z,NEXTAR
|
JR Z,.NEXTAR
|
||||||
INC DE
|
INC DE
|
||||||
; CP "."
|
; CP "."
|
||||||
; JR Z,NEXTRL
|
; JR Z,NEXTRL
|
||||||
CP ":"
|
CP ":"
|
||||||
JR Z,NEXTRT
|
JR Z,.NEXTRT
|
||||||
OR A
|
OR A
|
||||||
JR NZ,NEXTCH
|
JR NZ,.NEXTCH
|
||||||
LD (HL),C ;R04
|
LD (HL),C ;R04
|
||||||
INC HL ;R04
|
INC HL ;R04
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
@ -953,93 +959,6 @@ NOINK: LD A,H
|
|||||||
LD HL,_RET_1
|
LD HL,_RET_1
|
||||||
LD (_ret),HL
|
LD (_ret),HL
|
||||||
JP _TST_PROC
|
JP _TST_PROC
|
||||||
/*
|
|
||||||
;!FIXIT double 1
|
|
||||||
CALL GETMEM
|
|
||||||
JP C,ERREXE0
|
|
||||||
LD (EXE_MEM),A
|
|
||||||
EXX
|
|
||||||
POP DE ;ᨬ ¥¬ á® á⥪ ¤à¥á ¢®§¢à â
|
|
||||||
LD HL,#0000
|
|
||||||
ADD HL,SP
|
|
||||||
LD SP,(EXSTACK)
|
|
||||||
PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
IN A,(SLOT3)
|
|
||||||
LD D,A
|
|
||||||
IN A,(SLOT2)
|
|
||||||
LD E,A
|
|
||||||
IN A,(SLOT1)
|
|
||||||
PUSH DE
|
|
||||||
PUSH AF
|
|
||||||
LD (EXSTACK),SP
|
|
||||||
LD SP,HL
|
|
||||||
EXX
|
|
||||||
; <20>… ‘Ž•<C5BD>€<EFBFBD>Ÿ…’‘Ÿ DE ¯¥à¥¤ ¢ë§®¢®¬ BIOS, ¡¨®á ¯®ª ¥£® ¨ ¥ ¯®àâ¨â
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD DE,RAMMAP
|
|
||||||
LD BC,0*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,1*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,2*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,3*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
;^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
|
|
||||||
LD HL,(CMDLINE)
|
|
||||||
LD DE,CORE_BUFFERS.SECBUF+1
|
|
||||||
CALL SCOPYS
|
|
||||||
LD A,#80 ;!HARDCODE cmd line size
|
|
||||||
SUB B
|
|
||||||
LD (CORE_BUFFERS.SECBUF),A
|
|
||||||
;R02
|
|
||||||
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
|
||||||
;
|
|
||||||
LD A,SHARED_PAGE
|
|
||||||
OUT (SLOT1),A
|
|
||||||
OUT (SLOT2),A
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|
||||||
LD DE,RAMMAP
|
|
||||||
LD A,H
|
|
||||||
AND #C0
|
|
||||||
CP #40
|
|
||||||
JR Z,FR4000
|
|
||||||
CP #80
|
|
||||||
JR Z,FR8000
|
|
||||||
CP #C0
|
|
||||||
JR Z,FRC000
|
|
||||||
FR4000: LD A,(DE)
|
|
||||||
OUT (SLOT1),A
|
|
||||||
INC DE
|
|
||||||
FR8000: LD A,(DE)
|
|
||||||
OUT (SLOT2),A
|
|
||||||
INC DE
|
|
||||||
FRC000: LD A,(DE)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
CALL M_PSP
|
|
||||||
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
|
||||||
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
|
||||||
LD B,Dss.Move_FP.FrStart
|
|
||||||
LD A,(EXE_FM)
|
|
||||||
CALL MOVE_FP
|
|
||||||
;R02
|
|
||||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
*/
|
|
||||||
|
|
||||||
_RET_1: LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
_RET_1: LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
XOR A
|
XOR A
|
||||||
@ -1053,30 +972,7 @@ _RET_1: LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||||
CALL CLOSE ; § ªàëâì ä ©«
|
CALL CLOSE ; § ªàëâì ä ©«
|
||||||
JP _TST_PROC_2
|
JP _TST_PROC_2
|
||||||
/*
|
|
||||||
;!FIXIT double 2
|
|
||||||
;R09
|
|
||||||
;_mRestorePath
|
|
||||||
;
|
|
||||||
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|
||||||
LD DE,#0080
|
|
||||||
AND 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
|
|
||||||
|
|
||||||
_mRestorePath
|
|
||||||
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
*/
|
|
||||||
;[ ]
|
|
||||||
RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
||||||
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
||||||
|
|
||||||
@ -1133,234 +1029,123 @@ PRELOAD: EX DE,HL
|
|||||||
NOINK2: LD HL,_RET_2
|
NOINK2: LD HL,_RET_2
|
||||||
LD (_ret),HL
|
LD (_ret),HL
|
||||||
JR _TST_PROC
|
JR _TST_PROC
|
||||||
/*
|
|
||||||
;!FIXIT double 1
|
|
||||||
CALL GETMEM
|
|
||||||
JP C,ERREXE0
|
|
||||||
LD (EXE_MEM),A
|
|
||||||
EXX
|
|
||||||
POP DE
|
|
||||||
LD HL,#0000
|
|
||||||
ADD HL,SP
|
|
||||||
LD SP,(EXSTACK)
|
|
||||||
PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
IN A,(SLOT3)
|
|
||||||
LD D,A
|
|
||||||
IN A,(SLOT2)
|
|
||||||
LD E,A
|
|
||||||
IN A,(SLOT1)
|
|
||||||
PUSH DE
|
|
||||||
PUSH AF
|
|
||||||
LD (EXSTACK),SP
|
|
||||||
LD SP,HL
|
|
||||||
EXX
|
|
||||||
; <20>… ‘Ž•<C5BD>€<EFBFBD>Ÿ…’‘Ÿ DE ¯¥à¥¤ ¢ë§®¢®¬ BIOS, ¡¨®á ¯®ª ¥£® ¨ ¥ ¯®àâ¨â
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD DE,RAMMAP
|
|
||||||
LD BC,#00*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,1*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,2*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
INC DE
|
|
||||||
LD A,(EXE_MEM)
|
|
||||||
LD BC,3*256 + BIOS.GetMemPage
|
|
||||||
RST ToBIOS
|
|
||||||
LD (DE),A
|
|
||||||
;^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
|
|
||||||
LD HL,(CMDLINE)
|
|
||||||
LD DE,CORE_BUFFERS.SECBUF+1
|
|
||||||
CALL SCOPYS
|
|
||||||
LD A,#80
|
|
||||||
SUB B
|
|
||||||
LD (CORE_BUFFERS.SECBUF),A
|
|
||||||
;R02
|
|
||||||
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
|
||||||
;
|
|
||||||
LD A,SHARED_PAGE
|
|
||||||
OUT (SLOT1),A
|
|
||||||
OUT (SLOT2),A
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|
||||||
LD DE,RAMMAP
|
|
||||||
LD A,H
|
|
||||||
AND #C0
|
|
||||||
CP #40
|
|
||||||
JR Z,FR4000H
|
|
||||||
CP #80
|
|
||||||
JR Z,FR8000H
|
|
||||||
CP #C0
|
|
||||||
JR Z,FRC000H
|
|
||||||
FR4000H: LD A,(DE)
|
|
||||||
OUT (SLOT1),A
|
|
||||||
INC DE
|
|
||||||
FR8000H: LD A,(DE)
|
|
||||||
OUT (SLOT2),A
|
|
||||||
INC DE
|
|
||||||
FRC000H: LD A,(DE)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
CALL M_PSP
|
|
||||||
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
|
||||||
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
|
||||||
LD B,Dss.Move_FP.FrStart
|
|
||||||
LD A,(EXE_FM)
|
|
||||||
CALL MOVE_FP
|
|
||||||
;R02
|
|
||||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
*/
|
|
||||||
_RET_2: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR) ; ¡ãä¥à
|
_RET_2: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR) ; ¡ãä¥à
|
||||||
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) ; ç¨á«® ç¨â. ¡ ©â
|
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) ; ç¨á«® ç¨â. ¡ ©â
|
||||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||||
JP _TST_PROC_2
|
JP _TST_PROC_2
|
||||||
|
|
||||||
/*
|
|
||||||
;!FIXIT double 2
|
|
||||||
;R09
|
|
||||||
;_mRestorePath
|
|
||||||
;
|
|
||||||
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|
||||||
LD DE,#0080
|
|
||||||
AND 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
|
|
||||||
|
|
||||||
_mRestorePath
|
;-------------------------------------------------------------------;[ ]
|
||||||
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------
|
|
||||||
_TST_PROC:
|
_TST_PROC:
|
||||||
;!FIXIT double 1
|
CALL GETMEM
|
||||||
CALL GETMEM
|
JP C,ERREXE0
|
||||||
JP C,ERREXE0
|
LD (EXE_MEM),A
|
||||||
LD (EXE_MEM),A
|
EXX
|
||||||
EXX
|
POP DE ;ᨬ ¥¬ á® á⥪ ¤à¥á ¢®§¢à â
|
||||||
POP DE ;ᨬ ¥¬ á® á⥪ ¤à¥á ¢®§¢à â
|
LD HL,#0000
|
||||||
LD HL,#0000
|
ADD HL,SP
|
||||||
ADD HL,SP
|
LD SP,(EXSTACK)
|
||||||
LD SP,(EXSTACK)
|
PUSH HL
|
||||||
PUSH HL
|
PUSH DE
|
||||||
PUSH DE
|
IN A,(SLOT3)
|
||||||
IN A,(SLOT3)
|
LD D,A
|
||||||
LD D,A
|
IN A,(SLOT2)
|
||||||
IN A,(SLOT2)
|
LD E,A
|
||||||
LD E,A
|
IN A,(SLOT1)
|
||||||
IN A,(SLOT1)
|
PUSH DE
|
||||||
PUSH DE
|
PUSH AF
|
||||||
PUSH AF
|
LD (EXSTACK),SP
|
||||||
LD (EXSTACK),SP
|
LD SP,HL
|
||||||
LD SP,HL
|
EXX
|
||||||
EXX
|
|
||||||
; <20>… ‘Ž•<C5BD>€<EFBFBD>Ÿ…’‘Ÿ DE ¯¥à¥¤ ¢ë§®¢®¬ BIOS, ¡¨®á ¯®ª ¥£® ¨ ¥ ¯®àâ¨â
|
; <20>… ‘Ž•<C5BD>€<EFBFBD>Ÿ…’‘Ÿ DE ¯¥à¥¤ ¢ë§®¢®¬ BIOS, ¡¨®á ¯®ª ¥£® ¨ ¥ ¯®àâ¨â
|
||||||
LD A,(EXE_MEM)
|
LD A,(EXE_MEM)
|
||||||
LD DE,RAMMAP
|
LD DE,RAMMAP
|
||||||
LD BC,0*256 + BIOS.GetMemPage
|
LD BC,0*256 + BIOS.GetMemPage
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
LD A,(EXE_MEM)
|
LD A,(EXE_MEM)
|
||||||
LD BC,1*256 + BIOS.GetMemPage
|
LD BC,1*256 + BIOS.GetMemPage
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
LD A,(EXE_MEM)
|
LD A,(EXE_MEM)
|
||||||
LD BC,2*256 + BIOS.GetMemPage
|
LD BC,2*256 + BIOS.GetMemPage
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
LD A,(EXE_MEM)
|
LD A,(EXE_MEM)
|
||||||
LD BC,3*256 + BIOS.GetMemPage
|
LD BC,3*256 + BIOS.GetMemPage
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
;^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
|
|
||||||
LD HL,(CMDLINE)
|
|
||||||
LD DE,CORE_BUFFERS.SECBUF+1
|
|
||||||
CALL SCOPYS
|
|
||||||
LD A,#80 ;!HARDCODE cmd line size
|
|
||||||
SUB B
|
|
||||||
LD (CORE_BUFFERS.SECBUF),A
|
|
||||||
;R02
|
|
||||||
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
|
||||||
;
|
|
||||||
LD A,SHARED_PAGE
|
|
||||||
OUT (SLOT1),A
|
|
||||||
OUT (SLOT2),A
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|
||||||
LD DE,RAMMAP
|
|
||||||
LD A,H
|
|
||||||
AND #C0
|
|
||||||
CP #40
|
|
||||||
JR Z,FR4000
|
|
||||||
CP #80
|
|
||||||
JR Z,FR8000
|
|
||||||
CP #C0
|
|
||||||
JR Z,FRC000
|
|
||||||
FR4000: LD A,(DE)
|
|
||||||
OUT (SLOT1),A
|
|
||||||
INC DE
|
|
||||||
FR8000: LD A,(DE)
|
|
||||||
OUT (SLOT2),A
|
|
||||||
INC DE
|
|
||||||
FRC000: LD A,(DE)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
CALL M_PSP
|
|
||||||
|
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
LD HL,(CMDLINE)
|
||||||
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
LD DE,CORE_BUFFERS.SECBUF+1
|
||||||
LD B,Dss.Move_FP.FrStart
|
CALL SCOPYS
|
||||||
LD A,(EXE_FM)
|
LD A,#80 ;!HARDCODE cmd line size
|
||||||
CALL MOVE_FP
|
SUB B
|
||||||
;R02
|
LD (CORE_BUFFERS.SECBUF),A
|
||||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
;R02
|
||||||
;
|
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
||||||
_ret+1: JP 0
|
|
||||||
;
|
;
|
||||||
|
LD A,SHARED_PAGE
|
||||||
|
OUT (SLOT1),A
|
||||||
|
OUT (SLOT2),A
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
|
LD DE,RAMMAP
|
||||||
|
LD A,H
|
||||||
|
AND #C0
|
||||||
|
CP #40
|
||||||
|
JR Z,FR4000
|
||||||
|
CP #80
|
||||||
|
JR Z,FR8000
|
||||||
|
CP #C0
|
||||||
|
JR Z,FRC000
|
||||||
|
FR4000: LD A,(DE)
|
||||||
|
OUT (SLOT1),A
|
||||||
|
INC DE
|
||||||
|
FR8000: LD A,(DE)
|
||||||
|
OUT (SLOT2),A
|
||||||
|
INC DE
|
||||||
|
FRC000: LD A,(DE)
|
||||||
|
OUT (SLOT3),A
|
||||||
|
CALL M_PSP
|
||||||
|
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
||||||
|
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
||||||
|
LD B,Dss.Move_FP.FrStart
|
||||||
|
LD A,(EXE_FM)
|
||||||
|
CALL MOVE_FP
|
||||||
|
;R02
|
||||||
|
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||||
|
;
|
||||||
|
_ret+1: JP 0
|
||||||
|
|
||||||
_TST_PROC_2:
|
_TST_PROC_2:
|
||||||
;!FIXIT double 2
|
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||||
;R09
|
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
;_mRestorePath
|
LD DE,#0080
|
||||||
;
|
AND A
|
||||||
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
SBC HL,DE
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
EX DE,HL
|
||||||
LD DE,#0080
|
LD XH,D
|
||||||
AND A
|
LD XL,E
|
||||||
SBC HL,DE
|
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||||
EX DE,HL
|
LD DE,RETFAR ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
||||||
LD XH,D
|
PUSH DE
|
||||||
LD XL,E
|
PUSH HL
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
|
||||||
LD DE,RETFAR ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
|
||||||
PUSH DE
|
|
||||||
PUSH HL
|
|
||||||
|
|
||||||
_mRestorePath
|
_mRestorePath
|
||||||
|
|
||||||
|
PUSH IX
|
||||||
|
LD HL,CurrentDirectory
|
||||||
|
CALL CHDIR_FN
|
||||||
|
POP IX
|
||||||
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
@ -1451,7 +1236,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),B
|
LD (HL),B
|
||||||
INC HL
|
INC HL
|
||||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||||
CALL CURRDSK_FN
|
CALL CURRDSK
|
||||||
ADD A,'A'
|
ADD A,'A'
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
@ -1459,7 +1244,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL CURRDIR_FN
|
CALL CURRDIR
|
||||||
;
|
;
|
||||||
POP HL
|
POP HL
|
||||||
XOR A
|
XOR A
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
483
|
495
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit a7128fd1547d624249d95fdcbbb3aaa090f90357
|
Subproject commit 12ce1947adb0a8d902cd6d89042fe23cb9a33c21
|
||||||
Loading…
Reference in New Issue
Block a user