diff --git a/DOOM2.asm b/DOOM2.asm index 89535c4..a109459 100644 --- a/DOOM2.asm +++ b/DOOM2.asm @@ -9,15 +9,43 @@ ScreenStartAddress EQU #C040 ;ScreenStartAddress EQU #C000 ; ;---------------------------[Defines section]--------------------------- - DEFINE EXE_HEADER 1 + DEFINE EXE_HEADER 1 +; VERSIONS +MIN_VER: ; 1.70.887 +.DSS_V EQU 1 ; Version +.DSS_M EQU 70 ; Modification +.DSS_B EQU 887 ; Build +; ; 2.55 +.BIOS_V EQU 2 ; Version +.BIOS_M EQU 55 ; Modification +;;;;;;; + +; DEFINE MIN_DSS_VERSION MIN_VER.DSS_V*256 + MIN_VER.DSS_M +; DEFINE MIN_DSS_BUILD MIN_VER.DSS_B +; DEFINE MIN_BIOS_VERSION MIN_VER.BIOS_V*256 + MIN_VER.BIOS_M + +; DEFINE TXT_DSS_VERSION ('0'+MIN_VER.DSS_V),\ +; '.',\ +; ('0'+MIN_VER.DSS_M/10),\ +; ('0'+MIN_VER.DSS_M-(MIN_VER.DSS_M/10)*10),\ +; '.',\ +; ('0'+MIN_VER.DSS_B/100),\ +; ('0'+(MIN_VER.DSS_B/10 - MIN_VER.DSS_B/100*10)),\ +; ('0'+(MIN_VER.DSS_B - MIN_VER.DSS_B/10*10)) ; + + +; DEFINE TXT_BIOS_VERSION '0'+MIN_VER.BIOS_V,\ +; '.',\ +; '0'+MIN_VER.BIOS_M/10,\ +; '0'+MIN_VER.BIOS_M-(MIN_VER.BIOS_M/10)*10 ;----------------------------------------------------------------------- ; ; ;-----------------------[Compilation parameters]------------------------ - DEVICE ZXSPECTRUM4096 ; модель с 4 метрами памяти - MMU 2 e, 0 ; нулевая страница в банку 2 и проверка на границы + DEVICE ZXSPECTRUM4096 ; модель с 4 метрами памяти + MMU 2 e, 0 ; нулевая страница в банку 2 и проверка на границы OUTPUT './Build/DOOM2/doom2.exe' ;----------------------------------------------------------------------- ; @@ -72,7 +100,9 @@ CMD_Line+1: LD HL,#8080 CALL SET_HOME_PATH ;--------[загрузка ресурсов игры]------- - LD HL,Loading_TXT + CALL CHECK_SYSTEM + ; + LD HL,MESSAGES_TXT.Loading LD C,Dss.PChars RST ToDSS ; @@ -199,11 +229,12 @@ RETURN_POINT: ; CALL RESTORE_ALL ; - LD HL,GOTO_EXIT + LD HL,MESSAGES_TXT.NormExit LD C,Dss.PChars RST ToDSS ; -.loop: LD BC,Dss.Exit +.loop: LD B,0 +.error: LD C,Dss.Exit RST ToDSS JR .loop ;--------------------------------------- @@ -1817,8 +1848,44 @@ SCREEN_IN_CACHE: OUT (SYS_PORT.OFF),A RET ;*********************************************************************** +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 + ALIGN 2,0 ; TABLES_START: X_COORD: DW 90*256 @@ -1845,31 +1912,14 @@ NAME6: DB "94956C CBL " NAME7: DB "_ENI511CCBL " ; SND_DIR: DZ "MUSIC" -;Up_Dir: DZ ".." -; -Loading_TXT: DZ "\r\nPlease wait, resources are loading..." -GOTO_EXIT: DZ "\r\n < GAME OVER))) >" -; -; IFN NORM_syncPORT - -; im_handler_emul_proc_address: -; di -; push af -; call KBD_INT -; pop af -; reti - -; BLOCK +(#FF - low $) -; im_handler_emulator: -; dw im_handler_emul_proc_address -; ENDIF ; +MESSAGES_TXT: +.Loading: DZ "\r\nPlease wait, resources are loading...\r\n" +.NormExit: DZ "DOOM 2 demo for DSS says goodbye to you...\r\n" +;-----------------------------------------------------------------------; OUTEND ; конец файла doom2.exe ;-----------------------------------------------------------------------; -;------------------------------------ -;CURRENT_DIR: BLOCK 257,0 - ;------------------------------------ Temp_Buffer EQU $ TXT_SCREEN EQU Temp_Buffer + 257 diff --git a/Shared_Includes b/Shared_Includes index b8a215d..c9539a1 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit b8a215d38afde3eed48f39eb961e96cdb6d9e426 +Subproject commit c9539a188d91551738e666770744c6007f0e5b01