From 8dd95b8ff0952acc15d1db83081738dce18dfb6c Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Fri, 23 Feb 2024 01:52:38 +1000 Subject: [PATCH] =?UTF-8?q?=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C=20=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D1=80=D1=83=D0=B7=D0=BA=D1=83=20=D1=81=20HDD=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20vROM,=20=D0=BE?= =?UTF-8?q?=D0=BD=D0=B8=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=D1=8E=D1=82=D1=81=D1=8F=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=20=D0=BF=D1=83=D1=82=D1=91=D0=BC=20?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B8=D1=82=20";"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- spectrum.asm | 43 ++++++++++++++++++++----------------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index e5122b6..215d0f3 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit e5122b68be360be61be821f68988c29021ec8411 +Subproject commit 215d0f3c90865dd2c4c0d92d17e64513a0b0407e diff --git a/spectrum.asm b/spectrum.asm index fbc6a5a..238ee35 100644 --- a/spectrum.asm +++ b/spectrum.asm @@ -15,11 +15,12 @@ /* SYS - [x] - задавать CONFIG_DE перед запуском спектрума и в перехватчике ресета + [x] - задаётся CONFIG_DE перед запуском спектрума и в перехватчике ресета (для более гладкой совместимости со старым софтом Sp97) [x] - поддержка новых образов vROM - [x] - в конфиге могут быть пропущены некоторые vROM,они не загружаются + [x] - в конфиге можно пропустить загрузку с HDD выбранных vROM, они пропускаются если перед путём стоит ";" + [x] - проверять метку ZX, если мы не грузим 3 основных vROM [x] - добавлена совместимость с демо ATARIN, успользующее неполную дешифрацию порта AY - [x] - проверять метку ZX,если мы не грузим 3 основных vROM + [x] - перед входом в режим спектрума текущим устанавливается раздел HDD с которого загружался образ TRD ; Images [+] - Load SCL image @@ -30,8 +31,6 @@ [+] - Если выбрано ret-zx,то при нажатии на пробел сразу после CAD вернёт в DSS [*] - Менять спектрумовскую палитру [ ] - Выдавать сообщения на языке установленном в CMOS - [ ] - если указано только имя образа IMAGE.TRD при запуске искать в этой же папке IMAGE.ZX - и только если его нет, то грузить дефолтный spectrum.cfg из папки с программой */ ; @@ -379,37 +378,34 @@ A_LINES: BLOCK CFG_FILE_LINES*2,0 CONTINUE: LD (LEN_CNF),DE ; CNF файл прочитан, DE - длина CNF - LD HL,#C000 +READ_CNF_FILE: LD HL,#C000 LD DE,A_LINES LD C,CFG_FILE_LINES -LOOP_A: LD B,MAX_LINE_LENGTH ; длина строки +.LOOP_A: LD B,MAX_LINE_LENGTH ; длина строки EX DE,HL LD (HL),E INC HL LD (HL),D INC HL EX DE,HL -LOOP_L: LD A,(HL) +.LOOP_L: LD A,(HL) CP 13 - JR Z,N_LINE + JR Z,.N_LINE CP 10 - JR Z,N_LINE + JR Z,.N_LINE AND A JP Z,END_CNF_ERROR INC HL - CP ';' - JR Z,N_LINE - DJNZ LOOP_L -N_LINE: LD (HL),0 - INC HL + DJNZ .LOOP_L +.N_LINE: LD (HL),0 +.N_LINE2: INC HL LD A,(HL) CP 13 - JR Z,N_LINE + JR Z,.N_LINE2 CP 10 - JR Z,N_LINE + JR Z,.N_LINE2 DEC C - JR NZ,LOOP_A - + JR NZ,.LOOP_A ; выделено 8 строк в CNF ;************************************* ;!TODO если пропускаем загрузку ROM для 48, 128 или trdos, то вставлять в порт vROM номер из стандартного первого блока @@ -445,6 +441,7 @@ N_LINE: LD (HL),0 EX DE,HL ENDM ; +LOAD_ZXROMS: ;!FIXIT временная заплатка CALL CHECK_ZX_FLAG ; @@ -523,7 +520,7 @@ LOADING_PALETTE: OUT (SLOT3),A LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; строка параметров LOOP_PAR1: LD A,(HL) - CP "/" + CP '/' JR Z,PARAM_TEST CP 0 JR Z,PARAM_END @@ -551,7 +548,7 @@ LOOP_PAR2: LD A,(DE) PARAM_E1: CP 255 JR NZ,NO_PAR LD A,(HL) - CP 20h + CP ' ' JR Z,PARAM_E2 CP 0 JR Z,PARAM_E2 @@ -1060,7 +1057,7 @@ RESET_TO_ZX: DI LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG RST ToBIOS ; - ;!TEST; [ ] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS. BLK_TO_RAMD + ;[x] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS. BLK_TO_RAMD LD BC,BIOS.SWAP_RAM_DRIVES.ZX RST ToBIOS ; @@ -1358,7 +1355,7 @@ Int_or_: DW Int_or, #0300 ; Ret_zx_: DW Ret_zx, #4100 ; включить возврат в ZX страница (#41) должна совпадать с ret_fn_ Ret_fn_: DW Ret_fn, #4100 ; включить возврат в FN страница (#41) должна совпадать с ret_zx_ LD_Pal_: DW LD_Pal, #FF00 -RMD_Keep_: DW RMD_Keep, #FF00 ;!TEST; [ ] 05/11/2023 очищать рамдиски при выходе +RMD_Keep_: DW RMD_Keep, #FF00 ; [x] 05/11/2023 очищать рамдиски при выходе DW 0,0 ; end marker Turbo_: DB "turbo", 255,0