From e3d458e180b697f3cf3651794f6a47fd5a5f7ac2 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:39:48 +1000 Subject: [PATCH] =?UTF-8?q?updated=20RECOVERY.IMG=20=D0=9C=D0=B5=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- src/bios/exp/DCP.ASM | 2 +- src/bios/exp/EXP.asm | 20 +++++++++++--------- src/bios/rom/ROM.asm | 4 +++- src/bios/rom/ZX/ZX_FUNC.ASM | 34 ++++++++++++++++++++++++++++++++-- src/bios/shared/DEFINES.INC | 1 + src/bios/shared/RECOVERY.IMG | Bin 98304 -> 98304 bytes 7 files changed, 49 insertions(+), 14 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index a9892c6..97d5ea8 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit a9892c6a6766ef6df26b45a82b1991ac836f2e4a +Subproject commit 97d5ea8a4b1359d49fb706f24aae6af6bb4eef66 diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 319cfd2..690f9f0 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -14,7 +14,7 @@ ; FF2SR54 3 ; 108 ;DCP_DATA: ....0..11.1110 -; WORD %00000001101110 ; - b13..12 cnf, b11 pent512, b10 dos, b9 r/w, b8..0 адрес +; WORD %00000001101110 ; - b13..12 cnf, b11 Lock48, b10 dos, b9 r/w, b8..0 адрес ; WORD %00001001101111 ; - маска - 0 изменяемые биты, 1 неизменяемые ; BYTE ACEX.Border_FE ; - порт diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 9d28266..8888510 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -327,6 +327,7 @@ NO_RESTART: OUT (Z84.PIO.Port_A.Command),A XOR A OUT (Z84.PIO.Port_A.Command),A + ;LD A,%11101010 ; зажечь L OUT (Z84.PIO.Port_A.Data),A ; PRINTER - PORT - all zeros ; -инициализация системных портов Z84C15- LD BC,#FF*256 + Z84.SYS.Control @@ -737,7 +738,7 @@ POST_5_ERROR: ENDIF POST_5_OK: - OUT (Z84.PIO.Port_A.Data),A ; вывести "5" + OUT (Z84.PIO.Port_A.Data),A ; вывести результат теста ; ********************************** ; POST завершен ENDMODULE @@ -1026,15 +1027,16 @@ PORTS_INIT: DEC A ;LD A,0 OUT (Z84.SIO.Ch_B.Ctrl),A ; Инициализация параллельного порта 1 (принтер) + ; !FIXIT почитать про эту хрень ; для POST-Tester-а - LD A,#CF ; BITS I/O - OUT (Z84.PIO.Port_A.Command),A - XOR A - OUT (Z84.PIO.Port_A.Command),A ; ALL - out - OUT (Z84.PIO.Port_A.Data),A ; DATA - all zeros + ; LD A,#CF ; BITS I/O + ; OUT (Z84.PIO.Port_A.Command),A + ; XOR A + ; OUT (Z84.PIO.Port_A.Command),A ; ALL - out + ; OUT (Z84.PIO.Port_A.Data),A ; DATA - all zeros ; для принтера - LD A,#0F ; OUT - OUT (Z84.PIO.Port_A.Command),A + LD A,#0F ; Init printer port for Out + OUT (Z84.PIO.Port_A.Command),A OUT (Z84.PIO.Port_A.Command),A ; Инициализация параллельного порта 2 (INT/DMA ISA) LD BC,Z84.PIO.Port_B.Command ;только через регистр BC, иначе Альтера перехватит @@ -1042,7 +1044,7 @@ PORTS_INIT: OUT (C),A LD A,#3F OUT (C),A - LD A,#C0 + LD A,#C0 ; Bit 7 - Select (1), Bit 6 - Auto_Line_Feed (1) OUT (Z84.PIO.Port_B.Data),A ; "Заглушение" ковокса и ресет ISA ; ресет ISA часть 1 diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index e9a3cb4..b426fd1 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -442,4 +442,6 @@ RET_TO_TRDOS: DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer ENDIF ; ENDMODULE ;ROM_PART -; \ No newline at end of file +; + DISPLAY ' ' + DISPLAY 'FIX printer init!!!!!!!!' \ No newline at end of file diff --git a/src/bios/rom/ZX/ZX_FUNC.ASM b/src/bios/rom/ZX/ZX_FUNC.ASM index aa6ff08..c6c9006 100644 --- a/src/bios/rom/ZX/ZX_FUNC.ASM +++ b/src/bios/rom/ZX/ZX_FUNC.ASM @@ -557,12 +557,42 @@ GOTO_SPECTRUM: DI CALL Z,ToBIOS_FromEXT ; ; [x] фикс неполной дешифрации порта #FFFD (пишут в #C0FD) для ZX mode - LD A,#FF + LD A,(SYS_PAGE.CONFIG_DE) + AND %0001'1000 + RLA + IF TMP_CELLS_INIT + PUSH AF + ENDIF LD HL,%00'010'1'1110'1101 - LD DE,%10'111'1'1111'1111 ; CNF_0, CNF_1 + OR H + LD H,A + LD DE,%11'011'1'1111'1111 LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG + LD A,C CALL ToBIOS_FromEXT ; + IF TMP_CELLS_INIT + ; инит портов 4 и 5 для временного хранения значений в тр-дос + POP AF + PUSH AF + LD HL,%00'00'0'00000'0100 + OR H + LD H,A + LD DE,%11'01'0'00110'1111 + PUSH DE + LD BC,ACEX.TMP_CELL_1 * 256 + BIOS.DCP_CONFIG + LD A,C + CALL ToBIOS_FromEXT + ; + POP DE + POP AF + LD HL,%00'00'0'00000'0101 + OR H + LD H,A + LD BC,ACEX.TMP_CELL_2 * 256 + BIOS.DCP_CONFIG + LD A,C + CALL ToBIOS_FromEXT + ENDIF LD E,0 LD BC,BIOS.LP_OPEN_S.ZX_32x24_Default CALL ToBIOS_FromEXT diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 02a4ae6..137b613 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -26,6 +26,7 @@ RELEASEhotFIX EQU 0 ; ;DEFINE HDDwriteProtect 0 ; старая фишка для функций 5x DEFINE UnusedSettingsFeatures 0 ; ;DEFINE OPTIMIZE_RW_PROCEDURE 0 ; + DEFINE TMP_CELLS_INIT 0 ; инит портов 4 и 5 для временного хранения значений в тр-дос DEFINE BIG_ENDIAN_STR_PRINT 1 ; ; ; 0 - печать с порчей буфера и пропуском двойных пробелов - в 1,5 раза шустрее стока ;!FIXIT не затирает предыдущую строку ; ; 1 - печать с порчей буфера без пропуска двойных пробелов - в 3 раза шустрее стока diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 08b917564de81e60a28f2316d0efd842bfd901b1..247d818b20b5e7c0f2bfadb9059fc4f9f2b9f5e9 100644 GIT binary patch delta 4990 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 o0p$t6m