From 5fed4f166d8ce38f384e09f3e3abe2cddfe1644d Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 10 Dec 2023 08:27:00 +1000 Subject: [PATCH] ... --- spectrum.asm | 88 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 24 deletions(-) diff --git a/spectrum.asm b/spectrum.asm index 813be4c..138e8ad 100644 --- a/spectrum.asm +++ b/spectrum.asm @@ -81,11 +81,12 @@ ; ; Standart EQU section ;*************************************** -org_addr EQU #8000+CLP_Buffer -code_addr EQU BEGIN -stack_point EQU #BFFE -stack_buffer EQU 64 -program_start EQU BEGIN +org_addr EQU #8000+CLP_Buffer +code_addr EQU BEGIN +stack_point EQU #BFFE +stack_buffer EQU 64 +program_start EQU BEGIN +Loader_length EQU 0 ;*************************************** ; @@ -159,7 +160,21 @@ BEGIN: LD (LINE_X),IX RST ToBIOS 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 @@ -200,9 +215,14 @@ EXIT_ALL: LD C,Dss.PChars ;LD C,Dss.PChars ;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 - JR 1B + JR .loop ; @@ -219,12 +239,12 @@ COMAND_LINE: LD HL,(LINE_X) CALL FIND_FILES CALL MAKE_FULL_NAME - LD A,Spec_Page ;!FIXIT don't use it in new version + LD A,SHARED_PAGE CALL READ_FILE_1 JP NC,CONTINUE 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 JR C,ERROR_FILE JP CONTINUE @@ -417,7 +437,7 @@ N_LINE: LD (HL),0 CALL READ_FILE_1 POP DE ; - LD A,Spec_Page + LD A,SHARED_PAGE OUT (SLOT3),A JP C,ERROR_FILE .skip_load: @@ -499,7 +519,7 @@ LOADING_PALETTE: ;************************************* - LD A,Spec_Page + LD A,SHARED_PAGE OUT (SLOT3),A LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; строка параметров LOOP_PAR1: LD A,(HL) @@ -622,11 +642,18 @@ SKIP_IMAGE: LD A,(No_run_+2) LD HL,MSG_EXIT1 JP NZ,SETUP_RAM_DRIVES + LD BC,SLOT3 + IN B,(C) + LD A,Spec_Page + OUT (C),A + ; LD A,"Z" LD (Spec_Page.flag_Z),A LD A,"X" LD (Spec_Page.flag_X),A - + ; + OUT (C),B + ; JP EXIT_ALL @@ -735,7 +762,7 @@ Get_RAM_Disk_E: LD A,D JR Z,ERROR_NO_MEM PUSH AF ;*************************************** -; [ ] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS +; [x] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS .free_disk: DI ;!TEST ;XOR A ; RAM-Drive E: @@ -1192,6 +1219,7 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME) LD BC,Dss.EX_Path.GET_ALL RST ToDSS ; + OR 2 CP 3 ; only "FileName.ext"? LD HL,(CNF_NAME) JR Z,.get_app_path @@ -1214,6 +1242,8 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME) .mode+1: LD HL,0 LD BC,12 ;!HARDCODE filename length LDIR + XOR A + LD (DE),A LD HL,ONE_FILE RET ;----------------------------------------------------------------------; @@ -1227,12 +1257,19 @@ CHECK_ZX_FLAG: IN B,(C) LD A,Spec_Page OUT (C),A - LD A,(Spec_Page.flag_Z) - CP 'Z' - JR NZ,.no_zx - LD A,(Spec_Page.flag_X) - CP 'X' - JP Z,.exit + LD HL,(Spec_Page.flag_Z) + LD DE,'Z'+'X'*256 + AND A + SBC HL,DE + JR 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 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 CNF_FILE: DB "SPECTRUM.CFG",0 +.Size EQU $-CNF_FILE 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] ;