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 08b9175..247d818 100644 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ