From bb20ae0b3939c5179c845d4724caab6b75ba51c7 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Wed, 23 Oct 2024 22:05:54 +1000 Subject: [PATCH] ... --- Shared_Includes | 2 +- src/bios/exp/EXP.asm | 10 ++++-- src/bios/exp/FUNC_SCREEN.ASM | 60 ++++++++++++++++----------------- src/bios/exp/FUNC_SERVICE.asm | 53 ++++++++++++++--------------- src/bios/rom/SETUP/MAIN.asm | 4 +-- src/bios/rom/SETUP/SETTINGS.asm | 2 +- src/bios/rom/SETUP/VIDEO_IO.asm | 32 +++++++++++++----- 7 files changed, 91 insertions(+), 72 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index c7bcbd0..5484390 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit c7bcbd096d4674064766dc9f61121f4843ddd635 +Subproject commit 54843903de0b33e3403f6f6c5b7d144c7bd482aa diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index edd5faf..3bdd707 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -777,6 +777,12 @@ Check_EE_Port: LD A,ACEX.RET_PORT ;CALL @ToBIOS_3D13 ; переустановить внутр. порт #EE CALL SET_PORTS ; + ; [ ] 20/10/2024 игнор перехватчика по клавише 0 + LD A,high ZXKeys.Line_4 + IN A,(ZXKeys) + RRCA + JR NC,No_Reset_handlers + ; LD A,B AND A JR Z,Check_Spec_Page @@ -795,8 +801,8 @@ Check_EE_Port: LD A,ACEX.RET_PORT JR Z,.JPHL ; olg logic ; new logic .ver_2: EXX - LD HL,(Spec_Page.Stack_Point) - LD SP,HL + LD HL,(Spec_Page.Stack_Point) + LD SP,HL EXX AND A LD A,#FF diff --git a/src/bios/exp/FUNC_SCREEN.ASM b/src/bios/exp/FUNC_SCREEN.ASM index 2fad725..ebd7fac 100644 --- a/src/bios/exp/FUNC_SCREEN.ASM +++ b/src/bios/exp/FUNC_SCREEN.ASM @@ -7,7 +7,7 @@ PIC_FN1: SCF RET NZ - IN A,(RGADR) + IN A,(PORT_Y) PUSH AF IN A,(SLOT3) @@ -17,7 +17,7 @@ PIC_FN1: LD A,(WIN_ID_0.GRAF_Y) ADD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD A,B LD BC,(WIN_ID_0.GRAF_X) ADD HL,BC @@ -29,7 +29,7 @@ PIC_FN1: OUT (SLOT3),A POP AF - OUT (RGADR),A + OUT (PORT_Y),A RET ; вход: DE - вертикаль, HL - горизонталь. @@ -53,7 +53,7 @@ PIC_FN2_NO_2ND: ADD HL,BC LD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD A,XH AND A @@ -108,7 +108,7 @@ PIC_FN2_NO4: EX AF,AF' OUT (SLOT1),A XOR A - OUT (RGADR),A + OUT (PORT_Y),A RET ;************************************************************************ @@ -140,7 +140,7 @@ PIC_FN3_NO_2ND: ADD HL,BC LD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD A,H EXX @@ -179,7 +179,7 @@ PIC_FN3_NO: OUT (SLOT3),A XOR A - OUT (RGADR),A + OUT (PORT_Y),A RET ;************************************************************************** @@ -190,10 +190,10 @@ PIC_SET_PAL: PUSH IX EX AF,AF' - IN A,(RGADR) - PUSH AF ; сохранить положение RGADR + IN A,(PORT_Y) + PUSH AF ; сохранить положение PORT_Y LD A,E - OUT (RGADR),A ; начальный цвет в порт + OUT (PORT_Y),A ; начальный цвет в порт LD A,D ; сохранить число цветов EX AF,AF' ; вернуть страницу PAL @@ -246,14 +246,14 @@ PIC_SET_PAL: LD (IX+3),A INC HL - IN A,(RGADR) + IN A,(PORT_Y) INC A - OUT (RGADR),A + OUT (PORT_Y),A DJNZ .loopPal ; выполнять, пока не 0 .exit: OUT (C),E ; восстановить страницу 3 POP AF - OUT (RGADR),A ; восстановить Y_PORT + OUT (PORT_Y),A ; восстановить Y_PORT POP IX AND A RET @@ -277,9 +277,9 @@ PIC_GET_PAL: LD (HL),A ; Y INC HL - IN A,(RGADR) + IN A,(PORT_Y) INC A - OUT (RGADR),A + OUT (PORT_Y),A DJNZ .loopPal ; выполнять, пока не 0 JR PIC_SET_PAL.exit @@ -324,14 +324,14 @@ SET_PAL_INIT: ; LD A,#50 ; OUT (SLOT1),A ; XOR A -; OUT (RGADR),A +; OUT (PORT_Y),A ; EX AF,AF' ; call PAL_LOOP_M ; ; POP AF ; OUT (SLOT1),A ; XOR A -; OUT (RGADR),A +; OUT (PORT_Y),A ; ; RET @@ -357,7 +357,7 @@ PIC_FN7: ADD HL,BC LD A,E -.loop: OUT (RGADR),A ; страница видео-ОЗУ +.loop: OUT (PORT_Y),A ; страница видео-ОЗУ LD (HL),D EXX @@ -390,7 +390,7 @@ PIC_FN7: POP AF OUT (SLOT1),A XOR A - OUT (RGADR),A + OUT (PORT_Y),A RET ;****************************************************************** @@ -414,7 +414,7 @@ PIC_FN8: ADD HL,BC LD A,E -.loop: OUT (RGADR),A ; страница видео-ОЗУ +.loop: OUT (PORT_Y),A ; страница видео-ОЗУ LD D,(IX) INC IX LD (HL),D @@ -451,7 +451,7 @@ PIC_FN8: POP AF OUT (SLOT1),A XOR A - OUT (RGADR),A + OUT (PORT_Y),A RET ;************************************************** @@ -485,14 +485,14 @@ PIC_FN15: ; MACRO NEXT_LIN_H ; EX AF,AF' ; INC A -; OUT (RGADR),A +; OUT (PORT_Y),A ; EX AF,AF' ; ENDM ; MACRO NEXT_LIN_HP ; EX AF,AF' ; INC A -; OUT (RGADR),A +; OUT (PORT_Y),A ; JR NZ,.MD_NO_INC_H ; INC L ; .MD_NO_INC_H: @@ -520,7 +520,7 @@ SET_TXT_PALETTE: ; .ZX: LD DE,0 .TXT: PUSH IX - IN A,(RGADR) + IN A,(PORT_Y) PUSH AF IN A,(SLOT3) EX AF,AF' @@ -531,7 +531,7 @@ SET_TXT_PALETTE: .generate_loop: CALL GENERATE_PAL1 LD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD (IX),L ; R LD (IX+1),B ; G LD (IX+2),C ; B @@ -549,7 +549,7 @@ SET_TXT_PALETTE: EX AF,AF' OUT (SLOT3),A POP AF - OUT (RGADR),A + OUT (PORT_Y),A POP IX RET @@ -680,7 +680,7 @@ GENERATE_IBM: ; D - номер графической палитры SET_GRAPH_PALETTE: PUSH IX - IN A,(RGADR) + IN A,(PORT_Y) PUSH AF IN A,(SLOT3) @@ -708,7 +708,7 @@ SET_GRAPH_PALETTE: SET_PAL_GR1: LD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD (IX),L LD (IX+1),B @@ -730,7 +730,7 @@ SET_PAL_GR1: SET_PAL_GR2: LD A,E - OUT (RGADR),A + OUT (PORT_Y),A LD (IX),L LD (IX+1),B @@ -745,7 +745,7 @@ SET_PAL_GR2: EX AF,AF' OUT (SLOT3),A POP AF - OUT (RGADR),A + OUT (PORT_Y),A POP IX RET ; diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index 42b5d90..0a6cb13 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -109,7 +109,7 @@ RST_CONF: .not_vRAM_page: CP ACEX.Config_PG.Sp2000_SoftSetUp JP Z,.ReturnSoftReset ; - CP ACEX.Config_PG.Sp2000 + CP ACEX.Config_PG.Sp2000_AcexSetUp JR Z,.INIT_ACEX ; CP ACEX.Config_PG.Sp2000_SetUp @@ -163,9 +163,9 @@ RST_CONF: LDIR ; если ZF=0, то процедура сделает ресет с перезаливкой из BIOS, иначе из КЭШ CALL Spec_Page.init_acex - LD BC,BIOS.REINIT.HARD_RESET + LD B,high BIOS.REINIT.HARD_RESET ; - ; на входе в BC параметры функции BIOS + ; на входе в B параметры функции BIOS REINIT .INIT_ACEX.ifSoftreset: ; сохраняем воткнутые страницы в Spec_Page IN A,(SLOT0) @@ -209,7 +209,7 @@ RST_CONF: ; * ; .. ... ... .. ;LD BC,BIOS.REINIT.HARD_RESET - JP_to_BIOS + JP REINIT ; .ReturnSoftReset: DI @@ -222,7 +222,7 @@ RST_CONF: LD A,Spec_Page OUT (SLOT3),A ; - LD BC,BIOS.REINIT.SOFT_RESET + LD B,high BIOS.REINIT.SOFT_RESET JR .INIT_ACEX.ifSoftreset ; ;;; @@ -373,28 +373,6 @@ REINIT: DEC B OUT (C),B RET -;[x] -.HardReset: - DI - LD A,SYS_PORT.CNF_0 - OUT (SYS_PORT.ROM),A - ; - LD A,Z84.REG.Misc_Ctrl - OUT (Z84.SYS.Control),A - LD A,%0000'0011 ; CS1/CS0 enabled - OUT (Z84.SYS.Data),A - ; - LD A,DCP_PAGE - OUT (SLOT1),A ; set DCP page - LD A,ACEX.RESET - LD (#4400),A ; open for WR -.loop: LD BC,#0100 ; цикл сброса - OUT (C),C - LD B,C - OUT (C),C - JR .loop ; полностью зациклить! -; - ;[x] .Restart: DI XOR A @@ -433,6 +411,27 @@ REINIT: DEC B JR .loop2 ; +;[x] +.HardReset: + DI + LD A,SYS_PORT.CNF_0 + OUT (SYS_PORT.ROM),A + ; + LD A,Z84.REG.Misc_Ctrl + OUT (Z84.SYS.Control),A + LD A,%0000'0011 ; CS1/CS0 enabled + OUT (Z84.SYS.Data),A + ; + LD A,DCP_PAGE + OUT (SLOT1),A ; set DCP page + LD A,ACEX.RESET + LD (#4400),A ; open for WR +.loop: LD BC,#0100 ; цикл сброса + OUT (C),C + LD B,C + OUT (C),C + JR .loop ; полностью зациклить! +; ;----------------------------------------------------------------------; ; Вход: H - RAM_TABLE ; D - Buffer for RAM_TABLE diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 83b9513..8343a73 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -492,9 +492,9 @@ INSTALL: CALL INT_ON CALL SET_CGA XOR A - OUT (#FE),A + OUT (BorderColor),A LD IX,win_descriptor.tab80x32 - LD HL,#0000 + ;LD HL,#0000 LD E,1 CALL WIN_OPEN diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index a69331e..a08ea4c 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -858,7 +858,7 @@ setInt: ld a,CMOS_CELL.ScreenSET .set: CALL FN_SYNC LD IX,win_descriptor.tab80x32 - LD HL,#0000 + ;LD HL,#0000 LD E,1 CALL WIN_OPEN diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index 4ac4817..eb14978 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -229,7 +229,7 @@ LOGOTYPE: CALL SHOW_LOGO DJNZ .MMA ; ; .ERASE_LOGO: LD IX,win_descriptor.tab80x32 - LD HL,#0000 + ;LD HL,#0000 LD E,1 ; EI @@ -252,7 +252,7 @@ LOGOTYPE: CALL SHOW_LOGO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SHOW_LOGO: LD IX,win_descriptor.tab320x256 - LD HL,#0000 + ;LD HL,#0000 LD E,1 CALL WIN_OPEN @@ -363,7 +363,7 @@ go_setup: ; !FIXIT jr nz,go_setup LD IX,win_descriptor.tab80x32 - LD HL,#0000 + ;LD HL,#0000 LD E,1 CALL WIN_OPEN JP ENTER_SETUP @@ -456,6 +456,20 @@ LOGO_TO_SCREEN: SET_CGA: + ; LD A,4 + ; LD B,3 + ; CALL SET_PAL_INIT + ; LD A,5 + ; LD B,3 + ; CALL SET_PAL_INIT + ; LD A,6 + ; LD B,3 + ; CALL SET_PAL_INIT + ; LD A,7 + ; LD B,3 + ; CALL SET_PAL_INIT + ; RET + CALL SETPAL4 LD A,4 ; page_pal LD HL,memBUFFER.Shared @@ -495,10 +509,10 @@ SETPAL4: LD DE,memBUFFER.Shared LD C,#08 -DCR0: LD B,COLORS.CGA.PALETTE.ColNum +.DCR0: LD B,COLORS.CGA.PALETTE.ColNum PUSH HL ; -DCR1: POP HL +.DCR1: POP HL PUSH HL PUSH BC LDI @@ -506,12 +520,12 @@ DCR1: POP HL LDI LDI POP BC - DJNZ DCR1 + DJNZ .DCR1 ; INC SP INC SP DEC C - JR NZ,DCR0 + JR NZ,.DCR0 LD HL,memBUFFER.Shared LD BC,512 @@ -522,14 +536,14 @@ SETPAL5: LD HL,COLORS.CGA.PALETTE LD DE,memBUFFER.Shared LD B,#08 -DCR01: +.DCR01: PUSH BC PUSH HL LD BC,16*4 LDIR POP HL POP BC - DJNZ DCR01 + DJNZ .DCR01 LD HL,memBUFFER.Shared LD BC,512 LDIR