From eb3ee21087bd1d9b9b8175cd937f5c879e4d7798 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Fri, 28 Jun 2024 00:38:22 +1000 Subject: [PATCH] sys: fixed a bug in GETROOT reported by Roman Boykov. comment fixed --- BOOT/DSSBOOT.ASM | 170 +++++++++++++++++++++++------------------------ 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/BOOT/DSSBOOT.ASM b/BOOT/DSSBOOT.ASM index bee178c..352abf2 100644 --- a/BOOT/DSSBOOT.ASM +++ b/BOOT/DSSBOOT.ASM @@ -14,11 +14,11 @@ MODULE DSS_Boot_Loader -; BIOS 3.06 § £à㦠¥â ®¤¨­ ᥪâ®à § £àã§ç¨ª  ¨ ¯¥à¥¤ ñâ ¥¬ã ã¯à ¢«¥­¨¥. +; BIOS 3.06 ����㦠�� ���� ᥪ�� �����稪� � ��।��� ��� �ࠢ�����. - ; 0 - ®à¨£¨­ «ì­ë© ¢ à¨ ­â § ¯ã᪠ DSS, 1 - ¢ à¨ ­â ‘ ©¬ ­  + ; 0 - �ਣ������ ��ਠ�� ����᪠ DSS, 1 - ��ਠ�� ������� DEFINE ORIGINAL_DSS 0 - ; 1 - ¡ã¤¥â £à㧨âì ¢¥àá¨î ‘ ©¬ ­  ¨ ®á­®¢­ãî. 0 - ⮫쪮 ®á­®¢­ãî. + ; 1 - �㤥� ��㧨�� ����� ������� � �᭮����. 0 - ⮫쪮 �᭮����. DEFINE UNIVERSAL_BOOT 1 ;------------------------------------------------------------------------------ @@ -43,7 +43,7 @@ DRIVE: _mSYSID ; LD SP,#C000 ; ; LD (DRIVE),A - ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® + ;[ ] 17.12.2023 ����㧪� � ��⨢���� ࠧ����, � �� � ��ࢮ�� XOR A LD (DRIVE+1),A ; @@ -59,7 +59,7 @@ DRIVE: _mSYSID BIT 7,A JR Z,GOOD_DRIVE EX DE,HL - LD DE,2*256 + 21 ;!HARDCODE ¥á«¨ ¢¥àá¨ï ­¨¦¥ 2.21, â® ®è¨¡ª  + LD DE,2*256 + 21 ;!HARDCODE �᫨ ����� ���� 2.21, � �訡�� SBC HL,DE LD HL,MESSAGES.INCORR RET C ; goto FAIL @@ -67,7 +67,7 @@ DRIVE: _mSYSID GOOD_DRIVE: LD DE,#8200 ;!HARDCODE LD HL,0 LD IX,2 - LD BC,LOAD_SECTORS*256 + BIOS.DRV_READ ; ¤®§ £à㧪  ᥪâ®à®¢ § £àã§ç¨ª  + LD BC,LOAD_SECTORS*256 + BIOS.DRV_READ ; ������㧪� ᥪ�஢ �����稪� LD A,(DRIVE) RST ToBIOS_18 JP NC,CONTINUE @@ -164,7 +164,7 @@ CONTINUE: LD HL,0 ; LD HL,MESSAGES.NO_SYS RET C ; goto FAIL - ; [ ] § £à㧪  system.dos ¡®«ìè¥ #4000 ¡ ©â®¢ + ; [ ] ����㧪� system.dos ����� #4000 ���⮢ LD HL,(FSIZE1) LD A,H OR L @@ -177,14 +177,14 @@ CONTINUE: LD HL,0 .set_no_size: LD (LOAD_CORE.BIG_CORE),A OR A PUSH AF - ; § £à㧪  + ; ����㧪� EXX LD HL,(FCLUSTER_H) EXX LD HL,(FCLUSTR_L) LD DE,#C000 CALL LOAD_CORE - ; [ ] § £à㧪  system.dos ¡®«ìè¥ #4000 ¡ ©â®¢ + ; [ ] ����㧪� system.dos ����� #4000 ���⮢ EX AF,AF' POP AF JR Z,.no_big_core @@ -195,10 +195,10 @@ CONTINUE: LD HL,0 LD (LOAD_CORE.BANKDOS),A LD A,SUBLOAD_SIZE LD (LOAD_CORE.max_sectors),A - LD (LOAD_CORE.BIG_CORE),A ; ⥯¥àì íâ® áçñâ稪 ®áâ ¢è¨åáï ᥪâ®à®¢ + LD (LOAD_CORE.BIG_CORE),A ; ⥯��� �� ����稪 ��⠢���� ᥪ�஢ ; LD A,(BOOT_BUFFER + BOOT_SECTOR.SectorsPerCluster) - CP #20 + 1 ; !HARDCODE ª®«-¢® § £à㦠¥¬ëå ᥪâ®à®¢ + CP #20 + 1 ; !HARDCODE ���-�� ����㦠���� ᥪ�஢ JP NC,INC_SECTOR_NUM ;CALL R_F_FAT ; next cluster in chain CALL READ_FROM_FAT ; next cluster in chain @@ -223,11 +223,11 @@ RUN_CORE: DI ; ;DOS LOADED ;IF UNIVERSAL_BOOT - ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® - LD A,(DRIVE+1) ; ­®¬¥à à §¤¥«  + ;[ ] 17.12.2023 ����㧪� � ��⨢���� ࠧ����, � �� � ��ࢮ�� + LD A,(DRIVE+1) ; ����� ࠧ���� LD L,A ; - LD A,(DRIVE) ; ­®¬¥à ãáâனá⢠ + LD A,(DRIVE) ; ����� ���ன�⢠ LD C,Dss.Version RST ToDSS JP C,FAIL.NULL @@ -260,7 +260,7 @@ RUN_CORE: DI ; LD A,(DRIVE) ; LD BC,Dss.BootDSK.Set ; RST ToDSS - ; LD B‘,Dss.BootDSK.Get + ; LD B�,Dss.BootDSK.Get ; ENDIF ;ENDIF ; @@ -286,7 +286,7 @@ RUN_CORE: DI ; INC_SECTOR_NUM: PUSH DE CALL CLUSTER_TO_SECTOR - LD DE,#20 ;!HARDCODE ª®«¨ç¥á⢮ ¯à®ç¨â ­­ëå ᥪâ®à®¢ + LD DE,#20 ;!HARDCODE ������⢮ ���⠭��� ᥪ�஢ ADD IX,DE JR NC,.no_inc INC HL @@ -294,8 +294,8 @@ INC_SECTOR_NUM: PUSH DE POP DE LD BC,RUN_CORE PUSH BC - PUSH HL ; ¤«ï ¡ « ­á  - PUSH HL ; ¤«ï ¡ « ­á  + PUSH HL ; ��� ������ + PUSH HL ; ��� ������ JP LOAD_CORE.subload ; @@ -314,7 +314,7 @@ PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE) ;LD HL,YEPDOS ; .part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID) - ; …‘‹ˆ ¤®¡ ¢¨âáï ¯®¤¤¥à¦ª  ¥éñ ­¥áª®«ìª¨å ⨯®¢ ”‘, â® ¯®¬¥­ïâì 1fs ­  2fs + ; ���� ��������� �����প� ��� ��᪮�쪨� ⨯�� ��, � �������� 1fs �� 2fs ; 1 CP PartitionSysTypes.FAT16_LBA JR Z,YEPDOS @@ -362,13 +362,13 @@ PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE) ; ; -YEPDOS: ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® +YEPDOS: ;[ ] 17.12.2023 ����㧪� � ��⨢���� ࠧ����, � �� � ��ࢮ�� LD A,#80 CP (IX + _sMBR_PARTITION_RECORD.isActive) JR NZ,PART_TB.next - LD A,4 ;!HARDCODE áç¥â稪 § ¯¨á¥© ¯ àâ¨æ¨© ¢ MBR + LD A,4 ;!HARDCODE ���稪 ����ᥩ ����権 � MBR SUB B - PUSH AF ; ­®¬¥à § £à㧮筮£® à §¤¥«  + PUSH AF ; ����� ����㧮筮�� ࠧ���� ; LD L,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 0) LD H,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 1) @@ -382,10 +382,10 @@ YEPDOS: ;[ ] 17.12.2023 LD DE,BOOT_BUFFER LD BC,1*256 + BIOS.DRV_READ RST ToBIOS_18 - ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® + ;[ ] 17.12.2023 ����㧪� � ��⨢���� ࠧ����, � �� � ��ࢮ�� POP AF POP BC - LD L,A ; ­®¬¥à § £à㧮筮£® à §¤¥«  + LD L,A ; ����� ����㧮筮�� ࠧ���� LD A,C ; RET @@ -409,7 +409,7 @@ GET_BPB: LD HL,#0000 LD A,(DRIVE) RST ToBIOS_18 RET C - ; ¯¥à¥ª¨¤ë¢ ­¨¥ ç á⨠§ £àã§ç¨ª  ¨§ 0 ᥪâ®à  + ; ��४��뢠��� ��� �����稪� �� 0 ᥪ�� LD HL,BOOT_BUFFER + (_sBOOT_SECTOR.PARTITION_TABLE - ZERO_SECTOR_OF_BPB.Size) LD DE,ZERO_SECTOR_OF_BPB LD BC,ZERO_SECTOR_OF_BPB.Size @@ -423,7 +423,7 @@ GET_BPB: LD HL,#0000 JR NZ,.NX1 CALL PART_TB ;HDD RET C - ;[ ] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® + ;[ ] 17.12.2023 ����㧪� � ��⨢���� ࠧ����, � �� � ��ࢮ�� LD (DRIVE+1),HL ; .NX1: CP #00 @@ -534,7 +534,7 @@ GET_BPB: LD HL,#0000 JP NC,.loop3 .loop3.end: ; LD (FatBuffer.BytesPerCluster),HL - ; LD DE,#8001 ; ¯à®¢¥àª  ­  à §¬¥à ª« áâ¥à  ¡®«ìè¥ 32 ª¡ - ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ; !TODO + ; LD DE,#8001 ; �஢�ઠ �� ࠧ��� ������ ����� 32 �� - �� �����ন������ ; !TODO ; AND A ; SBC HL,DE ; CCF @@ -596,14 +596,14 @@ GET_BPB: LD HL,#0000 ; HL:DE = DataSec ; LD A,(FatBuffer.SectorsPerCluster) - ; HL:DE / A => DE:BC, H=0, L - ®áâ â®ª + ; HL:DE / A => DE:BC, H=0, L - ���⮪ ;CALL DIV_by_Shifts LD C,A DEC A JR Z,.DIV_exit ; AND E - LD B,A ; ®áâ â®ª + LD B,A ; ���⮪ LD A,C RRCA ; @@ -620,7 +620,7 @@ GET_BPB: LD HL,#0000 LD H,0 LD L,A ; - ; ¢ëïá­ï¥¬ à §à來®áâì FAT + ; ����塞 ࠧ�來���� FAT LD A,D OR E JR NZ,.its_FAT32 @@ -637,8 +637,8 @@ GET_BPB: LD HL,#0000 ; .its_FAT32: LD A,(BOOT_BUFFER + BOOT_SECTOR.MainFATnumber) CP #80 - JR C,.mirrored_FATs ;¥á«¨ ¢á¥ ª®¯¨¨ FAT ¨á¯®«ì§ãîâáï - ; ¨á¯®«ì§ã¥âáï ⮫쪮 ®¤­  ª®¯¨ï FAT + JR C,.mirrored_FATs ;�᫨ �� ����� FAT �ᯮ������� + ; �ᯮ������ ⮫쪮 ���� ����� FAT LD HL,(FatBuffer.FAT1_SEC_H) LD DE,(FatBuffer.SectorsPerFAT_H) LD D,0 @@ -717,12 +717,12 @@ CLUSTER_TO_SECTOR: ; -; ¯®¨áª system.dos +; ���� system.dos GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H) LD IX,(FatBuffer.RootDirFirstSector_L) LD BC,(PARTITION_START_L) LD DE,(PARTITION_START_H) - ; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov. + ; [x] 28/04/2024. Bug with incorrect reading root dir. Reported by Roman "Romychs" Boykov. ADD IX,BC ADC HL,DE ; @@ -731,9 +731,9 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H) LD A,(FatBuffer.DirSizeInSectors) JR NZ,.NEXTSEC ; - LD A,(FatBuffer.SectorsPerCluster);!FIXIT ¯à®çâñâ ⮫쪮 ¯¥à¢ë© ª« áâ¥à ª â «®£  ­  FAT32 + LD A,(FatBuffer.SectorsPerCluster);!FIXIT ������ ⮫쪮 ���� ������ ��⠫��� �� FAT32 .NEXTSEC: PUSH AF - ; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov. + ; [x] 28/04/2024. Bug with incorrect reading root dir. Reported by Roman "Romychs" Boykov. ;ADD IX,BC ;ADC HL,DE ; @@ -752,7 +752,7 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H) LD A,B ; next sector LD BC,1 - ; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov. + ; [x] 28/04/2024. Bug with incorrect reading root dir. Reported by Roman "Romychs" Boykov. ADD IX,BC ADC HL,BC DEC HL @@ -799,13 +799,13 @@ SEARCH: LD C,17 ;HANDELS PER SECTOR 512/32 + 1 LD BC,FAT_DIRECTORY_RECORD LDIR ; ZF = 1, CF = 0, A != 0 - AND A ; ­  ¢ë室¥ ZF = CF = 0 + AND A ; �� ��室� ZF = CF = 0 RET ; HL - CLUSTER ; DE - ADDRESS -; !TODO ᤥ« âì âãâ ®¯à¥¤¥«¥­¨¥ à §¬¥à  SYSTEM.DOS -; [ ] ¨ ¢®§¬®¦­®áâì § £à㧨âì ¡®«ìè¥ 1 áâà ­¨æë +; !TODO ᤥ���� ��� ��।������ ࠧ��� SYSTEM.DOS +; [ ] � ����������� ����㧨�� ����� 1 ��࠭��� LOAD_CORE: LD (READMEM),DE .loop: PUSH HL EXX @@ -859,7 +859,7 @@ LOAD_CORE: LD (READMEM),DE POP HL CCF RET NC - ; [ ] § £à㧪  system.dos ¡®«ìè¥ #4000 ¡ ©â®¢ + ; [ ] ����㧪� system.dos ����� #4000 ���⮢ .BIG_CORE+1: LD A,0 DEC A @@ -878,14 +878,14 @@ LOAD_CORE: LD (READMEM),DE ; -; HL:DE / A => DE:BC, H=0, L - ®áâ â®ª +; HL:DE / A => DE:BC, H=0, L - ���⮪ ; DIV_by_Shifts: ; LD C,A ; DEC A ; JR Z,.DIV_exit ; ; ; AND E -; LD B,A ; ®áâ â®ª +; LD B,A ; ���⮪ ; LD A,C ; RRCA ; ; @@ -919,10 +919,10 @@ ZERO_SECTOR_OF_BPB: ; B = 0 GET_SECTOR_OF_FAT: LD A,(FatBuffer.FAT_TYPE) - LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî + LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ���� �१ ��६����� XOR FAT_TYPE.x32 JR Z,.next - LD B,FAT_CACHE.Degree ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî + LD B,FAT_CACHE.Degree ;!FIXIT ᤥ���� �१ ��६����� XOR A .next: LD C,A ; @@ -935,18 +935,18 @@ GET_SECTOR_OF_FAT: ; -;¢å®¤: HL - ­®¬¥à ª« áâ¥à  -;¢ë室: HL -  ¤à¥á ­ã¦­®© ï祩ª¨ ¢ áâà ­¨æ¥ FATPAGE -; CF - çñâ­ë©/­¥çñâ­ë©  ¤à¥á ª« áâ¥à  +;�室: HL - ����� ������ +;��室: HL - ���� �㦭�� �祩�� � ��࠭�� FATPAGE +; CF - ����/������ ���� ������ GET_FAT12_CELL: LD D,H LD E,L SRL H - RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF - PUSH AF ; á®åà. ä« £ + RR L ; ᤢ�� ��ࠢ� �१ CF + PUSH AF ; ���. 䫠� ADD HL,DE ; CLUSTER * 1.5 ; IF FAT_CACHE.Size_12 < #1800 - ;!FIXIT ®¯â¨¬¨§¨à®¢ âì + ;!FIXIT ��⨬���஢��� LD A,H LD B,H ; @@ -965,12 +965,12 @@ GET_FAT12_CELL: LD D,H AND #07 ;AND FAT_CACHE.Part_Mask_16 ; - ; [ ] ¯®¬¥­ï«áï ¢å®¤ ¢ ¯à®æ¥¤ãàã READ_FAT_TABLE.  ­ìè¥ ­®¬¥à ¡«®ª  ¢ ॣ. A ¯¥à¥¤ ¢ «áï + ; [ ] �������� �室 � ��楤��� READ_FAT_TABLE. ����� ����� ����� � ॣ. A ��।������ LD DE,(FatBuffer.CacheBlock) ; BC - BLOCK FAT IN CASH CP E LD E,A ; - CALL NZ,READ_FAT_TABLE ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-  + CALL NZ,READ_FAT_TABLE ; ������ � ��� 16 ᥪ�஢ FAT-� ENDIF ; LD DE,FATPAGE.cache @@ -978,8 +978,8 @@ GET_FAT12_CELL: LD D,H POP AF RET ; -;¢å®¤: HL - ­®¬¥à ª« áâ¥à  -;¢ë室: HL -  ¤à¥á ­ã¦­®© ï祩ª¨ ¢ áâà ­¨æ¥ FATPAGE +;�室: HL - ����� ������ +;��室: HL - ���� �㦭�� �祩�� � ��࠭�� FATPAGE GET_FAT16_CELL: LD A,H LD B,H AND FAT_CACHE.Size_Mask_16 @@ -998,14 +998,14 @@ GET_FAT16_CELL: LD A,H LD E,A ; CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT - LD DE,FATPAGE.cache ; ­ ç «® ª¥è  FAT-  - ADD HL,DE ; ­  ï祩ªã FAT + LD DE,FATPAGE.cache ; ��砫� ��� FAT-� + ADD HL,DE ; �� �祩�� FAT RET ; ; ;RE_FAT: ;RX01 -; à®ç¨â âì ¢ ª¥è •• ᥪâ®à®¢ FAT-  +; ������ � ��� �� ᥪ�஢ FAT-� ; DE - NEW FAT BLOCK READ_FAT_TABLE: PUSH HL ; @@ -1014,7 +1014,7 @@ READ_FAT_TABLE: PUSH HL ; CALL GET_SECTOR_OF_FAT ; - ; BC:HL - ­®¬¥à «®£.ᥪâ®à  + ; BC:HL - ����� ���.ᥪ�� LD DE,(FatBuffer.FAT1_SEC_L) ADD HL,DE ; @@ -1052,9 +1052,9 @@ READ_FAT_TABLE: PUSH HL POP HL RET -;¢å®¤: HL':HL - ­®¬¥à ª« áâ¥à  -;¢ë室: HL -  ¤à¥á ­ã¦­®© ï祩ª¨ ¢ áâà ­¨æ¥ FATPAGE -GET_FAT32_CELL: ; ¤¢¨£ ¥¬ ¢«¥¢® HL':H +;�室: HL':HL - ����� ������ +;��室: HL - ���� �㦭�� �祩�� � ��࠭�� FATPAGE +GET_FAT32_CELL: ; ������� ����� HL':H LD A,H EXX LD C,A @@ -1063,13 +1063,13 @@ GET_FAT32_CELL: ; LD H,A LD A,C ; - LD B,FAT_CACHE.Degree ; 4 ᤢ¨£  + LD B,FAT_CACHE.Degree ; 4 ᤢ��� .loop_block: RLCA ; << H RL L ; << L' RL H ; << H' DJNZ .loop_block EXX - ; ‚ ¨â®£¥ âãâ ¢ HL' ­®¬¥à ¡«®ª  FAT + ; � �⮣� ��� � HL' ����� ����� FAT ; ; HL - FAT32 OFFSET (FROM CASH) LD A,H @@ -1086,20 +1086,20 @@ GET_FAT32_CELL: ; SBC HL,DE CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT POP HL - LD DE,FATPAGE.cache ; ­ ç «® ª¥è  FAT-  - ADD HL,DE ; ­  ï祩ªã FAT + LD DE,FATPAGE.cache ; ��砫� ��� FAT-� + ADD HL,DE ; �� �祩�� FAT RET ; ;------------------------------------------------------------------------------------------------ -; à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à  -; ¢å®¤: hl - ­®¬¥à ª« áâ¥à  (¬« ¤è¥¥ á«®¢®) -; hl' - ­®¬¥à ª« áâ¥à  (áâ à襥 á«®¢®. ⮫쪮 ¤«ï FAT32) -; ¢ë室: hl - ­®¬¥à ª« áâ¥à  (¬« ¤è¥¥ á«®¢®) -; hl' - ­®¬¥à ª« áâ¥à  (áâ à襥 á«®¢®) -; de - ­®¬¥à á«¥¤. ª« áâ¥à  (¬« ¤è¥¥ á«®¢®) -; de' - ­®¬¥à á«¥¤. ª« áâ¥à  (áâ à襥 á«®¢®) -; ¥á«¨ DE':DE = 0, â® ª« áâ¥à HL':HL ᢮¡®¤¥­ -; CF - ª®­¥æ 楯®çª¨ +; ������ �� ��� FAT-� ����� ᫥�. ������ +; �室: hl - ����� ������ (����襥 ᫮��) +; hl' - ����� ������ (���襥 ᫮��. ⮫쪮 ��� FAT32) +; ��室: hl - ����� ������ (����襥 ᫮��) +; hl' - ����� ������ (���襥 ᫮��) +; de - ����� ᫥�. ������ (����襥 ᫮��) +; de' - ����� ᫥�. ������ (���襥 ᫮��) +; �᫨ DE':DE = 0, � ������ HL':HL ᢮����� +; CF - ����� 楯�窨 ;------------------------------------------------------------------------------------------------ READ_FROM_FAT: PUSH HL ; @@ -1112,18 +1112,18 @@ READ_FROM_FAT: PUSH HL CP FAT_TYPE.x16 JR C,.FAT12 JR NZ,.FAT32 - ; fat16, ¯à®áâ® ç¨â âì á«¥¤. ­®¬¥à + ; fat16, ���� ���� ᫥�. ����� .FAT16: CALL GET_FAT16_CELL - LD E,(HL) ; ¯à®ç¨â âì ­®¬¥à ª« áâ¥à  + LD E,(HL) ; ������ ����� ������ INC HL LD D,(HL) ; LD HL,SERVICE_SECTORS.FAT16 .exit: POP AF OUT (SLOT3),A - ; ®¡­ã«ï¥¬ CF ¨ ãáâ ­ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = DssErr.sys.NO_ERROR + ; ����塞 CF � ��⠭�������� ��� �訡�� = DssErr.sys.NO_ERROR XOR A - ; ¯à®¢¥àª  ­  á«ã¦. ª« áâ¥àë + ; �஢�ઠ �� ��. ������� SBC HL,DE POP HL EXX @@ -1143,7 +1143,7 @@ READ_FROM_FAT: PUSH HL JR NC,.Correct_2 .Correct_1: LD A,E AND #F0 - DUP 4 ; ¢¯à ¢® ­  4 ¡¨âa + DUP 4 ; ��ࠢ� �� 4 ���a RR D RRA EDUP @@ -1160,12 +1160,12 @@ READ_FROM_FAT: PUSH HL EXX ; CALL GET_FAT32_CELL - ; ¯à®ç¨â âì ¬« ¤è¥¥ á«®¢® ­®¬¥à  ª« áâ¥à  + ; ������ ����襥 ᫮�� ����� ������ LD E,(HL) INC HL LD D,(HL) INC HL - ; ¯à®ç¨â âì áâ à襥 á«®¢® ­®¬¥à  ª« áâ¥à  + ; ������ ���襥 ᫮�� ����� ������ LD A,(HL) INC HL EX AF,AF' @@ -1176,12 +1176,12 @@ READ_FROM_FAT: PUSH HL EX AF,AF' LD E,A EXX - ; ®¡­ã«ï¥¬ CF ¨ ãáâ ­ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = DssErr.sys.NO_ERROR + ; ����塞 CF � ��⠭�������� ��� �訡�� = DssErr.sys.NO_ERROR XOR A - ; ¯à®¢¥àª  ­  á«ã¦. ª« áâ¥àë ¬« ¤è¥£® á«®¢  ª« áâ¥à  + ; �஢�ઠ �� ��. ������� ����襣� ᫮�� ������ LD HL,SERVICE_SECTORS.FAT32.Low SBC HL,DE - ; ¯à®¢¥àª  ­  á«ã¦. ª« áâ¥àë áâ à襣® á«®¢  ª« áâ¥à  + ; �஢�ઠ �� ��. ������� ���襣� ᫮�� ������ EXX LD HL,SERVICE_SECTORS.FAT32.High SBC HL,DE