diff --git a/DOOM2.asm b/DOOM2.asm index a109459..888d07b 100644 --- a/DOOM2.asm +++ b/DOOM2.asm @@ -73,11 +73,11 @@ Loader_length EQU 0 ; -TABLE_X EQU #A000 ; таблица коэфициентов высоты -TABLE_X_SIZE EQU #0800 ; её размер??? -MONSTR_TABLE EQU #A800 ; таблица монстров -MONSTR_TABLE_SIZE EQU #1800 ; её размер??? -TABLE_W EQU #2000 ; текущие карты для TRACE +TABLE_X EQU #A000 ; таблица коэфициентов высоты +TABLE_X_SIZE EQU #0800 ; её размер??? +MONSTR_TABLE EQU #A800 ; таблица монстров +MONSTR_TABLE_SIZE EQU #1800 ; её размер??? +TABLE_W EQU #2000 ; текущие карты для TRACE ; Code start section @@ -95,7 +95,7 @@ TABLE_W EQU #2000 ; тек ;[]-------------------------------------------------------------------[] BEGIN: DI - LD (CMD_Line),IX ; сохранить указатель на параметры запуска + LD (CMD_Line),IX ; сохранить указатель на параметры запуска CMD_Line+1: LD HL,#8080 CALL SET_HOME_PATH @@ -109,11 +109,6 @@ CMD_Line+1: CALL SAVE_ALL ; выполнено в виде костыльной заглушки CALL Load_Resources - ; - ;CALL SAVE_TXT_SCREEN - ; LD A,Dss.SetVMod.grf320x256 - ; LD BC,Dss.SetVMod.Screen_1 - ; RST ToDSS ;--------------------------------------- @@ -123,7 +118,7 @@ CMD_Line+1: out (c),a ; ;-----------[заглушить звук]------------ - LD A,#FF ; !FIXIT разве так надо глушить? Не рудименты Sp97? + LD A,#FF ; !FIXIT разве так надо глушить? Не рудименты Sp97? 1: CALL CLEAR_COVOX_X DEC A CP #80 @@ -158,18 +153,6 @@ CMD_Line+1: CALL CLEAR_GRAF_SCR - - ; IN A,(SLOT3) - ; PUSH AF - ; LD A,3 - ; OUT (SLOT3),A - ; LD HL,PALITRE - ; LD DE,#C000 - ; LD BC,#0400 - ; LDIR - ; POP AF - ; OUT (SLOT3),A - CALL SET_PAL ;----[открыть порты масштабирования]---- @@ -180,33 +163,17 @@ CMD_Line+1: LD DE, %1111'1110'0110'1111 ; маска LD BC,ACEX.SCALE*256 + BIOS.DCP_CONFIG RST ToBIOS - - ; IN A,(SLOT3) - ; EX AF,AF' - ; LD A,DCP_PAGE - ; OUT (SLOT3),A - ; LD A,ACEX.SCALE - ; LD (#C400),A ; порт #XX00 Dos off - ; LD (#C410),A ; порт #XX00 Dos off - ; LD (#C480),A ; порт #XX00 Dos off - ; LD (#C490),A ; порт #XX00 Dos off - ; LD (#C500),A ; порт #XX00 Dos off - ; LD (#C510),A ; порт #XX00 Dos off - ; LD (#C580),A ; порт #XX00 Dos off - ; LD (#C590),A ; порт #XX00 Dos off - ; EX AF,AF' - ; OUT (SLOT3),A ; Активация Акселя масштабирования, обратно только через ресет - LD BC,#0100 ; C - масштаб 1:1 + LD BC,#0100 ; C - масштаб 1:1 OUT (C),C -;----------------------------------------------------------------------- +;-----------------------------------------------------------------------; -;----------------------------------------------------------------------- +;-----------------------------------------------------------------------; CALL MAIN -;----------------------------------------------------------------------- +;-----------------------------------------------------------------------; -;----------------------------------------------------------------------- +;-----------------------------------------------------------------------; ; E)eeeeee X) xx I)iiii T)tttttt ; E) X) xx I) T) @@ -214,10 +181,10 @@ CMD_Line+1: ; E) X)xx I) T) ; E) X) xx I) T) ; E)eeeeee X) xx I)iiii T) -;----------------------------------------------------------------------- +;-----------------------------------------------------------------------; ; -;-----------[EXIT Procedure]------------; +;----------------[EXIT Procedure]-----------------; RETURN_POINT: IN A,(FastRAM.OFF) LD A,SYS_PORT.BIOS @@ -237,31 +204,8 @@ RETURN_POINT: .error: LD C,Dss.Exit RST ToDSS JR .loop -;--------------------------------------- - -;----[LP_OPEN_S]------------------------ -; Открытие стандартных окон -; LD HL,#5104 -; LD E,0 ; win_flag - флаги окна: -; ; bit 0 определяет страницу режима, которая будет -; ; открыта после исполнения функции -; LD B,4 ; 4 - спектрумовское окно, HL - положение окна -; LD C,BIOS.LP_OPEN_S -; RST ToBIOS -; ;--------------------------------------- - -; SP_SAVE1: -; LD SP,0 -; EXX -; POP HL -; EXX -; POP IX -; POP IY -; EI -; RET -;======================================= -; - +;-------------------------------------------------; +;-----------------------------------------------------------------------; SET_PAL_x: IN A,(FastRAM.OFF) @@ -471,12 +415,10 @@ CLEAR_SP_PAL: MAIN: CALL INIT_TABLE RET C - ; IN A,(PORT_Y) - ; LD (SAVE_PORT_Y),A LD A,#C0 OUT (PORT_Y),A CALL RECALC_MAP - RET C ; нужно ли???!!! + RET C ; нужно ли???!!! ;----!!!!!!!!!!!!!!!!!!!!!!!!!---------- @@ -486,12 +428,6 @@ MAIN: CALL INIT_TABLE OUT (BorderColor),A CALL CLEAR_SP_PAL - -; !FIXIT переделать логику под новый биос? -;---[установка синхры, очистка экрана]-- - ; LD A,2 ; режим Pentagon - 320 строк в экране - ; LD C,BIOS.FN_SYNC - ; RST ToBIOS ;--------------------------------------- ;------[Открытие стандартных окон]------ @@ -506,13 +442,13 @@ MAIN: CALL INIT_TABLE ; LD HL,#4000 LD E,0 - LD B,8 ; графическое окно 0, HL - положение окна + LD B,8 ; графическое окно 0, HL - положение окна LD C,BIOS.LP_OPEN_S RST ToBIOS ; LD HL,#5000 LD E,1 - LD B,9 ; графическое окно 1, HL - положение окна + LD B,9 ; графическое окно 1, HL - положение окна LD C,BIOS.LP_OPEN_S RST ToBIOS ;--------------------------------------- @@ -533,11 +469,7 @@ D2_FRAM_page+1: LD DE,#1000 LD BC,D2_fram_END-TRACE LDIR - -; IFN NORM_syncPORT -; IM 2 ; вот теперь можно включать -; ENDIF - + ; POP AF OUT (SLOT3),A ;--------------------------------------- @@ -699,7 +631,7 @@ DM_LOOP: CALL SOUND - CALL TRACE ; прорисовка! + CALL TRACE ; прорисовка! CALL SOUND @@ -888,7 +820,7 @@ NEXT_BYTE_: LD (HL),0FFH NO_FFING: INC HL - BIT 7,H ;!!!!!проверка на конец страницы #C000-FFFF!!!!! + BIT 7,H ;!!!!!проверка на конец страницы #C000-FFFF!!!!! JR NZ,NEXT_BYTE_ OUT (C),B @@ -929,7 +861,7 @@ INIT_TABLE: LD (SKY_2),A ; LD HL,TABLE_MAIN+26 - ;LD A,26 ;!HARDCODE + ;LD A,26 ;!HARDCODE ;ADD A,L ;LD L,A LD A,(HL) @@ -944,7 +876,7 @@ NEXT_HL_FFING: PUSH DE PUSH BC - CALL MADE_FFING ; замена FF-ами прозрачных цветов + CALL MADE_FFING ; замена FF-ами прозрачных цветов POP BC POP DE @@ -977,19 +909,19 @@ NEXT_HL_FFING: ;ADD A,L ;LD L,A LD A,(TABLE_MAIN+33) - LD (EFF_PAGE),A ; звук выстрела + LD (EFF_PAGE),A ; звук выстрела ; LD HL,TABLE_MAIN ; LD A,34 ; ADD A,L ; LD L,A LD A,(TABLE_MAIN+34) - LD (PAGE_M_PLACE),A ; таблица с углами для монстров + LD (PAGE_M_PLACE),A ; таблица с углами для монстров ;--_[Читаем четвёртый блок таблиц H:]---; Tables disk my_tab*.* /* - LD A,3 ;2 ; походу, карта уровня и ещё что-то - LD C,0CEH ; получить идентификатор блока от рамдиска + LD A,3 ;2 ; походу, карта уровня и ещё что-то + LD C,0CEH ; получить идентификатор блока от рамдиска RST ToBIOS ret c ;--------------------------------------- @@ -1011,8 +943,8 @@ NEXT_HL_FFING: ; ;----[Читаем третий блок таблиц G:]-----; Tables disk mapw*.d2 /* - LD A,2 ;1 ; рамдиск стенок - LD C,0CEH ; получить идентификатор блока от рамдиска + LD A,2 ;1 ; рамдиск стенок + LD C,0CEH ; получить идентификатор блока от рамдиска RST ToBIOS ret c ;--------------------------------------- @@ -1025,10 +957,10 @@ NEXT_HL_FFING: LD A,B CP 17 CCF - RET C ; B - размер рамдиска + RET C ; B - размер рамдиска DEC A - LD (MAP_ELS),A ; число стенок + LD (MAP_ELS),A ; число стенок ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! /* @@ -1056,7 +988,7 @@ NEXT_HL_FFING: RST ToBIOS AND A RET -; ;!!!!!!!сделать сохранение скриншотов +; ;!TODO сделать сохранение скриншотов ; LD A,4 ; LD C,BIOS.GET_RAMD_ST ; получить идентификатор блока от рамдиска ; RST ToBIOS @@ -1076,11 +1008,11 @@ NEXT_HL_FFING: */ ;*************************************** - BLOCK #8700-$,0 ;ВЫРАВНИВАНИЕ + BLOCK #8700-$,0 ;ВЫРАВНИВАНИЕ ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; тут выравнивание на 0 в младшем ; бите адреса -TABLE_MAIN: DS 37 ; буфер под страницы файла resurses.res +1 +TABLE_MAIN: DS 37 ; буфер под страницы файла resurses.res +1 TABLE_PIC: DS 6 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -1633,40 +1565,6 @@ SAVE_PAL: XOR A OUT (SYS_PORT.OFF),A RET - - - ; IN A,(SLOT3) - ; PUSH AF - ; IN A,(SLOT2) - ; OUT (SLOT3),A - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 - ; LD DE,0 - ; LD A,#80 + 0 - ; LD C,BIOS.PIC_GET_PAL - ; RST ToBIOS - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024 - ; LD DE,0 - ; LD A,#80 + 1 - ; LD C,BIOS.PIC_GET_PAL - ; RST ToBIOS - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024+1024 - ; LD DE,0 - ; LD A,6 - ; LD C,BIOS.PIC_GET_PAL - ; RST ToBIOS - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024+1024+1024 - ; LD DE,0 - ; LD A,7 - ; LD C,BIOS.PIC_GET_PAL - ; RST ToBIOS - ; - ; POP AF - ; OUT (SLOT3),A - ; RET ;*********************************************************************** RESTORE_PAL: LD A,SYS_PORT.BIOS @@ -1695,68 +1593,6 @@ RESTORE_PAL: XOR A OUT (SYS_PORT.OFF),A RET - - ; - ; IN A,(SLOT2) - ; PUSH AF - ; OUT (SLOT3),A - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 - ; LD DE,0 - ; LD A,4 - ; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; установка палитры - ; RST ToBIOS - ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024 - ; LD DE,0 - ; LD A,5 - ; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; установка палитры - ; RST ToBIOS - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024+1024 - ; LD DE,0 - ; LD A,6 - ; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; установка палитры - ; RST ToBIOS - ; ; - ; LD HL,Pal_Restore_Buffer+#4000 + 1024+1024+1024 - ; LD DE,0 - ; LD A,7 - ; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; установка палитры - ; RST ToBIOS - ; - ; POP AF - ; OUT (SLOT3),A - ; RET -;*********************************************************************** - ;!TODO тут не проверяется режим 80 или 40 -; DEFINE _TXT_SCREEN #E000 -; SAVE_TXT_SCREEN: -; DI -; LD C,BIOS.LP_GET_PLACE -; RST ToBIOS -; LD (LOAD_TXT_SCREEN.CURS),DE -; ; -; XOR A -; LD B,SHARED_PAGE -; LD HL,#2050 ; #2028 -; LD DE,#0000 -; LD IX,_TXT_SCREEN -; LD C,BIOS.WIN_COPY -; JP ToBIOS -; LOAD_TXT_SCREEN: -; DI -; XOR A -; LD B,SHARED_PAGE -; LD HL,#2050 ; #2028 -; LD DE,#0000 -; LD IX,_TXT_SCREEN -; LD C,BIOS.WIN_RESTORE -; RST ToBIOS -; ; -; .CURS+1: LD DE,#0000 -; LD C,Dss.Locate -; JP ToDSS ;*********************************************************************** RESTORE_ALL: ; LD B,3 ; 3 - установка CGA палитры @@ -1850,39 +1686,6 @@ SCREEN_IN_CACHE: ;*********************************************************************** CHECK_SYSTEM: _mCHECK_SYS_VERSIONS MIN_VER.DSS_V, MIN_VER.DSS_M, MIN_VER.DSS_B, MIN_VER.BIOS_V, MIN_VER.BIOS_M - -; LD C,Dss.Version -; RST ToDSS -; JR C,.Error_DOS -; LD HL,MIN_DSS_VERSION -; EX DE,HL -; SBC HL,DE -; JR C,.Error_DOS -; ; -; LD HL,-(MIN_DSS_BUILD) -; ADD HL,BC -; JR NC,.Error_DOS -; ; -; LD C,BIOS.DRV_VERSION -; RST ToBIOS -; JR C,.Error_BIOS -; LD HL,-(MIN_BIOS_VERSION) -; ADD HL,DE -; RET C -; .Error_BIOS: -; LD HL,.Error_BIOS -; JR .next -; .Error_DOS: -; LD HL,.Error_DSS -; .next: LD C,Dss.PChars -; RST ToDSS -; ; -; LD B,DSS_Error.sys.COMMON_ERROR -; .error: LD C,Dss.Exit -; RST ToDSS -; JR .loop -; .Error_BIOS: DB "\r\nERROR! Uncompatible version of BIOS. Needs version ",TXT_BIOS_VERSION," or higher.\r\n",0 -; .Error_DSS: DB "\r\nERROR! Uncompatible version of DSS. Needs version ",TXT_DSS_VERSION," or higher.\r\n",0 ;*********************************************************************** ;---------------[Tables]---------------- ALIGN 2,0 diff --git a/Music_4x.asm b/Music_4x.asm index 62baa1e..e438e8f 100644 --- a/Music_4x.asm +++ b/Music_4x.asm @@ -187,14 +187,14 @@ SWITCH_SND: JR SWITCH_SND FILE_DATA: - DW 0 ; начальный кластер - DW 0,0 ; длина файла - ; - DW 0 ; текущий кластер - DW 0,0 ; текущее положение в файле - DW 0 ; текущий номер сектора в кластере + DW 0 ; начальный кластер + DW 0,0 ; длина файла + ; + DW 0 ; текущий кластер + DW 0,0 ; текущее положение в файле + DW 0 ; текущий номер сектора в кластере ; -OPEN_FILE: ; DE - name +OPEN_FILE: ; DE - name CALL FIND_FILE RET C @@ -220,12 +220,12 @@ OPEN_FILE: ; DE - name LD (FILE_DATA+10),HL LD (FILE_DATA+12),HL - LD IX,(FILE_DATA) ; номер первого кластера + LD IX,(FILE_DATA) ; номер первого кластера DEC IX - DEC IX ; -2 !!! + DEC IX ; -2 !!! LD HL,0 SCF - LD DE,(MSD_DATS.CLASTER_LEN + 1) ; длина кластера в байтах + LD DE,(MSD_DATS.CLASTER_LEN + 1) ; длина кластера в байтах RR D RR E .SEC_MUL: @@ -294,27 +294,27 @@ FIND_FILE: HDD_FN: EX AF,AF' IN A,(FastRAM.OFF) - IN A,(SLOT1) - PUSH AF + ;IN A,(SLOT1) + ;PUSH AF IN A,(SLOT3) PUSH AF - LD A,5 ;!FIXIT - OUT (SLOT1),A + ;LD A,5 ;!FIXIT + ;OUT (SLOT1),A ; LD A,CBL.BUFFER_PAGE OUT (SLOT3),A IN A,(PORT_Y) PUSH AF EX AF,AF' - RST ToBIOS ; читать сектора с винчестера, функция #45 + RST ToBIOS ; читать сектора с винчестера, функция #45 ; POP AF OUT (PORT_Y),A POP AF OUT (SLOT3),A - POP AF - OUT (SLOT1),A - IN A,(FastRAM.ON) ; включаем кэш + ;POP AF + ;OUT (SLOT1),A + IN A,(FastRAM.ON) ; включаем кэш RET ; ; diff --git a/Shared_Includes b/Shared_Includes index c9539a1..5a5dcf0 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit c9539a188d91551738e666770744c6007f0e5b01 +Subproject commit 5a5dcf0bd035d2adaaa27d28bb8ed1bd86260d59