mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 00:51:36 +03:00
Adaptation for new "Current Dir" in DSS
This commit is contained in:
parent
23097bdd16
commit
e70ce1ed3d
@ -1 +1 @@
|
|||||||
Subproject commit 947627f58f37509150f653c81c82d742a4123cb6
|
Subproject commit b534dc7d5df20ff238a64d900fb1559105eb8ef6
|
||||||
142
spectrum.asm
142
spectrum.asm
@ -147,20 +147,18 @@ BEGIN: LD (LINE_X),IX
|
|||||||
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
LD (SAVE_SLOT3),A
|
LD (SAVE_SLOT3),A
|
||||||
|
;
|
||||||
IF NEW_MEMORY_LOGIC
|
;
|
||||||
;!TEST
|
IF NEW_MEMORY_LOGIC
|
||||||
LD BC,BUFFER_RAM_PAGES.Size * 256 + Dss.GetMem
|
LD BC,BUFFER_RAM_PAGES.Size * 256 + Dss.GetMem
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JR C,Error_NoMemForSPpages
|
JR C,Error_NoMemForSPpages
|
||||||
LD HL,BUFFER_RAM_PAGES
|
LD HL,BUFFER_RAM_PAGES
|
||||||
LD C,BIOS.GetMemBlkPages
|
LD C,BIOS.GetMemBlkPages
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
ENDIF
|
||||||
|
;
|
||||||
;
|
;
|
||||||
ELSE
|
|
||||||
;
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
JP COMAND_LINE
|
JP COMAND_LINE
|
||||||
|
|
||||||
|
|
||||||
@ -226,13 +224,13 @@ COMAND_LINE: LD HL,(LINE_X)
|
|||||||
|
|
||||||
CALL FIND_FILES
|
CALL FIND_FILES
|
||||||
|
|
||||||
LD HL,(CNF_NAME)
|
CALL MAKE_FULL_NAME
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page ;!FIXIT don't use it in new version
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JP NC,CONTINUE
|
JP NC,CONTINUE
|
||||||
|
|
||||||
NO_FIL: LD HL,CNF_FILE
|
NO_FIL: CALL MAKE_FULL_NAME.def_cnf
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page ;!FIXIT don't use it in new version
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JR C,ERROR_FILE
|
JR C,ERROR_FILE
|
||||||
JP CONTINUE
|
JP CONTINUE
|
||||||
@ -251,7 +249,7 @@ FIND_T_LOOP: LD A,(HL)
|
|||||||
INC HL
|
INC HL
|
||||||
CP "."
|
CP "."
|
||||||
CALL Z,POINT_F
|
CALL Z,POINT_F
|
||||||
CP 20h
|
CP ' '
|
||||||
CALL Z,BLANK_X
|
CALL Z,BLANK_X
|
||||||
CP 9
|
CP 9
|
||||||
CALL Z,BLANK_X
|
CALL Z,BLANK_X
|
||||||
@ -472,15 +470,13 @@ LOADING_PALETTE:
|
|||||||
;OR A
|
;OR A
|
||||||
;JP NZ,ERROR_FILE
|
;JP NZ,ERROR_FILE
|
||||||
;
|
;
|
||||||
;PUSH DE
|
|
||||||
|
|
||||||
LD A,(FILE_HANDLE)
|
LD A,(FILE_HANDLE)
|
||||||
LD C,Dss.Close
|
LD C,Dss.Close
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
;POP DE
|
|
||||||
.skip:
|
.skip:
|
||||||
;
|
;
|
||||||
|
;!TODO ¯¥ç â âì ¨¬ï ä ©« ¯ «¨âàë, ¥á«¨ ® § £à㦥
|
||||||
|
|
||||||
; ä ©«ë áç¨â ë
|
; ä ©«ë áç¨â ë
|
||||||
;*************************************
|
;*************************************
|
||||||
|
|
||||||
@ -916,35 +912,13 @@ RESET_TO_ZX: DI
|
|||||||
CP #1E
|
CP #1E
|
||||||
JR Z,EXIT_TO_DSS
|
JR Z,EXIT_TO_DSS
|
||||||
|
|
||||||
;LD A,CNF_PORT.CNF_3
|
; ä¨ªá ¥¯®«®© ¤¥è¨äà æ¨¨ ¯®àâ #FFFD (¯¨èãâ ¢ #C0FD)
|
||||||
;OUT (SYS_PORT.ON),A ; System-page on & CNF = 0
|
LD A,#FF
|
||||||
|
LD HL,%00'010'1'1110'1101
|
||||||
;-------------[TEST ATARIN]-------------
|
LD DE,%10'111'1'1111'1111 ; CNF_0, CNF_1
|
||||||
; #c0fd - +#05ED
|
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
|
||||||
; ä¨ªá ¥¯®«®© ¤¥è¨äà æ¨¨ ¯®àâ #FFFD (¯¨èãâ ¢ #C0FD)
|
RST ToBIOS
|
||||||
; ¤®¡ ¢«¥ ¯®àâ #C0FD ¢® ¢á¥ ª àâë ¯®à⮢
|
;
|
||||||
LD BC,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,DCP_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
|
|
||||||
; !HARDCODE ¤ «¥¥ ¢áñ ᪮àïª ¨ § å प®¦¥®
|
|
||||||
; !TODO ¯¥à¥¤¥« âì ¯®¤ ®¢ãî äãªæ¨î ¤¥è¨äà æ¨¨
|
|
||||||
LD A,#90 ; AY-8910-port (FFFD)
|
|
||||||
LD HL,#C000+#05ED ; CNF 0
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
LD H,#C0+#15 ; CNF 1
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
LD H,#C0+#25 ; CNF 2
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
LD H,#C0+#35 ; CNF 3
|
|
||||||
LD (HL),A
|
|
||||||
|
|
||||||
OUT (C),B
|
|
||||||
;---------------------------------------
|
|
||||||
LD A,(Ret_zx_+2)
|
LD A,(Ret_zx_+2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(Ret_fn_+2)
|
LD A,(Ret_fn_+2)
|
||||||
@ -1054,7 +1028,6 @@ Original: LD C,BIOS.FN_SYNC ; -> INT for Pentagon or Scorpion
|
|||||||
OUT (C),A ; #1FFD
|
OUT (C),A ; #1FFD
|
||||||
LD B,#7F
|
LD B,#7F
|
||||||
|
|
||||||
|
|
||||||
LD A,8
|
LD A,8
|
||||||
LOOP_P1: DEC A
|
LOOP_P1: DEC A
|
||||||
OUT (C),A ; #7FFD
|
OUT (C),A ; #7FFD
|
||||||
@ -1081,8 +1054,8 @@ LOOP_P2: OUT (C),A ; #7FFD
|
|||||||
;***********************************************
|
;***********************************************
|
||||||
|
|
||||||
LD HL,PROG_STARTS
|
LD HL,PROG_STARTS
|
||||||
LD BC,PROG_STARTS.Length
|
LD DE,PROG_STARTS.Launch ;!HARDCODE
|
||||||
LD DE,#FF00 ;!HARDCODE
|
LD BC,0*256 + PROG_STARTS.Length
|
||||||
LDIR
|
LDIR
|
||||||
|
|
||||||
LD A,(Line312_+2)
|
LD A,(Line312_+2)
|
||||||
@ -1121,24 +1094,27 @@ LOOP_P2: OUT (C),A ; #7FFD
|
|||||||
LD A,C
|
LD A,C
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
;
|
JP PROG_STARTS.Launch
|
||||||
JP #FF00 ;!HARDCODE
|
|
||||||
|
|
||||||
;***************************************
|
;***************************************
|
||||||
PROG_STARTS: LD A,2
|
PROG_STARTS:
|
||||||
OUT (SLOT2),A
|
.Launch: EQU #FF00
|
||||||
LD A,E
|
DISP .Launch
|
||||||
OUT (SYS_PORT.OFF),A
|
LD A,2
|
||||||
LD A,D
|
OUT (SLOT2),A
|
||||||
AND A
|
LD A,E
|
||||||
JP Z,0
|
OUT (SYS_PORT.OFF),A
|
||||||
LD A,#10
|
LD A,D
|
||||||
LD BC,#7FFD
|
AND A
|
||||||
OUT (C),A
|
JP Z,0
|
||||||
LD HL,0
|
LD A,#10
|
||||||
PUSH HL
|
LD BC,#7FFD
|
||||||
JP #3D29 ; RESET to TR-DOS
|
OUT (C),A
|
||||||
|
LD HL,0
|
||||||
|
PUSH HL
|
||||||
|
JP #3D29 ; RESET to TR-DOS
|
||||||
|
ENT
|
||||||
|
;
|
||||||
.Length EQU $-PROG_STARTS
|
.Length EQU $-PROG_STARTS
|
||||||
ASSERT PROG_STARTS.Length<#100,'PROG_STARTS too big!!!'
|
ASSERT PROG_STARTS.Length<#100,'PROG_STARTS too big!!!'
|
||||||
|
|
||||||
@ -1148,6 +1124,42 @@ SET_PAL: LD DE,0
|
|||||||
JP ToBIOS_18
|
JP ToBIOS_18
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
MAKE_FULL_NAME: LD HL,(CNF_NAME)
|
||||||
|
LD (.mode),HL
|
||||||
|
LD DE,ONE_FILE
|
||||||
|
LD C,Dss.GSwitch
|
||||||
|
RST ToDSS
|
||||||
|
;
|
||||||
|
LD HL,ONE_FILE
|
||||||
|
LD BC,Dss.EX_Path.GET_ALL*256 + Dss.EX_Path
|
||||||
|
RST ToDSS
|
||||||
|
;
|
||||||
|
CP 3 ; only "FileName.ext"?
|
||||||
|
LD HL,(CNF_NAME)
|
||||||
|
JR Z,.get_app_path
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.def_cnf: LD HL,CNF_FILE
|
||||||
|
LD (.mode),HL
|
||||||
|
;
|
||||||
|
.get_app_path: LD HL,ONE_FILE
|
||||||
|
LD BC,Dss.AppInfo.EXE_HomeDir
|
||||||
|
RST ToDSS
|
||||||
|
;
|
||||||
|
LD HL,ONE_FILE
|
||||||
|
LD BC,12 ;!HARDCODE filename length
|
||||||
|
XOR A
|
||||||
|
CPIR
|
||||||
|
DEC HL
|
||||||
|
EX DE,HL
|
||||||
|
;
|
||||||
|
.mode+1: LD HL,0
|
||||||
|
LD BC,12 ;!HARDCODE filename length
|
||||||
|
LDIR
|
||||||
|
LD HL,ONE_FILE
|
||||||
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
; …᫨ ¯ à ¬¥âà § ¤ , â® ¢ë¡¨à ¥âáï § 票¥ Y
|
; …᫨ ¯ à ¬¥âà § ¤ , â® ¢ë¡¨à ¥âáï § 票¥ Y
|
||||||
PARAMS:; Y / N ; âãâ § ç¥¨ï ¤«ï ª«î祩 § ¯¨áë¢ îâáï ª ª 16 ¡¨â § 票¥, § ç¨â ®¡à âë© ¯®à冷ª ¡ ©â®¢
|
PARAMS:; Y / N ; âãâ § ç¥¨ï ¤«ï ª«î祩 § ¯¨áë¢ îâáï ª ª 16 ¡¨â § 票¥, § ç¨â ®¡à âë© ¯®à冷ª ¡ ©â®¢
|
||||||
@ -1199,7 +1211,7 @@ Loader_length EQU 0
|
|||||||
;----------------------------------------------[End Loader section]
|
;----------------------------------------------[End Loader section]
|
||||||
;
|
;
|
||||||
|
|
||||||
PlaceForPalette EQU #9000
|
PlaceForPalette EQU #A000
|
||||||
|
|
||||||
STACK_CHECK_MACRO stack_point,stack_buffer
|
STACK_CHECK_MACRO stack_point,stack_buffer
|
||||||
; Code after Loader
|
; Code after Loader
|
||||||
|
|||||||
@ -322,7 +322,7 @@ SYS_SECTOR_END: BLOCK 3,0
|
|||||||
SCL_FILE_ID: DB 0
|
SCL_FILE_ID: DB 0
|
||||||
;-----------[¢ á ¬ë© ª®¥æ]-------------
|
;-----------[¢ á ¬ë© ª®¥æ]-------------
|
||||||
SCL_Buffer EQU $
|
SCL_Buffer EQU $
|
||||||
ASSERT SCL_Buffer+#701<#C000,"Buffer out of mem bank 2"
|
ASSERT SCL_Buffer+#701<#A000,"Buffer out of mem bank 2"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user