From 0712ec0a95a4d2e744de011396d4658b68d9f951 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Fri, 19 Jul 2024 02:54:03 +1000 Subject: [PATCH] -fixed bug with perdyezh at start --- DOOM2.asm | 14 ++--- Music_4x.asm | 132 +++++++++++++++++++++--------------------------- Shared_Includes | 2 +- 3 files changed, 62 insertions(+), 86 deletions(-) diff --git a/DOOM2.asm b/DOOM2.asm index 888d07b..3194149 100644 --- a/DOOM2.asm +++ b/DOOM2.asm @@ -118,11 +118,7 @@ CMD_Line+1: out (c),a ; ;-----------[заглушить звук]------------ - LD A,#FF ; !FIXIT разве так надо глушить? Не рудименты Sp97? -1: CALL CLEAR_COVOX_X - DEC A - CP #80 - JR NZ,1B + CALL CLEAR_COVOX ;--------------------------------------- ; ;--------------------------------------- @@ -347,13 +343,9 @@ FLAG: DB 0 ; CLEAR_COVOX: LD A,#80 - -CLEAR_COVOX_X: LD BC,CBL.COVOX_OUT - -CLEAR_CBL: - OUT (C),A - DJNZ CLEAR_CBL +.CLEAR: OUT (C),A + DJNZ .CLEAR RET ; ; diff --git a/Music_4x.asm b/Music_4x.asm index e438e8f..cf75704 100644 --- a/Music_4x.asm +++ b/Music_4x.asm @@ -40,12 +40,11 @@ INIT_HDD_WORK: .start: LD C,BIOS.HDD_PART ; IDE-1/IDE-2 RST ToBIOS ; -.loop: LD C,BIOS.HDD_INIT - RST ToBIOS - JR C,.loop +;.loop: LD C,BIOS.HDD_INIT +; RST ToBIOS +; JR C,.loop ; - CALL BPB_SetUp ;----------------------------------------------------------------------- @@ -56,16 +55,16 @@ INIT_HDD_WORK: ; LD HL,SYS_PAGE.MSD_FAT_SEC LD DE,MSD_DATS - LD BC,16 + LD BC,16 ;!HARDCODE LDIR EX AF,AF' OUT (SLOT3),A - ;[ ] music and dirs + ;[x] music and dirs LD HL,SND_DIR LD DE,Temp_Buffer LD A,FAT_ATTR.DIRECTORY - LD BC,Dss.F_First + LD BC,Dss.F_First.FATname RST ToDSS JR NC,.start_setup ; @@ -73,24 +72,6 @@ INIT_HDD_WORK: LD (SoundOnOff2),A RET ; - - - ;LD HL,(SYS_PAGE.MS_BPB + _sBOOT_SEC.B_P_S) - -; LD BC,(Temp_Buffer+26) ; first dir cluster -; LD A,(SYS_PAGE.MS_BPB + _sBOOT_SEC.S_P_C) -; LD E,A -; LD D,0 -; LD HL,0 -; LD IX,0 -; .cluster_loop: -; ADD HL,DE -; CALL C,KOSTILYI -; DEC BC -; LD A,B -; OR C -; JR NZ,.cluster_loop - .start_setup: ;-=-=-=-=-=-=-=- LD HL,(Temp_Buffer+26) ; first dir cluster @@ -108,7 +89,7 @@ INIT_HDD_WORK: ; Кластер папки #2258 ; IX:HL относительный сектор папки #897E0 (E0 97 08 00) ; -.skip_dir: +;.skip_dir: ; LD DE,(MSD_DATS.MSD_CAT_SEC) ; CAT TABLE. абсолютный номер сектора младшая часть ; LD IX,(MSD_DATS.MSD_CAT_SEC2) ; абсолютный номер сектора старшая часть ;-----[читать секторы с винчестера]----- @@ -314,7 +295,7 @@ HDD_FN: EX AF,AF' OUT (SLOT3),A ;POP AF ;OUT (SLOT1),A - IN A,(FastRAM.ON) ; включаем кэш + IN A,(FastRAM.ON) ; включаем кэш RET ; ; @@ -325,49 +306,48 @@ BPB_SetUp: RST ToBIOS .PARAMS: DI - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A - LD A,(SYS_PAGE.MS_BPB+FORM_CODE) - CP #F0 - JP C,.ERROR_BPB + LD A,(SYS_PAGE.MS_BPB+FORM_CODE) + CP #F0 + JP C,.ERROR_BPB - LD HL,SYS_PAGE.MS_BPB+FAT_ID - LD DE,.FAT1_MSG - LD B,4 -.L1: LD A,(DE) - CP ' ' - JR NZ,.L11 - INC DE - JR .L1 -.L11: CP (HL) - JR NZ,.PC_DOS + LD DE,SYS_PAGE.MS_BPB+FAT_ID + LD HL,.FAT1_MSG + LD B,4 +.L1: LD A,(DE) + CP ' ' + JR NZ,.L11 + INC DE + JR .L1 +.L11: CP (HL) + JR NZ,.PC_DOS - INC HL - INC DE - DJNZ .L1 - LD A,(HL) - CP '6' - LD HL,#81FF ; FAT16 флаг - JR Z,.FAT - CP '2' - JP NZ,.ERROR_BPB + INC HL + INC DE + DJNZ .L1 + LD A,(DE) + CP '6' + LD HL,#81FF ; FAT16 флаг + JR Z,.FAT + CP '2' + JP NZ,.ERROR_BPB .PC_DOS: - LD HL,#01FF ; FAT12 флаг + LD HL,#01FF ; FAT12 флаг .FAT: LD (SYS_PAGE.FAT_FLAG),HL LD A,(SYS_PAGE.MS_BPB+S_P_T) ; Количество секторов на трек LD (SYS_PAGE.MSD_SECS),A - BIT 7,H + ; BIT 7,H + ; LD IX,0 + ; LD HL,0 ; вычислить начальный сектор FAT + ; JR Z,.NO_LD_SPECIAL - LD IX,0 - LD HL,0 ; вычислить начальный сектор FAT - - JR Z,.NO_LD_SPECIAL LD IX,(SYS_PAGE.MS_BPB+SPECIAL_SECS) LD HL,(SYS_PAGE.MS_BPB+SPECIAL_SECS+2) .NO_LD_SPECIAL: @@ -381,7 +361,7 @@ BPB_SetUp: LD (SYS_PAGE.MSD_FAT_SEC2),HL ; начальный сектор FAT LD DE,(SYS_PAGE.MS_BPB+S_P_F) ; число секторов в FAT - LD BC,0 + ;LD BC,0 LD A,(SYS_PAGE.MS_BPB+FATS_NUM) ; количество FATs .NEXT_ADD: @@ -394,16 +374,16 @@ BPB_SetUp: LD (SYS_PAGE.MSD_CAT_SEC2),HL ; начальный сектор DIR LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; Размер сектора + LD A,B RL C - RL B + RLA RL C - RL B + RLA RL C - RL B - LD C,B + RLA + LD C,A LD B,0 ; BC - число файловых записей в секторе - LD A,C - LD (SYS_PAGE.F_P_S),A + LD (SYS_PAGE.FilesPerSector),A LD DE,(SYS_PAGE.MS_BPB+FLS_NUM) ; Число файловых записей @@ -418,9 +398,9 @@ BPB_SetUp: EX DE,HL LD E,A ; A - число секторов в DIR - LD D,0 LD BC,0 - LD (SYS_PAGE.S_P_C),A + LD D,B + LD (SYS_PAGE.SectorsPerCluster),A ADD IX,DE ; Начало DATA area ADC HL,BC @@ -429,22 +409,26 @@ BPB_SetUp: LD (SYS_PAGE.MSD_DAT_SEC2),HL LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; Размер сектора - LD HL,0 + ; D = 0 + LD H,D + LD L,D + LD E,D LD A,(SYS_PAGE.MS_BPB+CLAST_SIZE) LD D,A - LD A,0 + XOR A .NEXT_ADD3: ADD HL,BC ; Вычисление длины кластера - ADC A,0 + ADC A,E DEC D JR NZ,.NEXT_ADD3 LD (SYS_PAGE.CLASTER_LEN),HL - LD B,0 + LD B,E LD C,A LD (SYS_PAGE.CLASTER_LEN2),BC - - LD HL,0 + ; + ; DE=0 + EX DE,HL ;LD HL,0 LD BC,(SYS_PAGE.MS_BPB+S_P_T) LD A,(SYS_PAGE.MS_BPB+H_P_S) .BPB_L1:; ВЫЧИСЛИТЬ КОЛИЧЕСТВО СЕКТОРОВ НА ЦИЛИНДР diff --git a/Shared_Includes b/Shared_Includes index 5a5dcf0..f3ac185 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 5a5dcf0bd035d2adaaa27d28bb8ed1bd86260d59 +Subproject commit f3ac185e2fe2d1e76f8e54c3c1f421a99fafdd62