mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +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:
|
||||
CALL CHNDISK
|
||||
RET C
|
||||
@ -577,8 +575,6 @@ CHNDISK:
|
||||
;
|
||||
;????? R10
|
||||
RET C
|
||||
;LD HL,CurrentDirectory+1
|
||||
;LD HL,CurrentDirectory
|
||||
LD HL,WorkDirectory
|
||||
LD (HL),0
|
||||
PUSH AF
|
||||
@ -1553,6 +1549,8 @@ GETWORD:
|
||||
INC HL
|
||||
CP '\'
|
||||
JR Z,.DIR_NAME
|
||||
; AND A
|
||||
; JR Z,.DIR_NAME
|
||||
;CP ':'
|
||||
;JR Z,.DRV_NAME
|
||||
LD (DE),A
|
||||
@ -1760,17 +1758,18 @@ FINDDIR:
|
||||
;LD BC,CurrentDirectory.DEPTH-1
|
||||
LD HL,WorkDirectory+1
|
||||
LD BC,WorkDirectory.DEPTH-1
|
||||
XOR A
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
DEC HL
|
||||
DEC HL
|
||||
LD A,'\' ; #5C
|
||||
CP (HL)
|
||||
INC HL
|
||||
JR Z,.ADDSPE0
|
||||
LD (HL),A
|
||||
INC HL
|
||||
.ADDSPE0:
|
||||
; XOR A
|
||||
; CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
; DEC HL
|
||||
; DEC HL
|
||||
; LD A,'\' ; #5C
|
||||
; CP (HL)
|
||||
; INC HL
|
||||
; JR Z,.ADDSPE0
|
||||
; LD (HL),A
|
||||
; INC HL
|
||||
; .ADDSPE0:
|
||||
CALL .CHECK_SLASH
|
||||
;R11
|
||||
LD A,B
|
||||
AND A
|
||||
@ -1815,6 +1814,18 @@ FINDDIR:
|
||||
OUT (SLOT3),A
|
||||
AND A
|
||||
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 ':'
|
||||
RET Z
|
||||
;
|
||||
.forceCheck: CALL .checkDrive
|
||||
.forceCheck: LD HL,CurrentDirectory+1
|
||||
LD BC,CurrentDirectory.DEPTH-1
|
||||
CALL FINDDIR.CHECK_SLASH
|
||||
CALL .checkDrive
|
||||
JR Z,.checkDir
|
||||
;
|
||||
LD HL,CurrentPath
|
||||
@ -2122,7 +2136,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
||||
JR .ReDir
|
||||
.end: CP (HL)
|
||||
RET Z
|
||||
.ReDir: LD HL,CurrentDirectory
|
||||
.ReDir: LD HL,CurrentPath
|
||||
JP GETWORD
|
||||
;
|
||||
.checkDrive: LD HL,CurrentPath
|
||||
|
||||
487
DSS/EXECUTE.ASM
487
DSS/EXECUTE.ASM
@ -671,18 +671,18 @@ ABSOLUTE_DIR EQU 1
|
||||
FINDPATH:
|
||||
SET_PAGE_X ENVPAGE
|
||||
PUSH AF
|
||||
|
||||
CALL CURRDSK_FN
|
||||
ADD A,"A"
|
||||
LD HL,TMP_CURDIR
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,":"
|
||||
LD (HL),A
|
||||
INC HL
|
||||
CALL CURRDIR_FN
|
||||
|
||||
CALL MAKE_PATH_ARRAY
|
||||
;!TEST
|
||||
;CALL CURRDSK_FN
|
||||
;ADD A,"A"
|
||||
;LD HL,TMP_CURDIR
|
||||
;LD (HL),A
|
||||
;INC HL
|
||||
;LD A,":"
|
||||
;LD (HL),A
|
||||
;INC HL
|
||||
;CALL CURRDIR_FN
|
||||
;
|
||||
CALL .MAKE_PATH_ARRAY
|
||||
LD HL,PATH_PNT_ARRAY
|
||||
.NEXTPATHI:
|
||||
LD E,(HL)
|
||||
@ -694,8 +694,8 @@ FINDPATH:
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
EX DE,HL
|
||||
CALL Z,GOTO_CURDIR
|
||||
CALL CHDIR
|
||||
CALL Z,.GOTO_CURDIR
|
||||
CALL NZ,CHDIR
|
||||
JR C,.BADPATH
|
||||
LD HL,CORE_BUFFERS.EXEBUFF
|
||||
LD DE,MASKARE
|
||||
@ -716,19 +716,21 @@ FINDPATH:
|
||||
OUT (SLOT3),A
|
||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
||||
RET
|
||||
|
||||
GOTO_CURDIR:
|
||||
.GOTO_CURDIR:
|
||||
PUSH AF
|
||||
PUSH HL
|
||||
LD HL,TMP_CURDIR
|
||||
;LD HL,TMP_CURDIR
|
||||
LD HL,CurrentDirectory
|
||||
CALL CHDIR
|
||||
POP HL
|
||||
POP AF
|
||||
RET
|
||||
|
||||
MAKE_PATH_ARRAY:
|
||||
.MAKE_PATH_ARRAY:
|
||||
LD HL,PATH_PNT_ARRAY-1 ;R04 -1
|
||||
LD DE,ENVTEMP-1
|
||||
LD B,#00
|
||||
NEXTAR: LD (HL),C ;R04
|
||||
.NEXTAR:
|
||||
LD (HL),C ;R04
|
||||
INC HL ;R04
|
||||
XOR A
|
||||
LD (DE),A
|
||||
@ -741,21 +743,25 @@ NEXTAR: LD (HL),C ;R04
|
||||
;R04 LD (HL),C
|
||||
;R04 INC HL
|
||||
INC B
|
||||
NEXTRT: LD A,(DE)
|
||||
.NEXTRT:
|
||||
LD A,(DE)
|
||||
CP '\'
|
||||
JR NZ,NEXTCH
|
||||
NEXTDR: SET ABSOLUTE_DIR,C
|
||||
NEXTRL: ;SET RELATIVE_DIR,C ;!TODO ????
|
||||
NEXTCH: LD A,(DE)
|
||||
JR NZ,.NEXTCH
|
||||
.NEXTDR:
|
||||
SET ABSOLUTE_DIR,C
|
||||
.NEXTRL:
|
||||
;SET RELATIVE_DIR,C ;!TODO ????
|
||||
.NEXTCH:
|
||||
LD A,(DE)
|
||||
CP ";"
|
||||
JR Z,NEXTAR
|
||||
JR Z,.NEXTAR
|
||||
INC DE
|
||||
; CP "."
|
||||
; JR Z,NEXTRL
|
||||
CP ":"
|
||||
JR Z,NEXTRT
|
||||
JR Z,.NEXTRT
|
||||
OR A
|
||||
JR NZ,NEXTCH
|
||||
JR NZ,.NEXTCH
|
||||
LD (HL),C ;R04
|
||||
INC HL ;R04
|
||||
LD (HL),A
|
||||
@ -953,93 +959,6 @@ NOINK: LD A,H
|
||||
LD HL,_RET_1
|
||||
LD (_ret),HL
|
||||
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)
|
||||
XOR A
|
||||
@ -1053,30 +972,7 @@ _RET_1: LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||
CALL CLOSE ; § ªàëâì ä ©«
|
||||
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
|
||||
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
||||
|
||||
@ -1133,234 +1029,123 @@ PRELOAD: EX DE,HL
|
||||
NOINK2: LD HL,_RET_2
|
||||
LD (_ret),HL
|
||||
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) ; ¡ãä¥à
|
||||
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) ; ç¨á«® ç¨â. ¡ ©â
|
||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||
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:
|
||||
;!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
|
||||
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 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,(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
|
||||
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: JP 0
|
||||
|
||||
_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
|
||||
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
|
||||
|
||||
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
|
||||
INC HL
|
||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||
CALL CURRDSK_FN
|
||||
CALL CURRDSK
|
||||
ADD A,'A'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
@ -1459,7 +1244,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD (HL),A
|
||||
INC HL
|
||||
PUSH HL
|
||||
CALL CURRDIR_FN
|
||||
CALL CURRDIR
|
||||
;
|
||||
POP HL
|
||||
XOR A
|
||||
|
||||
@ -1 +1 @@
|
||||
483
|
||||
495
|
||||
@ -1 +1 @@
|
||||
Subproject commit a7128fd1547d624249d95fdcbbb3aaa090f90357
|
||||
Subproject commit 12ce1947adb0a8d902cd6d89042fe23cb9a33c21
|
||||
Loading…
Reference in New Issue
Block a user