diff --git a/Shared_Includes b/Shared_Includes index 6d439eb..afe66b1 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 6d439eb5a2fdbf826942b020871dc40726c50ab8 +Subproject commit afe66b1f354cab8d2780826697cf371d1d9e389d diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 3e67471..5470998 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -290,7 +290,6 @@ GLOBAL_RESET: NO_RESTART: ; стек ещё не используем!!! LD SP,IX ; сохранить значение переданное загрузчиком конфы (если старт после ресета) - ; инициализация внутренних портов Z84C15 для POST-Tester-а LD A,5 ; COM port for Printer OUT OUT (Z84.SIO.Ch_A.Ctrl),A @@ -324,14 +323,10 @@ NO_RESTART: ;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== IF TEST_INT -;!FIXIT перенести в ROM.BIOS и сделать -; так, чтоб могла правильно прыгать в -; любые слоты и работать с DSS ;----------------[int]------------------ EXTINT: OR A RET Z - ;LD C,SLOT1 BIT 7,H JR Z,.L2 LD C,SLOT2 @@ -949,16 +944,6 @@ PORTS_INIT: LD A,#62 ;60, 61 OUT (Z84.SIO.Ch_A.Ctrl),A -;----[Clearing the keyboard buffer]----- -.clean_kbd_buf: - IN A,(Z84.SIO.Ch_A.Ctrl) - BIT 0,A - JR Z,1F - IN A,(Z84.SIO.Ch_A.Data) - JR .clean_kbd_buf -1: ;exit from .clean_kbd_buf -;--------------------------------------- - ; Инициализация мыши .mouse: XOR A ;LD A,0 OUT (Z84.SIO.Ch_B.Ctrl),A @@ -975,7 +960,8 @@ PORTS_INIT: LD A,4 OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#44 + //LD A,#44 + LD A,#47 OUT (Z84.SIO.Ch_B.Ctrl),A LD A,5 @@ -984,9 +970,9 @@ PORTS_INIT: OUT (Z84.SIO.Ch_B.Ctrl),A ; Инициализация таймера мыши - LD A,85 + LD A,#55 OUT (Z84.CTC.Ch_0),A - LD A,45 + LD A,#2D OUT (Z84.CTC.Ch_0),A ; Инициализация параллельного порта 1 (принтер) @@ -1051,6 +1037,16 @@ PORTS_INIT: LD A,01 OUT (C),A ; RAM-0 mode !!! +;----[Clearing the keyboard buffer]----- +.clean_kbd_buf: + IN A,(Z84.SIO.Ch_A.Ctrl) + BIT 0,A + JR Z,1F + IN A,(Z84.SIO.Ch_A.Data) + JR .clean_kbd_buf +1: ;exit from .clean_kbd_buf +;--------------------------------------- + RET ;-----------------------------------------------------------------------; diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index 7edc90c..79ea1de 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -80,24 +80,25 @@ EMM.InitMem: ;---------------------------------------------------------------------[] RESERVED_PAGES: ;; Block #1 - можно освободить по ID 1 - DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ; for Spectrum - ; эмулятор ПЗУ - DB #42,#43,#44,#45,#46,47,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION - DB #FF ; End of the block - + DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ; for Spectrum + ; эмулятор ПЗУ + DB #42,#43,#44,#45,#46,47,#48,#49,#4A,#4B ; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION + DB #FF ; End of the block + ; + ; ;; Block #2 - нельзя освобождать - DB 0 ; for Spectrum - DB DCP_PAGE ; Ports map - DB Spec_Page ; Page for Spectrum mode - ; Screen pages - DB #50,#51,#52,#53,#54,#55,#56,#57 - DB #58,#59,#5A,#5B,#5C,#5D,#5E,#5F - ; - DB MODE_PAGE ; ????? - DB CBL.BUFFER_PAGE ; Page for CBL audio - DB SYS_PAGE ; Page for system (BIOS) variables - DB #FF ; End of the block - + DB 0 ; for Spectrum + DB DCP_PAGE ; Ports map + DB Spec_Page ; Page for Spectrum mode + ; Screen pages + DB #50,#51,#52,#53,#54,#55,#56,#57 + DB #58,#59,#5A,#5B,#5C,#5D,#5E,#5F + ; + ;DB MODE_PAGE ; ????? + DB CBL.BUFFER_PAGE ; Page for CBL audio + DB SYS_PAGE ; Page for system (BIOS) variables + DB #FF ; End of the block + ; .Blocks EQU 2 ;----------------------------------------------------------------------; ; diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index 5a4ff9a..b710798 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -78,7 +78,7 @@ RST_CONF: LD A,E ; config-byte CP #FF - LD A,128 + LD A,#80 JR Z,.YES_CBL XOR A .YES_CBL: diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index cbd44e0..c944e05 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -54,9 +54,9 @@ FN_VERSION: EX DE,HL LD HL,ID_SPRINTER_length - ld c,(hl) - inc hl - ld b,0 + LD C,(HL) + INC HL + LD B,0 LDIR POP HL @@ -92,75 +92,87 @@ FN_CRIPT: ;----------------------------------------------------------------------; ;EMM_FN7 EMM.CheckColdInit: - IN A,(SLOT2) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT2),A + IN A,(SLOT2) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT2),A - LD HL,SYS_PAGE.ID_FLAG - #4000 - LD DE,ID_SPRINTER_length - ld a,(de) - inc de - ld b,a -.loop: LD A,(DE) - CP (HL) - JR NZ,INIT_SYS_ALL - INC HL - INC DE - DJNZ .loop - EX AF,AF' - OUT (SLOT2),A + LD HL,SYS_PAGE.ID_FLAG - #4000 + LD DE,ID_SPRINTER_length + LD A,(DE) + INC DE + LD B,A +.loop: LD A,(DE) + CP (HL) + JR NZ,INIT_SYS_ALL + INC HL + INC DE + DJNZ .loop + + ; Disable user IM address in SYS_PAGE + XOR A + LD (SYS_PAGE.INT_ID - #4000),A + ; + + EX AF,AF' + OUT (SLOT2),A RET ;MSDOS_COLD_VARS: EMM.FullInit: DI - IN A,(SLOT2) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT2),A + IN A,(SLOT2) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT2),A INIT_SYS_ALL: - LD HL,ID_SPRINTER_length - LD DE,SYS_PAGE.ID_FLAG - #4000 - LD C,(hl) - LD B,0 - INC hl + DI + LD HL,ID_SPRINTER_length + LD DE,SYS_PAGE.ID_FLAG - #4000 + LD C,(HL) + LD B,0 + INC HL LDIR + ; Disable user IM address in SYS_PAGE + XOR A + LD (SYS_PAGE.INT_ID - #4000),A + ; + ;!TODO что за переменные? - LD HL,SYS_PAGE.DISK_TYPE-#4000 - LD (HL),0 ;!HARDCODE - INC HL - LD (HL),1 ;!HARDCODE - INC HL - LD (HL),#40 ;!HARDCODE HDD - INC HL - LD (HL),3 ;!HARDCODE - INC HL - LD (HL),0 ; SYS_PAGE.COPY_SLOT0 - INC HL - LD (HL),5 ; SYS_PAGE.COPY_SLOT1 - INC HL - LD (HL),2 ; SYS_PAGE.COPY_SLOT2 - INC HL - LD (HL),0 ; SYS_PAGE.COPY_SLOT3 + LD HL,SYS_PAGE.DISK_TYPE-#4000 + LD (HL),0 ;!HARDCODE + INC HL + LD (HL),1 ;!HARDCODE + INC HL + LD (HL),#40 ;!HARDCODE HDD + INC HL + LD (HL),3 ;!HARDCODE + INC HL + LD (HL),0 ; SYS_PAGE.COPY_SLOT0 + INC HL + LD (HL),5 ; SYS_PAGE.COPY_SLOT1 + INC HL + LD (HL),2 ; SYS_PAGE.COPY_SLOT2 + INC HL + LD (HL),0 ; SYS_PAGE.COPY_SLOT3 - LD A,9 - LD (SYS_PAGE.MSD_SECS-#4000),A - LD A,0 - LD (SYS_PAGE.DS_1440-#4000),A + LD A,9 + LD (SYS_PAGE.MSD_SECS-#4000),A + LD A,0 + LD (SYS_PAGE.DS_1440-#4000),A - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - LD DE,SYS_PAGE.RAMD_KEYS+1-#4000 + LD HL,SYS_PAGE.RAMD_KEYS-#4000 + LD DE,SYS_PAGE.RAMD_KEYS+1-#4000 - LD BC,SYS_PAGE.RAMD_KEYS.NUM-1 - LD (HL),0 + LD BC,SYS_PAGE.RAMD_KEYS.NUM-1 + LD (HL),0 LDIR - LD DE,ZG_ADDRESS ; адрес знакогенератора - LD (SYS_PAGE.WIN_ZG-#4000),DE + LD DE,ZG_ADDRESS ; адрес знакогенератора + LD (SYS_PAGE.WIN_ZG-#4000),DE ; ;-----------[new code start]------------; !!!!! посмотреть-причесать INIT_VSyncAndWaits: diff --git a/src/bios/loader/loader.asm b/src/bios/loader/loader.asm index 36fd1f5..b3032ef 100644 --- a/src/bios/loader/loader.asm +++ b/src/bios/loader/loader.asm @@ -104,7 +104,7 @@ .ONES_CONFIG: LD IY,#0107 ;!!!!! подумать))) ;!TEST - ;LD IX,#FFFD ;!!!!! подумать))) + ;LD IX,#FFFD LD IX,SP2000_ConfID ;!!!!! подумать))) ; .LOOP1: diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 7cf4bcd..d1b5deb 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -462,7 +462,7 @@ START: PUSH AF XOR A LD (ERRSUM),A - ld (ERRSUM.ErrDateTime),a + LD (ERRSUM.ErrDateTime),A ; LD C,#97 ; RST_to_BIOS_18 @@ -490,14 +490,15 @@ START: CALL TCHEKSM CALL NZ,SETDEFX - -; LD A,#1C ;!TODO CMOS Disabled use of CONFIG_DE (#C13A) word -; CALL READCMS -; PUSH AF -; LD A,#1B ;!TODO CMOS -; CALL READCMS -; POP DE -; LD E,A + ;!TODO CMOS Disabled use of CONFIG_DE (#C13A) word + ;LD A,#1C + ;CALL READCMS + ;PUSH AF + ;LD A,#1B ;!TODO CMOS + ;CALL READCMS + ;POP DE + ;LD E,A + ; LD C,SLOT3 IN B,(C) @@ -579,7 +580,7 @@ ERRSUM+1: LD A,#00 ;MEM Patch! OR A JR Z,.ErrDateTime - xor a + XOR A ld (.ErrDateTime+1),a ; если контрольная сумма слетела, то сообщение о кривых дате/времени в кмос не выводим LD A,msgStrings.cmosChecksumErr LD E,COLORS.INC.RED @@ -589,9 +590,9 @@ ERRSUM+1: JR CHEKOK .ErrDateTime+1: - ld a,0 - or a - jr z,CHEKOK + LD A,0 + OR A + JR Z,CHEKOK LD A,msgStrings.cmosDateTimeErr LD E,COLORS.INC.RED CALL POSTMSC diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 3f37079..3f076e0 100755 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ diff --git a/src/bios/shared/VERSION.inc b/src/bios/shared/VERSION.inc index f827a71..d865884 100644 --- a/src/bios/shared/VERSION.inc +++ b/src/bios/shared/VERSION.inc @@ -28,7 +28,7 @@ Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10 ;--------------------------------------- - DEFINE SPTeam_year '2022' + DEFINE SPTeam_year '2023' DEFINE SetupVer '1.60'