diff --git a/Shared_Includes b/Shared_Includes index 77a5168..f3ac185 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 77a51684d4d63ad2fdccf416793951df00276b17 +Subproject commit f3ac185e2fe2d1e76f8e54c3c1f421a99fafdd62 diff --git a/src/ZX_ROMS/new/SP_TRDOS.bin b/src/ZX_ROMS/new/SP_TRDOS.bin index 57ff6bd..5b0e138 100644 Binary files a/src/ZX_ROMS/new/SP_TRDOS.bin and b/src/ZX_ROMS/new/SP_TRDOS.bin differ diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 43e366e..73ba255 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -59,7 +59,6 @@ HD_BPB_PREP: ;LD IX,#0000 ;LD B,#01 - LD B,A IN A,(SLOT3) EX AF,AF' @@ -234,6 +233,8 @@ FN_HDD_PREPARE: ; AND A RET + + FN_HDD_READ_BPB: CALL HD_WAIT RET C @@ -846,8 +847,9 @@ SET_BPB_OFFSET: INC A LD B,A ; - LD HL,SYS_PAGE.MS_BPB-16 + #01BE ;!HARDCODE смещение от начала сектора для таблицы разделов c первым сектором LBA для первого раздела - LD DE,16 ;!HARDCODE размер поля описателя раздела + ; ; смещение от начала сектора для таблицы разделов c первым сектором LBA для первого раздела + LD HL,SYS_PAGE.MS_BPB - _sMBR_PARTITION_RECORD + _sBOOT_SECTOR.PARTITION_TABLE + LD DE,_sMBR_PARTITION_RECORD .loop: ADD HL,DE DJNZ .loop ; diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index 957b168..4b6e078 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -72,14 +72,14 @@ RST_CONF: ;--[] .CUSTOM: - CP #80 - JR NC,.CHOOSE_CNF + CP #80 + JR NC,.CHOOSE_CNF ; only for old FLEX10K soft compatible - LD C,SLOT3 - IN B,(C) - OUT (C),A ; PAGE с прошивкой - LD DE,(#C090) ; PLD-ID - OUT (C),B ; RET page + LD C,SLOT3 + IN B,(C) + OUT (C),A ; PAGE с прошивкой + LD DE,(#C090) ; PLD-ID + OUT (C),B ; RET page ;--[] ;JR INT_PLD .INT_PLD: ; only for old FLEX10K soft compatible LD C,SLOT3 @@ -89,11 +89,11 @@ RST_CONF: LD (SYS_PAGE.CONFIG_BYTE),DE OUT (C),B - LD A,E ; config-byte - CP #FF - LD A,#80 - JR Z,.YES_CBL - XOR A + LD A,E ; config-byte + CP #FF + LD A,#80 + JR Z,.YES_CBL + XOR A .YES_CBL: LD BC,CBL.SYS_PORT OUT (C),A diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index 0bdcf2c..d7ecba1 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -200,13 +200,13 @@ INIT_SYS_ALL: ;!TODO что за переменные? LD HL,SYS_PAGE.DISK_TYPE-#4000 - LD (HL),0 ;!HARDCODE + LD (HL),DRIVE_CODES.TRDOS.FDD ; FDD A INC HL - LD (HL),1 ;!HARDCODE + LD (HL),DRIVE_CODES.TRDOS.FDD + 1 ; FDD B INC HL - LD (HL),#40 ;!HARDCODE HDD + LD (HL),DRIVE_CODES.TRDOS.HDD INC HL - LD (HL),3 ;!HARDCODE + LD (HL),DRIVE_CODES.TRDOS.HDD INC HL LD (HL),0 ; SYS_PAGE.COPY_SLOT0 INC HL @@ -488,7 +488,6 @@ LOOP_EQ: ; ;----------------------------------------------------------------------; ;********************************** -;!!!!! глянуть ; START_DI: ; PUSH AF ; LD A,R diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index c46c4a2..fe4131a 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -798,14 +798,17 @@ DETECTORS: ; если канал пустой, то читается из порта то, что было выставлено ; последним на шину c чётного адреса в памяти а это первый или второй ; байт кода команды - ALIGN 2 ; тут нужно выравнивание по задуманным адресам для команд чтения из портов + ALIGN 2 ; тут нужно выравнивание по задуманным адресам для команд чтения из портов .CheckChanel: LD BC,IDE.Read.Status IN A,(C) ;#ED78 A=#78 IN L,(C) ;#ED68 L=#68 LD D,A IN A,(C) ;#ED60 A=#ED LD E,L + ; если пустой: DE=#7868, A=#ED + ; LD HL,#7868 + #ED + AND A SBC HL,DE XOR L RET NZ ; not absent diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index a9aa3d7..e10ea85 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -900,7 +900,7 @@ RECOVERYstart: ; ;Exit from "ROM Disk to RAM disk" procedure .RDkey+*: LD A,0 - OR #60 ; !HARDCODE сделать им всем названия + OR DRIVE_CODES.SPRINTER.RAM LD B,A ; передаём загрузочное устройство в OS_LOAD JP OS_LOAD ; @@ -921,24 +921,24 @@ PrepareToBOOT: ;CALL INT_ON DEC BC ; CALL G_VALUE - LD B,0 + LD B,DRIVE_CODES.SPRINTER.FDD ; FDD OR A - JR Z,FDSTART ; FDD A: + JR Z,FDSTART ; FDD A: INC B DEC A - JR Z,FDSTART ; FDD B: + JR Z,FDSTART ; FDD B: ; IDE - LD B,#80 + LD B,DRIVE_CODES.SPRINTER.HDD DEC A JR Z,HDSTART - INC B ;LD B,#81 + INC B ;LD B,#81 DEC A JR Z,HDSTART - INC B ;LD B,#82 + INC B ;LD B,#82 DEC A JR Z,HDSTART - INC B ;LD B,#83 + INC B ;LD B,#83 DEC A JR Z,HDSTART ; RAM @@ -978,12 +978,12 @@ CDSTART: RDSTART: LD A,msgStrings.bootRamDrv CALL POSTMSG - LD B,#60 ; !HARDCODE: 6 - тип драйва RAM-DRV, 0 - номер драйва + LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - тип драйва RAM-DRV, 0 - номер драйва .loop: PUSH BC CALL OS_LOAD POP BC INC B - LD A,#6F ; !HARDCODE - максимальное число рамдисков + LD A,DRIVE_CODES.SPRINTER.RAM + SYS_PAGE.RAMD_KEYS.NUM-1 ; максимальный номер рамдиска SUB B JR NC,.loop RET