diff --git a/BOOT/DSSBOOT.ASM b/BOOT/DSSBOOT.ASM index b28f810..265a29d 100644 --- a/BOOT/DSSBOOT.ASM +++ b/BOOT/DSSBOOT.ASM @@ -300,34 +300,34 @@ INC_SECTOR_NUM: PUSH DE ; ; -PART_TB: PUSH BC - LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE) +PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE) LD DE,#AA55 ; CF = 0 SBC HL,DE SCF RET NZ + ; + PUSH BC LD IX,BOOT_BUFFER + BOOT_SECTOR.PARTITION_TABLE LD B, +(_sMBR_PARTITION_TABLE / _sMBR_PARTITION_RECORD) ; LD HL,YEPDOS ; - PUSH HL .part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID) ; ЕСЛИ добавится поддержка ещё нескольких типов ФС, то поменять 1fs на 2fs ; 1 CP PartitionSysTypes.FAT16_LBA - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS CP PartitionSysTypes.FAT16 - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS CP PartitionSysTypes.FAT16_32Mb - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS CP PartitionSysTypes.FAT12 - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS CP PartitionSysTypes.FAT32 - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS CP PartitionSysTypes.FAT32_LBA - RET Z ;JR Z,YEPDOS + JR Z,YEPDOS ; ; 2fs ; EXX @@ -724,10 +724,10 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H) LD A,(FatBuffer.SectorsPerCluster);!FIXIT прочтёт только первый кластер каталога на FAT32 .NEXTSEC: PUSH AF ADD IX,BC - JR NC,.skip_inc - INC HL - ;ADC HL,DE -.skip_inc: ;HL:IX + ;JR NC,.skip_inc + ;INC HL + ADC HL,DE +;.skip_inc: ;HL:IX PUSH IX PUSH HL LD BC,1*256 + BIOS.DRV_READ diff --git a/BOOT/boot.asm b/BOOT/boot.asm index 73d3e5d..807fd47 100644 --- a/BOOT/boot.asm +++ b/BOOT/boot.asm @@ -105,7 +105,8 @@ page_buffer equ #C000 ; include 'Shared_Includes/constants/EXE_Header.z80' ORG org_addr -BEGIN: in a,(SLOT3) +BEGIN: ;di + in a,(SLOT3) ld (port+1),a ; сохр. порт push ix call save_path ; сохр. тек. диск и путь diff --git a/SHELL/build.txt b/SHELL/build.txt index cdf1f34..57db2e9 100644 --- a/SHELL/build.txt +++ b/SHELL/build.txt @@ -1 +1 @@ -403 \ No newline at end of file +404 \ No newline at end of file