From e7a42481ab4efdb6926fa06cd576c14a450b1146 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 13 Jul 2024 01:15:36 +1000 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B1=D0=B0=D0=B3=D0=B8=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=85=D0=B2=D0=B0=D1=82=D1=87=D0=B8=D0=BA?= =?UTF-8?q?=D0=B5=20=D1=80=D0=B5=D1=81=D0=B5=D1=82=D0=B0,=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=BE=D0=BC=20=D0=B1=D0=B8=D0=BE?= =?UTF-8?q?=D1=81=D0=B0=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=B0=D0=B8=D0=B2?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20SYS=5FPORT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- spectrum.asm | 30 ++++++++++++++---------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index 04aaef8..4f546cb 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 04aaef8ac955971d913babd95921a62937b597ae +Subproject commit 4f546cb1d2cd8eeb1aec0de2c3e9902d1bb52fee diff --git a/spectrum.asm b/spectrum.asm index 87a8868..8797607 100644 --- a/spectrum.asm +++ b/spectrum.asm @@ -935,24 +935,26 @@ RESTORE_PORT_HOLD: LD C,BIOS.SET_PORTS JP ToBIOS ; ; ; - -;******************************************** -EXIT_TO_DSS: DI - LD SP,stack_point +FIRST_PREPARE: LD A,CNF_PORT.CNF_0 + OUT (SYS_PORT.OFF),A + CALL RESTORE_PORT_HOLD LD A,high ZXKeys.Line_7 IN A,(ZXKeys) AND #1F CP #1E + RET +;******************************************** +EXIT_TO_DSS: DI + LD SP,stack_point + + CALL FIRST_PREPARE JP Z,RESET_TO_ZX.cont .cont: LD A,(#FFF0) ;!HARDCODE OUT (SLOT0),A - - CALL RESTORE_PORT_HOLD - - LD A,CNF_PORT.CNF_0 - OUT (SYS_PORT.OFF),A + LD A,(#FFF3) ;!HARDCODE + OUT (SLOT3),A XOR A LD BC,3*256+BIOS.SET_PAL_INIT ; SET IBM PAL @@ -1100,17 +1102,15 @@ NO_RET_FN: LD (#FFF4),DE ; LD (#FFF1),A IN A,(SLOT2) ; сохранить страницу LD (#FFF2),A ; программы для возврата - IN A,(SLOT3) + ;IN A,(SLOT3) + LD A,(SAVE_SLOT3) LD (#FFF3),A ; ;******************************************** RESET_TO_ZX: DI LD SP,stack_point ; #BFF0 - LD A,high ZXKeys.Line_7 - IN A,(ZXKeys) - AND #1F - CP #1E + CALL FIRST_PREPARE JP Z,EXIT_TO_DSS.cont ; фикс неполной дешифрации порта #FFFD (пишут в #C0FD) @@ -1120,8 +1120,6 @@ RESET_TO_ZX: DI LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG RST ToBIOS ; - CALL RESTORE_PORT_HOLD - ; ;[x] 04/11/2023 Отдельные рамдиски для режима спектрума и DSS. BLK_TO_RAMD LD BC,BIOS.SWAP_RAM_DRIVES.ZX RST ToBIOS