From e4a65dd0bbdb45312577ca0bb03e3b0518a73fd1 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Mon, 5 Feb 2024 02:01:11 +1000 Subject: [PATCH] error --- D2_FRAM.asm | 17 +++++++- DOOM2.asm | 90 +++++++++++++++++++------------------- Music_4x.asm | 119 +++++++++++++++++++++++++++------------------------ 3 files changed, 123 insertions(+), 103 deletions(-) diff --git a/D2_FRAM.asm b/D2_FRAM.asm index 9851071..079de4a 100644 --- a/D2_FRAM.asm +++ b/D2_FRAM.asm @@ -1386,6 +1386,14 @@ COV_ADR+1: IN A,(SLOT3) LD E,A + + + ;!FIXIT DEBUG + ; LD A,COLORS.CGA.BORDER.CYAN + ; OUT (BorderColor),A + ; + + D2_FRAM_SndPage+1: LD A,0 OUT (SLOT3),A @@ -1404,6 +1412,13 @@ L_DDX: DEC D JR NZ,L_DDX + + ;!FIXIT DEBUG + ; LD A,COLORS.CGA.BORDER.BLACK + ; OUT (BorderColor),A + ; + + LD (SND_A),HL LD A,H @@ -1457,7 +1472,7 @@ SND_INIT1: ;_------[Чтение секторов с диска]------- NO_NEW_COUNT: LD HL,-SND_READ_SECTORS*512 ; буфер для данных - LD A,(D2_FRAM_SndPage) ;!FIXIT ; страница буфера, если адрес в окне #C000 + LD A,(D2_FRAM_SndPage) ;!FIXIT ; страница буфера, если адрес в окне #C000 LD DE,(SND_S1) ; абсолютный номер сектора Младшая часть LD IX,(SND_S2) ; абсолютный номер сектора Старшая часть LD B,SND_READ_SECTORS ; число читаемых секторов diff --git a/DOOM2.asm b/DOOM2.asm index 18278a2..7a0c00e 100644 --- a/DOOM2.asm +++ b/DOOM2.asm @@ -55,6 +55,7 @@ include 'Shared_includes/constants/SP2000.inc' include 'Shared_includes/constants/dss_equ.inc' include 'Shared_includes/constants/BIOS_equ.inc' + include 'Shared_includes/constants/standart_colors.inc' include 'Shared_includes/macroses/accelerator.z80' include 'Shared_includes/macroses/macros.z80' ;----------------------------------------------------------------------- @@ -92,18 +93,18 @@ BEGIN: DI LD (CMD_Line),IX ; сохранить указатель на параметры запуска CMD_Line+1: LD HL,#8080 -/* + ; Доделать???!!!! - LD C,(HL) - LD B,0 - INC BC - INC BC - INC BC - ADD HL,BC ; указатель на полный путь до файла запуска - ld c,Dss.ChDir ; переход в каталог DOOM2 на всякий случай - rst ToDSS - DI -*/ + ; LD C,(HL) + ; LD B,0 + ; INC BC + ; INC BC + ; INC BC + ; ADD HL,BC ; указатель на полный путь до файла запуска + ; ld c,Dss.ChDir ; переход в каталог DOOM2 на всякий случай + ; rst ToDSS + ; DI + ; IN A,(SLOT3) ; LD C,BIOS.SPRINTER_ALL ; RST ToBIOS @@ -415,26 +416,22 @@ CLEAR_CBL: CLEAR_SP_PAL: IN A,(SLOT3) PUSH AF - + ; LD A,#50 OUT (SLOT3),A - + ; LD B,61 - -LOOP_PAL_ALL: +.LOOP_PAL_ALL: PUSH BC - LD BC,PORT_Y - -LOOP_PAL_C: +.LOOP_PAL_C: OUT (C),B -; -PAL_RESES_ADR+1: +.RESES_ADR+1: LD HL,#C3F0 -; + ; LD D,16 - -LOOP_PAL_D: + ; +.LOOP_PAL_D: LD A,(HL) RRA RRA @@ -446,25 +443,24 @@ LOOP_PAL_D: LD E,A LD A,(HL) SUB E - JR NC,NO_Z + JR NC,.NO_Z XOR A -NO_Z: LD (HL),A +.NO_Z: LD (HL),A INC L DEC D - JR NZ,LOOP_PAL_D - + JR NZ,.LOOP_PAL_D + ; CALL SOUND1 - DJNZ LOOP_PAL_C - + DJNZ .LOOP_PAL_C + ; CALL PAUSE_INT - + ; POP BC LD A,(LAST_KEY) AND A - JR NZ,NO_PAL_EXE - DJNZ LOOP_PAL_ALL - -NO_PAL_EXE: + JR NZ,.NO_PAL_EXE + DJNZ .LOOP_PAL_ALL +.NO_PAL_EXE: POP AF OUT (SLOT3),A RET @@ -600,7 +596,7 @@ D2_FRAM_page+1: ;--------------------------------------- ; LD HL,#C3E0 - LD (PAL_RESES_ADR),HL + LD (CLEAR_SP_PAL.RESES_ADR),HL ; ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; Странное место. Можно же сразу в коде @@ -1181,9 +1177,9 @@ Load_Resources: in a,(SLOT3) ld (.SavePage),a - LD B,FilesTBL.END - LD DE,FilesTBL LD HL,RAMBlkIDs + LD DE,FilesTBL + LD B,FilesTBL.END .LR_loop: PUSH BC ;++счётчик @@ -1298,9 +1294,9 @@ Load_Resources: ld a,0 out (SLOT3),a ; - LD HL,CURRENT_DIR - LD C,Dss.CurDir - RST ToDSS + ; LD HL,CURRENT_DIR + ; LD C,Dss.CurDir + ; RST ToDSS ; LD C,Dss.CurDisk RST ToDSS @@ -1675,8 +1671,8 @@ TABLE_WALL: BLOCK 33,0 ; BLOCK TABLES_START+#74-$,0 ;ВЫРАВНИВАНИЕ -LAST_KEY: DB 0 NAMES: DB 6,1 +LAST_KEY: DB 0 ; BLOCK TABLES_START+#7C-$,0 ;ВЫРАВНИВАНИЕ @@ -1688,6 +1684,8 @@ NAME3: DB "_ICT2 CBL " NAME6: DB "_UNNY2 CBL " NAME8: DB "94956C CBL " NAME9: DB "_ENI511CCBL " +; +;Up_Dir: DZ ".." ; @@ -1706,8 +1704,12 @@ NAME9: DB "_ENI511CCBL " ; ENDIF ; OUTEND ; конец файла doom2.exe -DIR_NAME_11: BLOCK 11,0 -CURRENT_DIR: BLOCK 257,0 +;-----------------------------------------------------------------------; + +;------------------------------------ +;CURRENT_DIR: BLOCK 257,0 + +;------------------------------------ Temp_Buffer EQU $ ; ; @@ -1717,6 +1719,4 @@ Temp_Buffer EQU $ ;FRAM_PROG_1000H: include 'D2_FRAM.asm' -; - END ; \ No newline at end of file diff --git a/Music_4x.asm b/Music_4x.asm index 963f0ba..070fea8 100644 --- a/Music_4x.asm +++ b/Music_4x.asm @@ -62,15 +62,31 @@ INIT_HDD_WORK: LDIR POP AF OUT (SLOT3),A - ;!TODO music and dirs - ; парсим строку пути - ; LD HL,CURRENT_DIR+1 - ; LD DE,DIR_NAME_11 - ; PUSH DE - ; PUSH HL - ; LD BC,1*256 + Dss.DosName - ; RST ToDSS + ; ;[ ] music and dirs + ; LD A,(CURRENT_DIR+1) + ; AND A + ; JR Z,.skip_dir + ; ; + ; LD HL,Up_Dir + ; LD C,Dss.ChDir + ; RST ToDSS + ; ; + ; LD A,'\' ; + ; LD HL,CURRENT_DIR+257 + ; LD BC,257 ;!HARDCODE длина строки пути + ; CPDR + ; INC HL + ; INC HL + ; ; + ; LD DE,Temp_Buffer + ; LD A,FAT_ATTR.DIRECTORY + ; LD BC,Dss.F_First + ; RST ToDSS + ; ; + ; LD HL,(Temp_Buffer+15) + ; ; +.skip_dir: ;-----[читать секторы с винчестера]----- READ_DIR: LD HL,#C000 ; адрес буфера данных @@ -122,25 +138,25 @@ SET_SND_FILE: RET SWITCH_SND: -NAME_S+1: LD DE,NAME1 +.NAME_S+1: + LD DE,NAME1 CALL SET_SND_FILE - JR C,SWITCH_X - - LD HL,(NAME_S) + JR C,.SWITCH_X + ; + LD HL,(.NAME_S) LD BC,16 ADD HL,BC - LD (NAME_S),HL + LD (.NAME_S),HL RET - -SWITCH_X: +.SWITCH_X: LD HL,NAME1 - LD (NAME_S),HL + LD (.NAME_S),HL JR SWITCH_SND FILE_DATA: DW 0 ; начальный кластер DW 0,0 ; длина файла - + ; DW 0 ; текущий кластер DW 0,0 ; текущее положение в файле DW 0 ; текущий номер сектора в кластере @@ -179,58 +195,52 @@ OPEN_FILE: ; DE - name LD DE,(MSD_DATS+13) ; длина кластера в байтах RR D RR E -SEC_MUL: +.SEC_MUL: RR D RR E - JR C,SECT_X + JR C,.SECT_X ADD IX,IX ADC HL,HL - JR SEC_MUL - -SECT_X: + JR .SEC_MUL +.SECT_X: LD DE,(MSD_DATS+8) ADD IX,DE LD DE,(MSD_DATS+10) ADC HL,DE ; HL:IX - номер первого сектора файла - AND A RET ; ;DE - name - 11 символов FIND_FILE: -; LD C,SLOT3 IN B,(C) PUSH BC - + ; LD A,(CatPage) OUT (C),A - + ; LD HL,#C000 - -NEXT_LOOP: +.NEXT_LOOP: LD B,11 PUSH DE - -NAME_LOOP: +.NAME_LOOP: LD A,(DE) CP (HL) - JR NZ,NEXT_NAME + JR NZ,.NEXT_NAME INC HL INC DE - DJNZ NAME_LOOP - + DJNZ .NAME_LOOP + ; POP DE LD A,L AND #E0 LD L,A - + ; POP BC OUT (C),B AND A RET ; HL - данные файла в странице 6 - -NEXT_NAME: +.NEXT_NAME: POP DE LD A,L AND #E0 @@ -239,37 +249,32 @@ NEXT_NAME: ADD HL,BC LD A,(HL) AND A - JR Z,END_CAT + JR Z,.END_CAT LD A,H AND A - JR NZ,NEXT_LOOP - -END_CAT: + JR NZ,.NEXT_LOOP +.END_CAT: POP BC OUT (C),B SCF RET -HDD_FN: - EX AF,AF' - IN A,(FastRAM.OFF) - IN A,(SLOT1) - PUSH AF - IN A,(SLOT3) - PUSH AF - LD A,5 ;!FIXIT - OUT (SLOT1),A +HDD_FN: EX AF,AF' + IN A,(FastRAM.OFF) + IN A,(SLOT1) + PUSH AF + IN A,(SLOT3) + PUSH AF + LD A,5 ;!FIXIT + OUT (SLOT1),A DOOM2_SndPage+1: - LD A,0 - OUT (SLOT3),A - - IN A,(PORT_Y) - PUSH AF + LD A,0 + OUT (SLOT3),A + IN A,(PORT_Y) + PUSH AF EX AF,AF' - RST ToBIOS ; читать сектора с винчестера, функция #45 - ;DI - + ; POP AF OUT (PORT_Y),A POP AF