From a23b2eb756bd40ecaac7f34ca982098d75ea143f Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Thu, 19 Sep 2024 23:52:26 +1000 Subject: [PATCH] ... --- Shared_Includes | 2 +- src/bios/exp/EXP.asm | 4 ++-- src/bios/exp/FUNC_SCREEN.ASM | 7 +++---- src/bios/exp/FUNC_SERVICE.asm | 24 ++++++++++++++---------- src/bios/exp/FUNC_ZX.ASM | 24 +++++++++++++++++++----- src/bios/rom/SETUP/SETTINGS.asm | 4 ++-- src/bios/rom/ZX/ZX_MENU.ASM | 25 +++++++++++++------------ 7 files changed, 54 insertions(+), 36 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index c3a5d38..51a136e 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit c3a5d38deff864c3b08dd129572a20428f9219f1 +Subproject commit 51a136edca8c04554de0b189d7680ebbe358c64a diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 7df3407..3cf46e4 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -840,7 +840,7 @@ No_Reset_handlers: ;-----------------------------------------------------------------------; MODULE Prepare_For_Setup -Set_ALL_Mode: LD A,#FF +Set_ALL_Mode: LD A,Port_All_Mode.DEFAULT LD BC,Port_All_Mode OUT (C),A @@ -1138,7 +1138,7 @@ Exec: OUT (SYS_PORT.ROM),A ;-----------[Check SPACE] - LD A,#FE ; !HARDCODE + LD A,Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF ; !HARDCODE LD BC,Port_All_Mode ; keyboard int & acc off OUT (C),A LD A,high ZXKeys.Line_7 diff --git a/src/bios/exp/FUNC_SCREEN.ASM b/src/bios/exp/FUNC_SCREEN.ASM index 2a54b55..5883e54 100644 --- a/src/bios/exp/FUNC_SCREEN.ASM +++ b/src/bios/exp/FUNC_SCREEN.ASM @@ -818,11 +818,10 @@ FN_SYNC: .set_waits: ld a,h and 8 ; check waits. Z - no waits, NZ - waits - ld h,#FF + ld h,Port_All_Mode.DEFAULT jr z,1F - ld h,#FB -1: - ld bc,(Port_All_Mode) + ld h,Port_All_Mode.DEFAULT - Port_All_Mode.MEM_WAITS_OFF +1: ld bc,(Port_All_Mode) in a,(C) and h out (C),a diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index b67bd69..c641b0b 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -14,14 +14,16 @@ RST_CONF: ;--[] ZX Spectrum .AY8910: - LD D,#35 ;!HARDCODE REG #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE) - CALL CMOS_RD - OR 1 - CALL CMOS_WR + ; !FIXIT не нужно это больше в CMOS, переделать под TASK + ;LD D,CMOS_CELL.HardwareConfiguration ; CONFIG_DE (D) - значение CNF_PORT + ;CALL CMOS_RD + ;OR 1 + ;CALL CMOS_WR + ; LD BC,Port_All_Mode IN A,(C) - AND #FE ;!HARDCODE + AND Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF OUT (C),A ; ACC_OFF ;LD A,PG_AY @@ -31,11 +33,13 @@ RST_CONF: ;--[] Sprinter ZX .SP97_1: - LD D,#35 ;!HARDCODE REG #35 - BASIC SETTING 1 (SYS_PAGE.CONFIG_DE+1 = #C13B on PAGE #FE) - CALL CMOS_RD - AND #FE - CALL CMOS_WR - + ; !FIXIT не нужно это больше в CMOS, переделать под TASK + ;LD D,CMOS_CELL.HardwareConfiguration ; CONFIG_DE (D) - значение CNF_PORT + ;CALL CMOS_RD + ;AND #FE + ;CALL CMOS_WR + ; + LD BC,Port_All_Mode IN A,(C) AND #FE ;!HARDCODE diff --git a/src/bios/exp/FUNC_ZX.ASM b/src/bios/exp/FUNC_ZX.ASM index c5d2ed4..cd3d76c 100644 --- a/src/bios/exp/FUNC_ZX.ASM +++ b/src/bios/exp/FUNC_ZX.ASM @@ -324,11 +324,25 @@ GET_SCORP_RAM: CALL FREE_vRAM IF FREE_ZX_PAGES ;----------------------------------------------------[v] ;!TODO задействовать -; Вход: B = 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, -; 3 - EXPANSION. C закрытыми 128-ми портами: -; 4 - TR-DOS, 5 - BASIC 48 -; A = TASK -; CF = 1 - не переустанавливать палитру +; ПЕРЕДАВАТЬ: номер vROM, vRAM, CONFIG_DE, FN_SYNC, PORT_ALL_MODE, MEM_TYPE +; Вход: B[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ;!FIXIT переделать, это CONFIG_DE +; 3 - EXPANSION. C закрытыми 128-ми портами: +; 4 - TR-DOS, 5 - BASIC 48 +; B[7..4]: ;!TODO Port All Mode: b4 - Acc off/on +; DE: +; A: TASK Number +; CF: 1 - не переустанавливать палитру + +/* +; Вход: D[3..0]: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128, ;!FIXIT переделать, это CONFIG_DE +; 3 - EXPANSION. C закрытыми 128-ми портами: +; 4 - TR-DOS, 5 - BASIC 48 +; D[7..4]: ;!TODO Port All Mode: b4 - Acc off/on +; E: значение для SYS_PORT/CNF_PORT +; A: TASK Number +; CF: 1 - не переустанавливать палитру +*/ + GOTO_SPEC: DI PUSH AF ; set shared pages diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index 2c7c7ef..58c29fa 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -728,8 +728,8 @@ SETDEF: ;!TODO DEC C JR NZ,.loop - LD A,CMOS_CELL.ZX_RST_TO - LD B,CMOS_CELL.ZX_RST_TO.BASIC_128 + LD A,CMOS_CELL.HardwareConfiguration ; не используется + LD B,0 CALL WRITCMS LD A,CMOS_CELL.ZX_CONFIG diff --git a/src/bios/rom/ZX/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM index 1b781ec..fb82056 100644 --- a/src/bios/rom/ZX/ZX_MENU.ASM +++ b/src/bios/rom/ZX/ZX_MENU.ASM @@ -523,7 +523,7 @@ SPRINTER_1X: RST_to_BIOS CALL CNF_PN_320 LD L,2 ;FN_SYNC.INT_PENT - JR 1F ;!FIXIT метку придумать + JR AY8910_X.SET_DE ; ;ZX Spectrum AY8910_X: @@ -536,7 +536,8 @@ AY8910_X: CALL CNF_SC_312 LD L,3 ;FN_SYNC.INT_ORIG -1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON +.SET_DE: + LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON CALL CONFIG_SET CALL CLS ;!FIXIT нужно ли? RET @@ -569,19 +570,19 @@ CONFIG_SET: HALT DI - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD (SYS_PAGE.CONFIG_DE),DE - ;!FIXIT есть ли смысл делать до FN_SYNC? - LD A,(ZX_VARS.BORDER) + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A + LD (SYS_PAGE.CONFIG_DE),DE + ;!FIXIT есть ли смысл делать до FN_SYNC? + LD A,(ZX_VARS.BORDER) RRCA RRCA RRCA - AND 7 - OUT (BorderColor),A - ; + AND 7 + OUT (BorderColor),A + ; EX AF,AF' OUT (SLOT3),A