From b9a8c23723d3074a20c6e067def94eb698db053b Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Thu, 28 Sep 2023 05:10:02 +1000 Subject: [PATCH] ... --- Shared_Includes | 2 +- src/bios/exp/FUNC_RAM_ROM_DRV.ASM | 18 +++++++++--------- src/bios/rom/ROM.asm | 14 +++++++------- src/bios/rom/SETUP/MAIN.asm | 31 ++++++++++++++++--------------- 4 files changed, 33 insertions(+), 32 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index b593cb6..639cc1e 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit b593cb606636c961e49597b9b1e5b6ee72d191c9 +Subproject commit 639cc1e69de900dd85e1bc4d3525dfeb91ea15ab diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index a40eff5..7b64620 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -10,7 +10,7 @@ EMM.GetMemSize: LD B,A LD A,SYS_PAGE OUT (SLOT1),A - LD HL,SYS_PAGE.RAMD_FAT-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 LD C,0 .loop: LD A,(HL) INC L @@ -41,7 +41,7 @@ EMM.InitMem: LD C,A LD A,SYS_PAGE OUT (SLOT1),A - LD HL,SYS_PAGE.RAMD_FAT-#4000 - #4000 ; Адрес FAT ОЗУ. + LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 ; Адрес FAT ОЗУ. ; обнуляем таблицу .loopFree: LD (HL),0 @@ -66,7 +66,7 @@ EMM.InitMem: LD L,A LD (HL),A ; Инициализация ключей RAM-Disks - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 LD B,SYS_PAGE.RAMD_KEYS.NUM .loop2: LD (HL),0 INC L @@ -121,7 +121,7 @@ EMM.GetMem: LD A,SYS_PAGE OUT (SLOT1),A LD C,B ; сохранить число нужных блоков - LD HL,SYS_PAGE.RAMD_FAT-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 ; Цикл проверки наличия нужных блоков. .loop: DEC L JR Z,.noRAM @@ -133,7 +133,7 @@ EMM.GetMem: ; Место есть ! LD B,C ; Восстановить нужный объем диска LD C,#FF ; МЕТКА КОНЦА RAM-Disk - LD HL,SYS_PAGE.RAMD_FAT-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 ; Заполнить RAMD_FAT .loop2: DEC L @@ -800,7 +800,7 @@ GET_RAMD_NUM: LD BC,SYS_PAGE * 256 + SLOT1 OUT (C),B - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 LD BC,SYS_PAGE.RAMD_KEYS.NUM CPIR @@ -831,7 +831,7 @@ GET_RAMD_ST: PUSH BC - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 ADD A,L LD L,A @@ -867,7 +867,7 @@ BLK_TO_RAMD: LD A,SYS_PAGE OUT (SLOT1),A LD A,L - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - #4000 + LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 ADD A,L LD L,A LD A,(HL) ; ключ блока @@ -911,7 +911,7 @@ RAMD_CLEAR: LD A,SYS_PAGE OUT (SLOT1),A LD A,L - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - #4000 ; RAM-Disk свободен + LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 ; RAM-Disk свободен ADD A,L LD L,A LD B,A ; запомнить удаляемый рамдиск diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index 8d34bbf..021f1e7 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -146,7 +146,7 @@ NMI: RETN ;----------------------------[ FOR ZX-MODE ]----------------------------; ;!HARDCODE на этот адрес #С0 прыгает в vROM Basic-48 по адресу #3CF0 ; можно попробовать переделать этот адрес там - _mInfoBLOCK #C0-$,0 + _mInfoBLOCK #C0-$,#FF ;!TEST 0 INCLUDE 'ZX/ZX_FUNC.ASM' INCLUDE 'ZX/ZX_MENU.ASM' ;-----------------------------------------------------------------------; @@ -238,7 +238,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ; JR MAGIC_3 ;************************* - _mInfoBLOCK #3CE0-$,0 + _mInfoBLOCK #3CE0-$,#FF ;!TEST 0 ;SW_ROM_1: LD HL,#259F ;!HARDCODE Show Main Menu in BASIC-128 PUSH HL @@ -250,7 +250,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup JR SW_ROM ; ПРОСТОЙ ВОЗВРАТ ;************************* - _mInfoBLOCK #3CF0-$,0 + _mInfoBLOCK #3CF0-$,#FF ;!TEST 0 ;JMP_48: ; LD HL,00h ; JR JP_HL_48 @@ -260,7 +260,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ; NOP ;*************************************** - _mInfoBLOCK #3CF8-$,0 + _mInfoBLOCK #3CF8-$,#FF ;!TEST 0 ; no basic-48! JP_HL_48: PUSH HL @@ -399,7 +399,7 @@ TRDOS_HD_CMD: ;!FIXIT Можно поправить номера функций при вызовах из TR-DOS и прыгать сразу в BIOS ;-------[ From TR-DOS to API 4x ]------- - _mInfoBLOCK #3FF0-$,255 + _mInfoBLOCK #3FF0-$,#FF RET_TO_TRDOS: PUSH AF DI @@ -411,11 +411,11 @@ RET_TO_TRDOS: ;-----[???????????????????????????]----- - _mInfoBLOCK #3FF8-$,255 + _mInfoBLOCK #3FF8-$,#FF ; PUSH AF ; LD A,ROM.BIOS ; OUT (SYS_PORT.RAM),A ; JP #0000 ;--------------------------------------- - _mInfoBLOCK #4000-$,255 + _mInfoBLOCK #4000-$,#FF ;======================================= diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 289f2d7..5255550 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -924,14 +924,14 @@ CDSTART: RDSTART: LD A,msgStrings.bootRamDrv CALL POSTMSG - ld b,#60 ; !HARDCODE: 6 - тип драйва RAM-DRV, 0 - номер драйва -.loop: push bc + LD B,#60 ; !HARDCODE: 6 - тип драйва RAM-DRV, 0 - номер драйва +.loop: PUSH BC CALL OS_LOAD - pop bc - inc b - ld a,#6F ; !HARDCODE - максимальное число рамдисков - sub b - jr nc,.loop + POP BC + INC B + LD A,#6F ; !HARDCODE - максимальное число рамдисков + SUB B + JR NC,.loop RET @@ -941,20 +941,21 @@ HDSTART: LD A,SYS_PAGE OUT (SLOT3),A LD A,B - + ; AND #03 ;R02 %00000011 LD IY,IDE.INIT_TBL_IDE0 JR Z,.next - + ; LD IY,IDE.INIT_TBL_IDE1 - CP 1 ;R02 + CP 1 ;R02 JR Z,.next - - LD IY,IDE.INIT_TBL_IDE2 ;R02 - CP 2 ;R02 + ; + LD IY,IDE.INIT_TBL_IDE2 ;R02 + CP 2 ;R02 JR Z,.next - - LD IY,IDE.INIT_TBL_IDE3 ;R02 + ; + LD IY,IDE.INIT_TBL_IDE3 ;R02 + ; .next: LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) EX AF,AF' OUT (SLOT3),A