This commit is contained in:
Anatoliy Belyanskiy 2023-12-10 08:27:00 +10:00
parent 27b24be434
commit 5fed4f166d

View File

@ -86,6 +86,7 @@ code_addr EQU BEGIN
stack_point EQU #BFFE stack_point EQU #BFFE
stack_buffer EQU 64 stack_buffer EQU 64
program_start EQU BEGIN program_start EQU BEGIN
Loader_length EQU 0
;*************************************** ;***************************************
; ;
@ -159,7 +160,21 @@ BEGIN: LD (LINE_X),IX
RST ToBIOS RST ToBIOS
ENDIF ENDIF
; ;
;!TODO
;LD HL,SPECTRUM_HOME_DIR
;LD BC,Dss.AppInfo.EXE_HomeDir
;RST ToDSS
;;
;LD C,Dss.CurDisk
;RST ToDSS
;ADD A,'A'
;LD (USER_CURRENT_DRV),A
;;
;LD HL,USER_CURRENT_DIR
;LD C,Dss.CurDir
;RST ToDSS
; ;
JP COMAND_LINE JP COMAND_LINE
@ -200,9 +215,14 @@ EXIT_ALL: LD C,Dss.PChars
;LD C,Dss.PChars ;LD C,Dss.PChars
;RST ToDSS ;RST ToDSS
;--------------------------------------- ;---------------------------------------
1: LD BC,Dss.Exit ;!TODO
;LD HL,USER_CURRENT_DRV
;LD C,Dss.ChDir
;RST ToDSS
;
.loop: LD BC,Dss.Exit
RST ToDSS RST ToDSS
JR 1B JR .loop
; ;
@ -219,12 +239,12 @@ COMAND_LINE: LD HL,(LINE_X)
CALL FIND_FILES CALL FIND_FILES
CALL MAKE_FULL_NAME CALL MAKE_FULL_NAME
LD A,Spec_Page ;!FIXIT don't use it in new version LD A,SHARED_PAGE
CALL READ_FILE_1 CALL READ_FILE_1
JP NC,CONTINUE JP NC,CONTINUE
NO_FIL: CALL MAKE_FULL_NAME.def_cnf NO_FIL: CALL MAKE_FULL_NAME.def_cnf
LD A,Spec_Page ;!FIXIT don't use it in new version LD A,SHARED_PAGE
CALL READ_FILE_1 CALL READ_FILE_1
JR C,ERROR_FILE JR C,ERROR_FILE
JP CONTINUE JP CONTINUE
@ -417,7 +437,7 @@ N_LINE: LD (HL),0
CALL READ_FILE_1 CALL READ_FILE_1
POP DE POP DE
; ;
LD A,Spec_Page LD A,SHARED_PAGE
OUT (SLOT3),A OUT (SLOT3),A
JP C,ERROR_FILE JP C,ERROR_FILE
.skip_load: .skip_load:
@ -499,7 +519,7 @@ LOADING_PALETTE:
;************************************* ;*************************************
LD A,Spec_Page LD A,SHARED_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; áâப  ¯ à ¬¥â஢ LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; áâப  ¯ à ¬¥â஢
LOOP_PAR1: LD A,(HL) LOOP_PAR1: LD A,(HL)
@ -622,11 +642,18 @@ SKIP_IMAGE: LD A,(No_run_+2)
LD HL,MSG_EXIT1 LD HL,MSG_EXIT1
JP NZ,SETUP_RAM_DRIVES JP NZ,SETUP_RAM_DRIVES
LD BC,SLOT3
IN B,(C)
LD A,Spec_Page
OUT (C),A
;
LD A,"Z" LD A,"Z"
LD (Spec_Page.flag_Z),A LD (Spec_Page.flag_Z),A
LD A,"X" LD A,"X"
LD (Spec_Page.flag_X),A LD (Spec_Page.flag_X),A
;
OUT (C),B
;
JP EXIT_ALL JP EXIT_ALL
@ -735,7 +762,7 @@ Get_RAM_Disk_E: LD A,D
JR Z,ERROR_NO_MEM JR Z,ERROR_NO_MEM
PUSH AF PUSH AF
;*************************************** ;***************************************
; [ ] 04/11/2023 Žâ¤¥«ì­ë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS ; [x] 04/11/2023 Žâ¤¥«ì­ë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS
.free_disk: DI .free_disk: DI
;!TEST ;!TEST
;XOR A ; RAM-Drive E: ;XOR A ; RAM-Drive E:
@ -1192,6 +1219,7 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
LD BC,Dss.EX_Path.GET_ALL LD BC,Dss.EX_Path.GET_ALL
RST ToDSS RST ToDSS
; ;
OR 2
CP 3 ; only "FileName.ext"? CP 3 ; only "FileName.ext"?
LD HL,(CNF_NAME) LD HL,(CNF_NAME)
JR Z,.get_app_path JR Z,.get_app_path
@ -1214,6 +1242,8 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
.mode+1: LD HL,0 .mode+1: LD HL,0
LD BC,12 ;!HARDCODE filename length LD BC,12 ;!HARDCODE filename length
LDIR LDIR
XOR A
LD (DE),A
LD HL,ONE_FILE LD HL,ONE_FILE
RET RET
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
@ -1227,12 +1257,19 @@ CHECK_ZX_FLAG:
IN B,(C) IN B,(C)
LD A,Spec_Page LD A,Spec_Page
OUT (C),A OUT (C),A
LD A,(Spec_Page.flag_Z) LD HL,(Spec_Page.flag_Z)
CP 'Z' LD DE,'Z'+'X'*256
JR NZ,.no_zx AND A
LD A,(Spec_Page.flag_X) SBC HL,DE
CP 'X' JR Z,.exit
JP Z,.exit
; LD A,(Spec_Page.flag_Z)
; CP 'Z'
; JR NZ,.no_zx
; LD A,(Spec_Page.flag_X)
; CP 'X'
; JP Z,.exit
; ;
.no_zx: LD A,1 .no_zx: LD A,1
LD (NO_ZX_FLAG),A LD (NO_ZX_FLAG),A
@ -1281,17 +1318,20 @@ RMD_Keep: DB "RMD-Keep", 255,0 ;!TEST; [ ] 05/11/2023
;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn ;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn
CNF_FILE: DB "SPECTRUM.CFG",0 CNF_FILE: DB "SPECTRUM.CFG",0
.Size EQU $-CNF_FILE
ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0 ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
; ;
;!TODO
;USER_CURRENT_DRV DB 'Z:'
;USER_CURRENT_DIR EQU $
;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256
;
; ;
; ;
; ;
IFDEF NEED_LOADER
Loader_length EQU $-BEGIN
ELSE
Loader_length EQU 0
ENDIF
;----------------------------------------------[End Loader section] ;----------------------------------------------[End Loader section]
; ;