diff --git a/BOOT/boot.asm b/BOOT/boot.asm index f943d99..30be7ca 100644 --- a/BOOT/boot.asm +++ b/BOOT/boot.asm @@ -60,12 +60,12 @@ BEGIN: in a,(SLOT3) ld c,0 ; узнать версию ДОС rst 10h ex de,hl ; hl=тек. версия - ld de,013Ch ; 1.60 d=версия, e=модификация, bc - номер сборки. de = #013E, bc = #0064 dos ver 1.62.100 + ld de,#013C ; 1.60 d=версия, e=модификация, bc - номер сборки. de = #013E, bc = #0064 dos ver 1.62.100 and a sbc hl,de jr nc,version_ok pop hl - ld a,9 ; индекс строки "Error: Need DSS version 1.60..." + ld a,11 ; индекс строки "Error: Need DSS version 1.60..." call print_string ld a,-1 jp exit diff --git a/DSS/DOS_FM.ASM b/DSS/DOS_FM.ASM index 02e6d30..b34e010 100644 --- a/DSS/DOS_FM.ASM +++ b/DSS/DOS_FM.ASM @@ -918,7 +918,7 @@ WOV3: PUSH HL ; LD DE,#0000 ; ADC HL,DE ; RET -///////////////////////////////////// +////////////// NEW ////////////////// ; in: HL - CLUSTER ; out: HL:IX - SECTOR NSECTOR: DEC HL @@ -931,16 +931,16 @@ NSECTOR: DEC HL RRA .loop: ADD HL,HL RL E - RL D - RRCA + ; RL D + RRA JP NC,.loop ; .skip: EX DE,HL LD XL,E LD XH,D LD DE,(FatBuffer.DAT_FRM) ;first data sector + XOR A ADD IX,DE - ; A=0 LD D,A LD E,A ADC HL,DE diff --git a/DSS/DOS_X.ASM b/DSS/DOS_X.ASM index 46c67f8..e101e00 100644 --- a/DSS/DOS_X.ASM +++ b/DSS/DOS_X.ASM @@ -239,10 +239,11 @@ RD_BPB: LD C,SLOT3 LD H,(IY+_sBOOT_SEC.RESERVE+1) ; -; LD E,(IY+#1C) ;Hidden sec -; LD D,(IY+#1D) -; ADD HL,DE -; LD (FatBuffer.FAT_FRM),HL ; first sector FAT + ; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec + ; LD D,(IY+_sBOOT_SEC.HIDDEN+1) + ; ADD HL,DE + + ;LD (FatBuffer.FAT_FRM),HL ; first sector FAT LD (FatBuffer.FAT1_XX),HL ; first sector FAT #1 LD (FatBuffer.FAT2_XX),HL @@ -319,8 +320,7 @@ RD_BPB: LD C,SLOT3 LD (FatBuffer.CLU_LEN),HL EX DE,HL LD HL,#3FFF ;!TODO FATcacheSize - ;XOR A - ; A = 0 + XOR A ;NEXTAD4 ;!FIXIT оптимизировать когда понадобится .loop4: INC A JP Z,DOS_X_Error.UnknownBPB @@ -376,8 +376,8 @@ RD_BPB: LD C,SLOT3 //////////////////////////////////////////////////////////////////////// LD DE,(FatBuffer.DAT_FRM) -; LD E,(IY+#1C) ;Hidden sec -; LD D,(IY+#1D) +; LD E,(IY+_sBOOT_SEC.HIDDEN) ;Hidden sec +; LD D,(IY+_sBOOT_SEC.HIDDEN+1) ; AND A ; SBC HL,DE ; EX DE,HL @@ -572,6 +572,9 @@ BACK_CUR_PATH: ;/////////////////////////////////////////////////////////////////////// SCANDRV: ;1 [-----------] [-----------] [-----------] [-----------] [-----------] + ; LD A,(LDRIVE) + ; LD (.old_ldrive),A + ; CALL GETBOOT LD (.old_letter),A ; bootdisk Log.number ; [-----------] @@ -603,6 +606,9 @@ SCANDRV: CALL SETBOOT JR C,.ERROR_BOOTDRV_DIES LD (.new_letter),A + ; + LD A,(.old_letter) + LD (BOOTDRV),A ; ;5 [-----------] [-----------] [-----------] [-----------] [-----------] @@ -641,14 +647,31 @@ SCANDRV: EX DE,HL LDDR ; проверяем, не увеличилось ли значение LDRIVE - LD HL,.old_letter - LD A,(LDRIVE) - CP (HL) - JR NC,.no_change_LDRIVE - LD A,(HL) - LD (LDRIVE),A + ;!TEST + LD HL,.old_letter + LD A,(LDRIVE) + CP (HL) + JR NC,.no_change_LDRIVE + LD A,(HL) + LD (LDRIVE),A + ; +; .old_ldrive+1: + ;LD L,0 + ;LD A,(LDRIVE) + ;CP L + ;JR NC,.no_change_LDRIVE + ;LD A,L + ;LD (LDRIVE),A + ; .no_change_LDRIVE: ; + ; DEC A + ; LD C,Dss.DskInfo + ; RST ToDSS + ; LD A,(BOOTDRV) + ; LD C,Dss.ChDisk + ; RST ToDSS + ;;;;; .restore_page+1: LD A,0 diff --git a/DSS/build.txt b/DSS/build.txt index c2567dc..da4c6e9 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -280 \ No newline at end of file +297 \ No newline at end of file diff --git a/DSS/defines.inc b/DSS/defines.inc index 675eadc..5246fad 100644 --- a/DSS/defines.inc +++ b/DSS/defines.inc @@ -4,7 +4,7 @@ ; DEFINE SHORT_RSTx10_TABLE 0 ; укороченная таблица функций rst #10. 96 функций. - DEFINE COMPILE_UNUSED_CODE 0 + DEFINE COMPILE_UNUSED_CODE 1 ; ;