mirror of
https://github.com/Tolik-Trek/DOOM2.git
synced 2026-06-15 09:01:34 +03:00
1884 lines
34 KiB
NASM
1884 lines
34 KiB
NASM
/*
|
||
;------------[<5B>…<EFBFBD>…„…‹€’œ!!!]------------
|
||
®¯â¨¬¨§¨à®¢ âì ¢ë¤¥«ï¥¬ë¥ ¡«®ª¨ ¯ ¬ïâ¨
|
||
¯à®¢¥àª ®è¨¡ª¨ ¯à¨ ¢ë§®¢¥ DSS ¨ BIOS
|
||
;---------------------------------------
|
||
*/
|
||
|
||
ScreenStartAddress EQU #C040
|
||
;ScreenStartAddress EQU #C000
|
||
;
|
||
;---------------------------[Defines section]---------------------------
|
||
DEFINE EXE_HEADER 1
|
||
;-----------------------------------------------------------------------
|
||
;
|
||
|
||
|
||
;
|
||
;-----------------------[Compilation parameters]------------------------
|
||
DEVICE ZXSPECTRUM4096 ; ¬®¤¥«ì á 4 ¬¥âà ¬¨ ¯ ¬ïâ¨
|
||
MMU 2 e, 0 ; ã«¥¢ ï áâà ¨æ ¢ ¡ ªã 2 ¨ ¯à®¢¥àª £à ¨æë
|
||
OUTPUT './Build/DOOM2/doom2.exe'
|
||
;-----------------------------------------------------------------------
|
||
;
|
||
|
||
;
|
||
;-------------------------------[Includes]------------------------------
|
||
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'
|
||
include 'Shared_includes/structures/FileSystem.inc'
|
||
;-----------------------------------------------------------------------
|
||
;
|
||
|
||
;
|
||
;-------------------------[Standart EQU section]------------------------
|
||
org_addr EQU #8000+CLP_Buffer
|
||
code_addr EQU BEGIN
|
||
stack_point EQU #BFFF
|
||
program_start EQU BEGIN
|
||
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
|
||
|
||
|
||
; Code start section
|
||
;[]-------------------------------------------------------------------[]
|
||
|
||
IF EXE_HEADER
|
||
include 'Shared_Includes/constants/EXE_Header.z80'
|
||
ORG org_addr
|
||
ELSE
|
||
ORG org_addr - CLP_Buffer
|
||
ENDIF
|
||
;[]-------------------------------------------------------------------[]
|
||
|
||
|
||
|
||
;[]-------------------------------------------------------------------[]
|
||
BEGIN: DI
|
||
LD (CMD_Line),IX ; á®åà ¨âì 㪠§ â¥«ì ¯ à ¬¥âàë § ¯ãáª
|
||
CMD_Line+1:
|
||
LD HL,#8080
|
||
CALL SET_HOME_PATH
|
||
;--------[§ £à㧪 à¥áãàᮢ ¨£àë]-------
|
||
LD HL,Loading_TXT
|
||
LD C,Dss.PChars
|
||
RST ToDSS
|
||
;
|
||
CALL SAVE_ALL
|
||
; ¢ë¯®«¥® ¢ ¢¨¤¥ ª®áâë«ì®© § £«ã誨
|
||
CALL Load_Resources
|
||
;
|
||
;CALL SAVE_TXT_SCREEN
|
||
; LD A,Dss.SetVMod.grf320x256
|
||
; LD BC,Dss.SetVMod.Screen_1
|
||
; RST ToDSS
|
||
;---------------------------------------
|
||
|
||
|
||
;-----[ˆ¨æ¨ «¨§ æ¨ï Covox-Blaster]-----
|
||
ld bc,CBL.SYS_PORT
|
||
ld a,CBL.Blaster + CBL.Mono + CBL.is8bit + CBL.Int_off + CBL.KHz_16old
|
||
out (c),a
|
||
;
|
||
;-----------[§ £«ãè¨âì §¢ãª]------------
|
||
LD A,#FF ; !FIXIT à §¢¥ â ª ¤® £«ãè¨âì? <20>¥ à㤨¬¥âë Sp97?
|
||
1: CALL CLEAR_COVOX_X
|
||
DEC A
|
||
CP #80
|
||
JR NZ,1B
|
||
;---------------------------------------
|
||
;
|
||
;---------------------------------------
|
||
|
||
|
||
; IN A,(SLOT3)
|
||
; PUSH AF
|
||
|
||
ld a,(RAMBlkIDs.resources)
|
||
ld (PalitrePage),a
|
||
|
||
ld a,(RAMBlkIDs.d2_fram)
|
||
ld (D2_FRAM_page),a
|
||
|
||
;----[;!FIXIT ¯¥à¥¤¥« âì ¬ã§«® API 5x]
|
||
; ‡ ¯à 訢 ¥¬ áâà ¨æã ¤«ï ª â «®£
|
||
; á®åà 塞 ¥ñ ü ¢ ª®¤¥
|
||
;
|
||
; „Ž„…‹€’œ!!!
|
||
; ¤® ¯®â®¬ ®à¬ «ì® ¢ë¤¥«ïâì ¨
|
||
; ®á¢®¡®¦¤ âì ¯ ¬ïâì, ¥ ¢®â íâ® ¢áñ
|
||
;
|
||
ld b,1
|
||
ld c,Dss.GetMem
|
||
rst ToDSS
|
||
LD (CatPage),a
|
||
;----[]
|
||
|
||
|
||
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
|
||
|
||
;----[®âªàëâì ¯®àâë ¬ áèâ ¡¨à®¢ ¨ï]----
|
||
; ®¤¨ ¢ãâ२© ¯®àâ ¬ áèâ ¡¨à®¢ ¨ï ¬ ¯¯¨âáï ¤¨ ¯¯ §®
|
||
; #XX00 ¢¥è¨å ¯®à⮢. Write, Dos off, CNF 0.
|
||
LD A,1
|
||
LD HL, %0000'0100'0000'0000 ; § 票¥
|
||
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
|
||
OUT (C),C
|
||
;-----------------------------------------------------------------------
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
CALL MAIN
|
||
;-----------------------------------------------------------------------
|
||
|
||
;-----------------------------------------------------------------------
|
||
|
||
; E)eeeeee X) xx I)iiii T)tttttt
|
||
; E) X) xx I) T)
|
||
; E)eeeee X)xx I) T)
|
||
; E) X)xx I) T)
|
||
; E) X) xx I) T)
|
||
; E)eeeeee X) xx I)iiii T)
|
||
;-----------------------------------------------------------------------
|
||
|
||
;
|
||
;-----------[EXIT Procedure]------------;
|
||
RETURN_POINT:
|
||
IN A,(FastRAM.OFF)
|
||
LD A,SYS_PORT.BIOS
|
||
OUT (SYS_PORT.RAM),A
|
||
;
|
||
LD A,ACEX.Config_PG.Sp2000_SoftSetUp
|
||
LD BC,BIOS.RST_CONF.CUSTOM
|
||
RST ToBIOS
|
||
;
|
||
CALL RESTORE_ALL
|
||
;
|
||
LD HL,GOTO_EXIT
|
||
LD C,Dss.PChars
|
||
RST ToDSS
|
||
;
|
||
.loop: LD BC,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)
|
||
CALL SET_PAL
|
||
IN A,(FastRAM.ON)
|
||
RET
|
||
|
||
SET_PAL:
|
||
;----[PIC_SET_PAL “áâ ®¢ª ¯ «¨âàë]----
|
||
; ‡ 票¥ ॣ¨áâ஢ ¢å®¤¥:
|
||
; C=0A4h
|
||
; HL - ¤ ë¥ ¯ «¨âàë:
|
||
; ᯨ᮪ 梥⮢ ¯® ç¥âëॠ¡ ©â B,G,R,Y
|
||
; E - ®¬¥à ç «ì®£® 梥â
|
||
; D - ª®«¨ç¥á⢮ ãáâ ¢«¨¢ ¥¬ëå æ¢¥â®¢
|
||
; B - ¬ ᪠¯à¨ ãáâ ®¢ª¥ ¯ «¨âàë.
|
||
; „«ï ®à¬ «ì®£® ०¨¬ ¤®«¦a
|
||
; ¡ëâì 0FFh
|
||
; A - ®¬¥à ¯ «¨âàë 0..15;
|
||
; ®â 8 ¤® 15 - १¥à¢ë¥
|
||
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
PalitrePage+1:
|
||
LD A,#FF
|
||
OUT (SLOT3),A
|
||
|
||
LD HL,#C000
|
||
LD DE,0
|
||
LD A,0
|
||
LD B,#FF
|
||
LD C,BIOS.PIC_SET_PAL ; ãáâ ®¢ª ¯ «¨âàë
|
||
RST ToBIOS
|
||
;DI
|
||
|
||
LD HL,#C000
|
||
LD DE,0
|
||
LD A,1
|
||
LD B,#FF
|
||
LD C,BIOS.PIC_SET_PAL ; ãáâ ®¢ª ¯ «¨âàë
|
||
RST ToBIOS
|
||
;DI
|
||
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
|
||
;
|
||
;---[®ç¨á⪠íªà á⥪®¬ ¨ ªá¥«¥¬]---
|
||
CLEAR_GRAF_SCR:
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
|
||
LD (SPSave2),SP
|
||
|
||
LD A,#50
|
||
OUT (SLOT3),A
|
||
|
||
XOR A
|
||
OUT (PORT_Y),A
|
||
|
||
LD SP,ScreenStartAddress + 640
|
||
LD B,640/4
|
||
|
||
;!TODO ![®¯â¨¬¨§¨à®¢ âì]!
|
||
ACC_SetBlockSize
|
||
LD E,0
|
||
LD D,E
|
||
LOOP_CLS:
|
||
ACC_FillScreenOneByte
|
||
PUSH DE
|
||
PUSH DE
|
||
ACC_Off
|
||
DJNZ LOOP_CLS
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
SPSave2+1:
|
||
LD SP,0
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
|
||
|
||
;----------------------------------------------------------------------;
|
||
; FOR ZX-ROM in SLOT0
|
||
; _2L_PRIKOL:
|
||
; LD A,7
|
||
; OUT (BorderColor),A
|
||
; XOR A
|
||
; OUT (PORT_Y),A
|
||
|
||
; LD A,2
|
||
; LD HL,#4000
|
||
; LD B,27
|
||
; CALL .pause_loop
|
||
|
||
; LD A,0
|
||
; LD HL#4000
|
||
; LD B,27
|
||
; CALL .pause_loop
|
||
|
||
; CALL #0D6B ; CLS
|
||
; LD HL,.TXT_SP
|
||
; CALL PRINT_LOOP
|
||
; RET
|
||
|
||
; .pause_loop:
|
||
; LD (HL),A
|
||
; INC L
|
||
; PUSH DE
|
||
; POP DE
|
||
; JR NZ,.pause_loop
|
||
; INC H
|
||
; DJNZ .pause_loop
|
||
; ;
|
||
; LD HL,#8000
|
||
; .loop: PUSH HL
|
||
; POP HL
|
||
; DEC HL
|
||
; LD A,H
|
||
; OR L
|
||
; JR NZ,.loop
|
||
; RET
|
||
|
||
; .PRINT_LOOP:
|
||
; LD A,(HL)
|
||
; INC HL
|
||
; CP #FF
|
||
; RET Z
|
||
; RST #10
|
||
; JR .PRINT_LOOP
|
||
|
||
; .TXT_SP: DB #7F," 1982 Sinclair Research Ltd.",#FF
|
||
;----------------------------------------------------------------------;
|
||
;
|
||
|
||
FLAG: DB 0
|
||
;SAVE_PORT_Y: DB 0
|
||
;
|
||
;
|
||
CLEAR_COVOX:
|
||
LD A,#80
|
||
|
||
CLEAR_COVOX_X:
|
||
LD BC,CBL.COVOX_OUT
|
||
|
||
CLEAR_CBL:
|
||
OUT (C),A
|
||
DJNZ CLEAR_CBL
|
||
RET
|
||
;
|
||
;
|
||
|
||
CLEAR_SP_PAL:
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
;
|
||
LD A,#50
|
||
OUT (SLOT3),A
|
||
;
|
||
LD B,61
|
||
.LOOP_PAL_ALL:
|
||
PUSH BC
|
||
LD BC,PORT_Y
|
||
.LOOP_PAL_C:
|
||
OUT (C),B
|
||
.RESES_ADR+1:
|
||
LD HL,#C3F0
|
||
;
|
||
LD D,16
|
||
;
|
||
.LOOP_PAL_D:
|
||
LD A,(HL)
|
||
RRA
|
||
RRA
|
||
RRA
|
||
RRA
|
||
RRA
|
||
AND 7
|
||
INC A
|
||
LD E,A
|
||
LD A,(HL)
|
||
SUB E
|
||
JR NC,.NO_Z
|
||
XOR A
|
||
.NO_Z: LD (HL),A
|
||
INC L
|
||
DEC D
|
||
JR NZ,.LOOP_PAL_D
|
||
;
|
||
CALL SOUND1
|
||
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:
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
;
|
||
;
|
||
;
|
||
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 ; 㦮 «¨???!!!
|
||
|
||
;----!!!!!!!!!!!!!!!!!!!!!!!!!----------
|
||
|
||
;---------------------------------------
|
||
XOR A
|
||
LD (LAST_KEY),A
|
||
OUT (BorderColor),A
|
||
|
||
CALL CLEAR_SP_PAL
|
||
|
||
; !FIXIT ¯¥à¥¤¥« âì «®£¨ªã ¯®¤ ®¢ë© ¡¨®á?
|
||
;---[ãáâ ®¢ª á¨åàë, ®ç¨á⪠íªà ]--
|
||
; LD A,2 ; ०¨¬ Pentagon - 320 áâப ¢ íªà ¥
|
||
; LD C,BIOS.FN_SYNC
|
||
; RST ToBIOS
|
||
;---------------------------------------
|
||
|
||
;------[Žâªàë⨥ áâ ¤ àâëå ®ª®]------
|
||
; ॣ¨áâà E - ä« £¨ ®ª
|
||
; ¡¨â 0 - ª ªãî áâà ¨æã ०¨¬ ¢ª«îç âì
|
||
; ¯®á«¥ ¨á¯®«¥¨ï äãªæ¨¨
|
||
; ¡¨â 4 - ª ª®© áâà ¨æ¥ à¥¦¨¬
|
||
; ®âªàë¢ âì ®ª®
|
||
; HL - ¬¥áâ® íªà ¥ ¯® § ª®¬¥áâ ¬
|
||
; (ª®¯¨ï ¢ IX+2,3), ¢ ®¢ëå ¢¥àá¨ïå
|
||
; ¡¨®á § 票¥ HL ¥ áãé¥á⢥®
|
||
;
|
||
LD HL,#4000
|
||
LD E,0
|
||
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 C,BIOS.LP_OPEN_S
|
||
RST ToBIOS
|
||
;---------------------------------------
|
||
|
||
LD A,(RESTORE_ALL.scr)
|
||
OUT (SCREEN_SWITCH),A
|
||
|
||
;----[¯¥à¥¡à®á ç á⨠ª®¤ ¢ FastRAM]----
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
D2_FRAM_page+1:
|
||
LD A,#FF
|
||
OUT (SLOT3),A
|
||
|
||
IN A,(FastRAM.ON)
|
||
|
||
LD HL,#C000
|
||
LD DE,#1000
|
||
LD BC,D2_fram_END-TRACE
|
||
LDIR
|
||
|
||
; IFN NORM_syncPORT
|
||
; IM 2 ; ¢®â ⥯¥àì ¬®¦® ¢ª«îç âì
|
||
; ENDIF
|
||
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
;---------------------------------------
|
||
;
|
||
LD HL,#C3E0
|
||
LD (CLEAR_SP_PAL.RESES_ADR),HL
|
||
;
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
; ‘âà ®¥ ¬¥áâ®. Œ®¦® ¦¥ áà §ã ¢ ª®¤¥
|
||
; ¡ë«® í⮠ᤥ« âì ¨ ¥ ¯¥à¥ª¨¤ë¢ âì
|
||
LD HL,PAUSE_SNDC
|
||
LD DE,PAUSE_SND
|
||
LD BC,3
|
||
LDIR
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
||
CALL CLEAR_COVOX
|
||
|
||
|
||
IN A,(FastRAM.OFF)
|
||
CALL INIT_HDD_WORK
|
||
IN A,(FastRAM.ON)
|
||
|
||
SOUND_SWITCH:
|
||
LD HL,NAMES+1
|
||
LD A,(HL)
|
||
INC A
|
||
LD (HL),A
|
||
DEC HL
|
||
CP (HL)
|
||
JR NZ,SOUND_S1
|
||
LD A,0
|
||
INC HL
|
||
LD (HL),A
|
||
SOUND_S1:
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
;
|
||
ADD A,low (NAME1)
|
||
LD E,A
|
||
LD A,0
|
||
RLA
|
||
ADD A,high (NAME1)
|
||
LD D,A
|
||
CALL SET_SND_FILE
|
||
CALL INIT_SOUND
|
||
|
||
MORE_PIC:
|
||
LD HL,#0100
|
||
LD (X_SPEED),HL
|
||
LD HL,#0102
|
||
LD (Y_SPEED),HL
|
||
LD HL,#0200
|
||
LD (A_SPEED),HL
|
||
|
||
HELP_2:
|
||
CALL CLEAR_SP_PAL
|
||
LD A,6
|
||
CALL SET_PICTURE
|
||
CALL SCR_SWITCH
|
||
LD A,6
|
||
CALL PIC_ALL_MD
|
||
|
||
LD A,11
|
||
CALL PIC_ALL_MD
|
||
|
||
LD A,16
|
||
CALL PIC_ALL_MD
|
||
|
||
MORE_PIC_LK:
|
||
LD A,21
|
||
CALL SET_PICTURE
|
||
CALL SCR_SWITCH
|
||
CALL SET_PAL_x
|
||
|
||
LD B,240
|
||
|
||
PAUS_START:
|
||
DEC B
|
||
JR Z,DM_LOOP
|
||
CALL PAUSE_INT
|
||
LD A,(LAST_KEY)
|
||
AND A
|
||
JR Z,PAUS_START
|
||
|
||
LD B,0
|
||
LD C,A
|
||
XOR A
|
||
LD (LAST_KEY),A
|
||
LD A,C
|
||
CP 118
|
||
JR Z,MORE_PIC
|
||
CP 22
|
||
JR Z,DM_LOOP
|
||
CP 38
|
||
JR Z,SOUND_SWITCH
|
||
CP 9
|
||
JP Z,RETURN_POINT
|
||
; CP 76
|
||
; JP Z,RETURN_POINT
|
||
CP 5
|
||
JP Z,HELP_
|
||
|
||
JR PAUS_START
|
||
HELP_:
|
||
CALL FIRE_X
|
||
LD HL,#0300
|
||
LD (X_SPEED),HL
|
||
LD HL,#0382
|
||
LD (Y_SPEED),HL
|
||
LD HL,#0500
|
||
LD (A_SPEED),HL
|
||
JR DM_LOOP
|
||
|
||
;SWITCH_XX_W:
|
||
; LD HL,XX_W1
|
||
; LD DE,XX_W2
|
||
; LD B,3
|
||
;SWITCH_XX_W1:
|
||
; LD A,(DE)
|
||
; LD C,(HL)
|
||
; LD (HL),A
|
||
; LD A,C
|
||
; LD (DE),A
|
||
; DJNZ SWITCH_XX_W1
|
||
; RET
|
||
|
||
PIC_ALL_MD:
|
||
CALL SET_PICTURE
|
||
CALL SCR_SWITCH
|
||
CALL SET_PAL_x
|
||
CALL CLEAR_SP_PAL
|
||
RET
|
||
|
||
DM_LOOP:
|
||
LD A,(LAST_KEY)
|
||
CP 118
|
||
JP Z,MORE_PIC_LK
|
||
; CP 37
|
||
; CALL Z,SWITCH_XX_W
|
||
; CALL CRAZY_WALL
|
||
|
||
;DI
|
||
; CALL SET_PAL_x
|
||
; CALL FIRE_S
|
||
|
||
|
||
CALL SOUND
|
||
|
||
CALL CALC_NEW_PLACE
|
||
CALL MAP_PLACE
|
||
CALL MAKE_MAP ; á®®à㤨âì ®â®á¨â¥«ìãî ª àâã
|
||
|
||
CALL SOUND
|
||
|
||
CALL PRECALC_PLACE
|
||
|
||
CALL SOUND
|
||
|
||
CALL TRACE ; ¯à®à¨á®¢ª !
|
||
|
||
CALL SOUND
|
||
|
||
; CALL MONSTR_OUT
|
||
CALL MONSTR_ALL
|
||
|
||
CALL SOUND
|
||
|
||
CALL WEAPON_OUT
|
||
|
||
CALL SOUND
|
||
|
||
CALL MAP_OUT
|
||
CALL CLEAR_Z_BUFER
|
||
|
||
LOOP_SCR:
|
||
IN A,(SCR_SyncPort)
|
||
BIT 5,A
|
||
JR NZ,CONT_WORK
|
||
|
||
CALL SOUND
|
||
JR LOOP_SCR
|
||
|
||
CONT_WORK:
|
||
CALL SCR_SWITCH
|
||
|
||
CALL SOUND
|
||
|
||
JP DM_LOOP
|
||
|
||
SCR_SWITCH:
|
||
IN A,(SCREEN_SWITCH)
|
||
;AND 1
|
||
XOR 1
|
||
OUT (SCREEN_SWITCH),A
|
||
|
||
LD DE,ScreenStartAddress
|
||
JR Z,SET_1
|
||
LD DE,ScreenStartAddress + #0140
|
||
SET_1:
|
||
LD (SCREEN_1),DE
|
||
RET
|
||
|
||
PAUSE_INT:
|
||
CALL SOUND1
|
||
|
||
|
||
IN A,(SCR_SyncPort)
|
||
BIT 5,A
|
||
JR NZ,PAUSE_INT
|
||
|
||
PAUSE_INT1:
|
||
CALL SOUND1
|
||
IN A,(SCR_SyncPort)
|
||
BIT 5,A
|
||
RET NZ
|
||
JR PAUSE_INT1
|
||
|
||
PAUSE_SNDC:
|
||
JP SOUND
|
||
|
||
PAUSE_SND:
|
||
SOUND1:
|
||
RET
|
||
NOP
|
||
NOP
|
||
RET
|
||
|
||
;
|
||
MONSTR_DAT:
|
||
M_PAGE EQU $-MONSTR_DAT
|
||
DB 0 ; áâà ¨æ á ®¡é¨¬¨ ¤ 묨 ¬®áâà (ª à⨪¨)
|
||
; ¯à¨§ ª ª®æ â ¡«¨æë ¬®áâ஢
|
||
M_ADR EQU $-MONSTR_DAT
|
||
DW #4000 ; ¤à¥á ¢ áâà ¨æ¥
|
||
;
|
||
M_HIGH EQU $-MONSTR_DAT
|
||
DB #40 ; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥
|
||
;
|
||
M_HOR EQU $-MONSTR_DAT
|
||
DW 160 ; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥
|
||
;
|
||
M_VAR2 EQU $-MONSTR_DAT
|
||
DW 0008 ; áç¥â稪 ¯¥à¥ª«î票©
|
||
;
|
||
M_XADD EQU $-MONSTR_DAT
|
||
DW #0100 ; x-add ¯ à ¬¥âàë
|
||
DB #40,#40 ; è¨à¨ -¢ëá®â ???
|
||
;
|
||
M_X EQU $-MONSTR_DAT
|
||
DW #0700 ; ª®®à¤¨ â X
|
||
;
|
||
M_Y EQU $-MONSTR_DAT
|
||
DW #0700 ; ª®®à¤¨ â Y
|
||
;
|
||
M_VX EQU $-MONSTR_DAT
|
||
DW 0000 ; ᪮à®áâì ¤¢¨¦¥¨ï ¯® X
|
||
;
|
||
M_VY EQU $-MONSTR_DAT
|
||
DW 0000 ; ᪮à®áâì ¤¢¨¦¥¨ï ¯® Y
|
||
;
|
||
M_TYPE EQU $-MONSTR_DAT
|
||
DW 0000 ; ⨯ ¬®áâà ã¨ç⮦ ¥¬ë©, ¥ã¨ç⮦ ¥¬ë©
|
||
; ¨á祧 î騩 ¯à¨ 㤠ॠ® á⥪ã, ¥ ¨á祧 î騩
|
||
; ¨á祧 î騩 ¯à¨ ᮯਪ®á®¢¥¨¨ á ¨£à®ª®¬,
|
||
; ¥ ¨á祧 î騩....
|
||
|
||
M_VAR EQU $-MONSTR_DAT
|
||
DB 0 ; <20>¥à¥¬¥ë¥ ª®ªà¥â®£® ¬®áâà
|
||
;
|
||
M_VAR3 EQU $-MONSTR_DAT
|
||
DB 0
|
||
; <20>¥à¥¬¥ ï ¬®áâà ¡¨â 0,1 - ¤¥«¥¨¥ ¯® è¨à¨¥
|
||
; bit 2 - ¯¥à¥ª«îç âì ¯® áâ à襬ã
|
||
; bit 3 -
|
||
; bit 4
|
||
; bit 5
|
||
; bit 6 - ¯®ª §ë¢ âì ®¤¨ 横«
|
||
; bit 7 - ¥ ¢ë¢®¤¨âì
|
||
;
|
||
M_VAR4 EQU $-MONSTR_DAT
|
||
DB 0 ; <20>¥à¥ª«î票¥ ¬®áâà ADD ¯ à ¬¥âà
|
||
|
||
MONSTR_D_LEN EQU $-MONSTR_DAT ;á«¥¤ãî騩 ¬®áâà
|
||
DB 0 ; - ®âáãâáâ¢ã¥â
|
||
;
|
||
;****************************************
|
||
; IX+0 - áâà ¨æ á⥪¨
|
||
; IX+1,2 - ¤à¥á á⥪¨ ¢ áâà ¨æ¥
|
||
; IX+3 - ¯®«®¦¥¨¥ ¯® ¢¥à⨪ «¨ - § ¤ ¥â ¬ áèâ ¡
|
||
; IX+4,5 - ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨
|
||
|
||
; IX+6,7 - reserved
|
||
; IX+8,9 - X-add-parameter (ª®í䍿¨¥â ¬ áèâ ¡¨à®¢ ¨ï ¯® Y)
|
||
; IX+10 - ॠ«ì ï è¨à¨ á⥪¨ ???
|
||
; IX+11 - ॠ«ì ï ¢ëá®â á⥪¨ ???
|
||
|
||
WALL_DATS:
|
||
DB 0
|
||
DW #4000
|
||
DB #40
|
||
DW #00A0 ; 160
|
||
DB 0,0
|
||
|
||
MONSTR_DATS:
|
||
DB 0,0,0,0,0,0,0,0
|
||
;
|
||
; **************************************
|
||
;
|
||
;CAT_PAGE EQU 15
|
||
|
||
EFF_PAGE: DB #FF
|
||
PAGE_M_PLACE: DB #FF
|
||
FIRE_PAGE: DB #FF
|
||
BAR_PAGE: DB #FF
|
||
BFGF_PAGE: DB #FF
|
||
|
||
MONSTR_END_T: DW MONSTR_TABLE
|
||
|
||
;=======================================================================
|
||
;=======================================================================
|
||
|
||
INCLUDE 'Music_4x.asm'
|
||
|
||
;=======================================================================
|
||
;=======================================================================
|
||
|
||
|
||
SKY_1: DB #FF
|
||
SKY_2: DB #FF
|
||
PAGE_WEAPON: DB #FF
|
||
|
||
;***************************************
|
||
;***************************************
|
||
|
||
MADE_FFING:
|
||
LD C,SLOT3
|
||
IN B,(C)
|
||
OUT (C),A
|
||
LD HL,#C000
|
||
|
||
NEXT_BYTE_:
|
||
LD A,(HL)
|
||
CP #F7
|
||
JR NZ,NO_FFING
|
||
LD (HL),0FFH
|
||
NO_FFING:
|
||
INC HL
|
||
BIT 7,H ;!!!!!¯à®¢¥àª ª®¥æ áâà ¨æë #C000-FFFF!!!!!
|
||
JR NZ,NEXT_BYTE_
|
||
|
||
OUT (C),B
|
||
RET
|
||
|
||
;***************************************
|
||
|
||
INIT_TABLE:
|
||
;----[GET_RAMD_ST]----------------------
|
||
; ¯®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª ,
|
||
; § 祮£® RAM-Disk
|
||
;
|
||
|
||
;----[—¨â ¥¬ ¯¥à¢ë© ¡«®ª â ¡«¨æ E:]-----; Tables disk Doom.trd
|
||
|
||
;--------------------------------------- !!!!! ‡ ¬¥¨âì ª ç¥àâï¬ á¢®î ¯®¤£à㧪㠡«®ª ¬¨!
|
||
LD A,(RAMBlkIDs.resources)
|
||
LD HL,TABLE_MAIN
|
||
ld c,BIOS.GetMemBlkPages ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª A
|
||
rst ToBIOS
|
||
RET C
|
||
|
||
; LD HL,TABLE_MAIN
|
||
; INC HL
|
||
; INC HL
|
||
; INC HL
|
||
|
||
; !TODO <20>â® £®¢® ¤® ®¯â¨¬¨§¨à®¢ âì ¨ à ᪨¤ë¢ âì ®¬¥à áâà ¨æ áà §ã ¢ ª®¤
|
||
LD A,(TABLE_MAIN+3) ;!HARDCODE
|
||
LD (PAGE_WEAPON),A
|
||
; INC HL
|
||
;LD A,(HL)
|
||
LD A,(TABLE_MAIN+4) ;!HARDCODE
|
||
LD (SKY_1),A
|
||
;INC HL
|
||
LD A,(TABLE_MAIN+5) ;!HARDCODE
|
||
;LD A,(HL)
|
||
LD (SKY_2),A
|
||
;
|
||
LD HL,TABLE_MAIN+26
|
||
;LD A,26 ;!HARDCODE
|
||
;ADD A,L
|
||
;LD L,A
|
||
LD A,(HL)
|
||
LD (WALL_DATS),A
|
||
;
|
||
LD DE,MONSTR_DATS
|
||
LD B,7
|
||
NEXT_HL_FFING:
|
||
LD A,(HL)
|
||
LD (DE),A
|
||
PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
|
||
CALL MADE_FFING ; § ¬¥ FF- ¬¨ ¯à®§à çëå æ¢¥â®¢
|
||
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
INC HL
|
||
INC DE
|
||
DJNZ NEXT_HL_FFING
|
||
|
||
LD A,(MONSTR_DATS)
|
||
LD (MONSTR_DAT+M_PAGE),A
|
||
LD A,(MONSTR_DATS+5)
|
||
LD (FIRE_PAGE),A
|
||
LD A,(MONSTR_DATS+6)
|
||
LD (BAR_PAGE),A
|
||
|
||
;LD HL,TABLE_MAIN
|
||
;LD A,35
|
||
;ADD A,L
|
||
;LD L,A
|
||
LD A,(TABLE_MAIN+35)
|
||
LD (BFGF_PAGE),A
|
||
|
||
CALL MADE_FFING
|
||
|
||
LD A,(PAGE_WEAPON)
|
||
CALL MADE_FFING
|
||
|
||
;LD HL,TABLE_MAIN
|
||
;LD A,33
|
||
;ADD A,L
|
||
;LD L,A
|
||
LD A,(TABLE_MAIN+33)
|
||
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 ; â ¡«¨æ á 㣫 ¬¨ ¤«ï ¬®áâ஢
|
||
|
||
;--_[—¨â ¥¬ ç¥â¢ñàâë© ¡«®ª â ¡«¨æ H:]---; Tables disk my_tab*.*
|
||
/*
|
||
LD A,3 ;2 ; ¯®å®¤ã, ª àâ ãà®¢ï ¨ ¥éñ çâ®-â®
|
||
LD C,0CEH ; ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¡«®ª ®â à ¬¤¨áª
|
||
RST ToBIOS
|
||
ret c
|
||
;---------------------------------------
|
||
*/
|
||
ld a,(RAMBlkIDs.d2_table)
|
||
LD HL,TABLE_TRACE
|
||
ld c,BIOS.GetMemBlkPages ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª A
|
||
rst ToBIOS
|
||
RET C
|
||
LD A,B
|
||
;
|
||
CP 33
|
||
CCF
|
||
RET C
|
||
;CP 32
|
||
;SCF
|
||
;RET NZ
|
||
;
|
||
;
|
||
;----[—¨â ¥¬ âà¥â¨© ¡«®ª â ¡«¨æ G:]-----; Tables disk mapw*.d2
|
||
/*
|
||
LD A,2 ;1 ; à ¬¤¨áª á⥮ª
|
||
LD C,0CEH ; ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¡«®ª ®â à ¬¤¨áª
|
||
RST ToBIOS
|
||
ret c
|
||
;---------------------------------------
|
||
*/
|
||
ld a,(RAMBlkIDs.map_wall)
|
||
LD HL,TABLE_WALL
|
||
ld c,BIOS.GetMemBlkPages ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª A
|
||
rst ToBIOS
|
||
RET C
|
||
LD A,B
|
||
CP 17
|
||
CCF
|
||
RET C ; B - à §¬¥à à ¬¤¨áª
|
||
|
||
DEC A
|
||
LD (MAP_ELS),A ; ç¨á«® á⥮ª
|
||
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
/*
|
||
XOR A
|
||
LD (TABLE_PIC),A
|
||
RET
|
||
*/
|
||
|
||
|
||
;----[—¨â ¥¬ ¯¥à¢ë© ¡«®ª â ¡«¨æ F:]-----; Tables disk *.XXX - ä ©« áªà¨è®â 81920 ¡ ©â
|
||
/*
|
||
LD A,4
|
||
LD C,BIOS.GET_RAMD_ST
|
||
RST ToBIOS
|
||
JR NC,1F
|
||
*/
|
||
XOR A
|
||
LD (TABLE_PIC),A
|
||
AND A
|
||
RET
|
||
/*
|
||
1:
|
||
LD HL,TABLE_PIC
|
||
LD C,BIOS.GetMemBlkPages ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª
|
||
RST ToBIOS
|
||
AND A
|
||
RET
|
||
; ;!!!!!!!ᤥ« âì á®åà ¥¨¥ áªà¨è®â®¢
|
||
; LD A,4
|
||
; LD C,BIOS.GET_RAMD_ST ; ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¡«®ª ®â à ¬¤¨áª
|
||
; RST ToBIOS
|
||
; AND A
|
||
; JR NZ,PIC_FOR_SAVE
|
||
; XOR A
|
||
; LD (TABLE_PIC),A
|
||
; AND A
|
||
; RET
|
||
;
|
||
;PIC_FOR_SAVE:
|
||
; LD HL,TABLE_PIC
|
||
; LD C,BIOS.GetMemBlkPages ; ¯®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª A
|
||
; RST ToBIOS
|
||
; XOR A
|
||
; RET
|
||
*/
|
||
|
||
;***************************************
|
||
BLOCK #8700-$,0 ;‚›<E2809A>€‚<E282AC>ˆ‚€<E2809A>ˆ…
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
; âãâ ¢ëà ¢¨¢ ¨¥ 0 ¢ ¬« ¤è¥¬
|
||
; ¡¨â¥ ¤à¥á
|
||
TABLE_MAIN: DS 37 ; ¡ãä¥à ¯®¤ áâà ¨æë ä ©« resurses.res +1
|
||
TABLE_PIC: DS 6
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
||
;-------[§ £à㧪 à¥áãàᮢ ¨£àë]--------
|
||
Load_Resources:
|
||
in a,(SLOT3)
|
||
ld (.SavePage),a
|
||
|
||
LD HL,RAMBlkIDs
|
||
LD DE,FilesTBL
|
||
LD B,FilesTBL.END
|
||
|
||
.LR_loop:
|
||
PUSH BC ;++áçñâ稪
|
||
PUSH HL ;++¡ãä¥à ¯®¤ BlockID
|
||
|
||
ex de,hl
|
||
ld b,(hl) ; FilesTBL
|
||
inc hl
|
||
ld (.FileName),hl
|
||
|
||
; B - à §¬¥à ¡«®ª ¢ áâà ¨æ å
|
||
ld c,Dss.GetMem
|
||
rst ToDSS
|
||
; A - ¨¤¥â¨ä¨ª â®à ¡«®ª ¯ ¬ïâ¨
|
||
|
||
pop hl ;--¡ãä¥à ¯®¤ BlockID
|
||
ld (hl),a
|
||
inc hl
|
||
push hl ;++¡ãä¥à ¯®¤ BlockID
|
||
|
||
; A - ¨¤¥â¨ä¨ª â®à ¡«®ª
|
||
ld hl,Temp_Buffer
|
||
ld c,BIOS.GetMemBlkPages
|
||
rst ToBIOS
|
||
; B - ç¨á«® áâà ¨æ ¢ ¡«®ª¥
|
||
; HL - ¤à¥á ¡ãä¥à , ¢ ¡ãä¥à¥ ᯨ᮪
|
||
; 䨧¨ç¥áª¨å áâà ¨æ ¯® ¯®à浪ã,
|
||
; § ª 稢 î騩áï ¡ ©â®¬ 0FFh
|
||
|
||
push hl ;++¡ãä¥à ᮠᯨ᪮¬ áâà ¨æ
|
||
push bc ;++᪮«ìª® áâà ¨æ £à㧨¬
|
||
|
||
.FileName+1:
|
||
ld hl,0
|
||
ld a,1
|
||
ld c,Dss.Open
|
||
rst ToDSS
|
||
ld (.TempFileID),a
|
||
pop bc ;--᪮«ìª® áâà ¨æ £à㧨¬
|
||
pop hl ;--¡ãä¥à ᮠᯨ᪮¬ áâà ¨æ
|
||
|
||
;---[ç¨â ¥¬]
|
||
.readloop:
|
||
ld a,(hl)
|
||
out (SLOT3),a
|
||
inc hl
|
||
push hl ;++¡ãä¥à ᮠᯨ᪮¬ áâà ¨æ
|
||
push bc ;++᪮«ìª® áâà ¨æ £à㧨¬
|
||
|
||
.TempFileID+1:
|
||
ld a,#FF ; ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||
LD HL,#C000 ; ¤à¥á ¢ ¯ ¬ïâ¨
|
||
LD DE,#4000 ; ª®«¨ç¥á⢮ ç¨â ¥¬ëå ¡ ©â
|
||
LD C,Dss.Read
|
||
RST ToDSS
|
||
;DI
|
||
|
||
pop bc ;--᪮«ìª® áâà ¨æ £à㧨¬
|
||
pop hl ;--¡ãä¥à ᮠᯨ᪮¬ áâà ¨æ
|
||
DJNZ .readloop
|
||
;---[]
|
||
|
||
;---[§ ªàë¢ ¥¬]
|
||
ld a,(.TempFileID)
|
||
ld c,Dss.Close
|
||
rst ToDSS
|
||
;---[]
|
||
|
||
ld de,(.FileName)
|
||
ld hl,13
|
||
add hl,de
|
||
ex de,hl
|
||
|
||
POP HL ;--¡ãä¥à ¯®¤ BlockID
|
||
POP BC ;--áçñâ稪
|
||
DJNZ .LR_loop
|
||
|
||
;-[à §®¡à âìáï á â ¡«¨æ ¬¨!!!]-
|
||
ld hl,TABLE_X_file
|
||
ld a,1
|
||
ld c,Dss.Open
|
||
rst ToDSS
|
||
push af
|
||
|
||
LD HL,TABLE_X ; ¤à¥á ¢ ¯ ¬ïâ¨
|
||
LD DE,TABLE_X_SIZE ; ª®«¨ç¥á⢮ ç¨â ¥¬ëå ¡ ©â
|
||
LD C,Dss.Read
|
||
rst ToDSS
|
||
|
||
pop af
|
||
ld c,Dss.Close
|
||
rst ToDSS
|
||
|
||
; ld hl,MONSTR_TABLE_file
|
||
; ld a,1
|
||
; ld c,Dss.Open
|
||
; rst ToDSS
|
||
; push af
|
||
|
||
; LD HL,MONSTR_TABLE ; ¤à¥á ¢ ¯ ¬ïâ¨
|
||
; LD DE,MONSTR_TABLE_SIZE ; ª®«¨ç¥á⢮ ç¨â ¥¬ëå ¡ ©â
|
||
; LD C,Dss.Read
|
||
; rst ToDSS
|
||
|
||
; pop af
|
||
; ld c,Dss.Close
|
||
; rst ToDSS
|
||
|
||
;di
|
||
;------------------------------
|
||
.SavePage+1:
|
||
ld a,0
|
||
out (SLOT3),a
|
||
;
|
||
; LD HL,CURRENT_DIR
|
||
; LD C,Dss.CurDir
|
||
; RST ToDSS
|
||
;
|
||
LD C,Dss.CurDisk
|
||
RST ToDSS
|
||
LD (INIT_HDD_WORK.currentDisk),A
|
||
;
|
||
RET
|
||
|
||
;Temp_Buffer: BLOCK 256,#FF
|
||
|
||
TABLE_X_file: db 'table_x.tbl',0
|
||
;MONSTR_TABLE_file: db 'monsters.tbl',0
|
||
|
||
|
||
;-------[’ ¡«¨æ § £à㧪¨ ä ©«®¢]-------
|
||
; ¤«¨ ¢ áâà ¨æ å 01 ¡ ©â
|
||
; ¨¬ï ä ©« 13 ¡ ©â
|
||
; ¥á«¨ ¨¬ï ä ©« < 12 ᨬ¢®«®¢,
|
||
; â® ¤®¡¨âì ã«ï¬¨ ¤® 12
|
||
|
||
FilesTBL:
|
||
DZ 36,'resource.res' ;0 Disk E:
|
||
DZ 16,'map_wall.res' ;1
|
||
DZ 32,'d2_table.tbl' ;2
|
||
DZ 01,'d2_fram.bin',0 ;3
|
||
.END EQU ($-FilesTBL)/14 ; ª®«¨ç¥á⢮ ä ©«®¢
|
||
|
||
RAMBlkIDs: BLOCK FilesTBL.END,0
|
||
.resources EQU RAMBlkIDs+0
|
||
.map_wall EQU RAMBlkIDs+1
|
||
.d2_table EQU RAMBlkIDs+2
|
||
.d2_fram EQU RAMBlkIDs+3
|
||
;---------------------------------------
|
||
;
|
||
|
||
DS #8B00-$ ;‚›<E2809A>€‚<E282AC>ˆ‚€<E2809A>ˆ…
|
||
|
||
RECALC_MAP:
|
||
; ¯¥à¥áç¥â ª àâë ॠ«ìë¥ ®¬¥à
|
||
; áâà ¨æ á⥮ª
|
||
|
||
LD IX,MONSTR_TABLE
|
||
LD HL,#4000
|
||
|
||
IN A,(SLOT1)
|
||
PUSH AF
|
||
LD A,(TABLE_WALL)
|
||
OUT (SLOT1),A
|
||
LD A,(HL)
|
||
CP '1'
|
||
JR NZ,NO_PROCESS
|
||
|
||
RECALC_X:
|
||
LD IX,MONSTR_TABLE
|
||
RECALC_M2:
|
||
LD A,(HL) ; ª®¤ á⥪¨
|
||
BIT 4,H
|
||
JR Z,NO_PRP ; ¯à®¢¥à¨âì, ª ªãî â ¡«¨æã ¯¥à¥áç¨âë¢ ¥¬
|
||
BIT 5,H
|
||
JR Z,NO_PRP ; ¥á«¨ ¥ 4-î, â® ¨¤â¨ ¤ «ìè¥, ¨ ç¥
|
||
; - íâ® â ¡«¨æ ¯à¥¯àïâá⢨©
|
||
RECALC_M2X:
|
||
LD A,(HL) ; ª®¤ á⥪¨
|
||
CP 'S' ; #53
|
||
JR Z,ZERO_PRP
|
||
SUB ' '
|
||
JR Z,ZERO_PRP
|
||
LD A,#5F ; ¯à¥¯ïâá⢨¥
|
||
JR ONE_PRP
|
||
ZERO_PRP:
|
||
XOR A
|
||
ONE_PRP:
|
||
LD (HL),A
|
||
INC L
|
||
JR NZ,RECALC_M2X
|
||
INC H
|
||
LD A,H
|
||
AND #0F
|
||
JR NZ,RECALC_M2X
|
||
JR NO_PROCESS ; § ª®ç¨âì
|
||
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
; ‘¤¥« âì ãá«®¢¨¥ ¬ ªá¨¬ «ì®¥ ª®«-¢®
|
||
; "¬®áâ஢" ¯à¨ § ¯®«¥¨¨ â ¡«¨æë ¯®
|
||
; LDIR ¢ ¯à®æ¥¤ãॠMONSTR_POS, ç⮡ ¥
|
||
; § «¥§âì á⥪ ¨«¨ ¤ «ìè¥ áâà ¨æë.
|
||
; MAX_IX < (ST_Point-MaxStackSize-MONSTR_D_LEN)
|
||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
NO_PRP:
|
||
LD A,(HL) ; ª®¤ á⥪¨
|
||
CP 'S' ; ¬¥áâ® áâ àâ ?
|
||
CALL Z,START_POS
|
||
CP 'M' ; ¬®áâà
|
||
CALL Z,MONSTR_POS
|
||
CP 'N' ; ®£¨
|
||
CALL Z,MONSTR_POS1
|
||
CP 'O' ; ¡®çª¨
|
||
CALL Z,MONSTR_POS2
|
||
CP 'P' ; ®£®ì bfg
|
||
CALL Z,MONSTR_POS3
|
||
SUB #20
|
||
JR Z,ZERO_WOLL
|
||
SUB #10
|
||
JR C,ZERO_WOLL
|
||
MAP_ELS+1:
|
||
CP 15
|
||
;
|
||
JR NC,ZERO_WOLL
|
||
|
||
PUSH HL
|
||
PUSH BC
|
||
LD HL,TABLE_WALL
|
||
INC A
|
||
LD C,A
|
||
LD B,0
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
|
||
; LD A,(TABLE_WALL+1)
|
||
|
||
POP BC
|
||
POP HL
|
||
|
||
JR NO_ZERO_W
|
||
ZERO_WOLL:
|
||
XOR A ; § ¡¨¢ âì ã«ï¬¨
|
||
BIT 4,H
|
||
JR NZ,NO_ZERO_W
|
||
DEC A ; § ¡¨¢ âì FF- ¬¨
|
||
NO_ZERO_W:
|
||
LD (HL),A
|
||
INC L
|
||
JR NZ,NO_PRP
|
||
INC H
|
||
LD A,H
|
||
AND #0F
|
||
JR NZ,NO_PRP
|
||
|
||
LD A,H
|
||
CP #50
|
||
JR NZ,NO_ST
|
||
LD (MONSTR_END_T),IX ; ª®¥æ â ¡«¨æë ¬®áâ஢
|
||
NO_ST:
|
||
LD A,H
|
||
CP #80
|
||
JR NZ,RECALC_X
|
||
|
||
NO_PROCESS:
|
||
POP AF
|
||
OUT (SLOT1),A
|
||
AND A
|
||
RET
|
||
|
||
START_POS:
|
||
PUSH HL
|
||
PUSH AF
|
||
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
|
||
LD A,L
|
||
; ADD A,A
|
||
; ADD A,A
|
||
ADD A,2
|
||
LD (X_COORD+1),A
|
||
|
||
; RL L
|
||
; RL H
|
||
; RL L
|
||
; RL H
|
||
|
||
LD A,H
|
||
ADD A,A
|
||
ADD A,A
|
||
ADD A,2
|
||
LD (Y_COORD+1),A
|
||
|
||
POP AF
|
||
POP HL
|
||
RET
|
||
|
||
MONSTR_POS1:
|
||
; ä ª¥«ë
|
||
CALL MONSTR_POS
|
||
PUSH AF
|
||
LD A,(FIRE_PAGE)
|
||
LD (IX-MONSTR_D_LEN+M_PAGE),A
|
||
LD A,6 ; ¤¥«¨âì è¨à¨ã 4 ¨ ¯¥à¥ª«îç âì ¯®
|
||
; áâ à襬㠤à¥áã
|
||
LD (IX-MONSTR_D_LEN+M_VAR3),A
|
||
LD A,10h
|
||
LD (IX-MONSTR_D_LEN+M_VAR4),A
|
||
LD A,0
|
||
LD (IX-MONSTR_D_LEN+M_VAR2),A ; £®à¥âì ¡ëáâ॥ ¢á¥å
|
||
POP AF
|
||
RET
|
||
|
||
MONSTR_POS2:
|
||
; ¡®çª¨
|
||
CALL MONSTR_POS
|
||
PUSH AF
|
||
LD A,(BAR_PAGE)
|
||
LD (IX-MONSTR_D_LEN+M_PAGE),A
|
||
LD A,5 ; ¤¥«¨âì è¨à¨ã 2, ¯¥à¥ª«îç âì
|
||
; ¯® áâ à襬㠤à¥áã
|
||
LD (IX-MONSTR_D_LEN+M_VAR3),A
|
||
LD A,20h
|
||
LD (IX-MONSTR_D_LEN+M_VAR4),A
|
||
LD A,4
|
||
LD (IX-MONSTR_D_LEN+M_VAR2),A ; £®à¥âì ¡ëáâ॥ ¢á¥å
|
||
POP AF
|
||
RET
|
||
|
||
MONSTR_DELET:
|
||
; 㤠«¥¨¥ ¬®áâà
|
||
; IX - 㤠«ï¥¬®¬ ¬®áâà¥
|
||
PUSH IX
|
||
PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
PUSH AF
|
||
|
||
PUSH IX ; ªã¤ ª¨¤ âì
|
||
POP DE
|
||
|
||
LD HL,MONSTR_D_LEN
|
||
ADD HL,DE ; ®âªã¤ ª¨¤ âì
|
||
|
||
LOOP_DEL:
|
||
LD A,(HL) ; ¯à¨§ ª «¨ç¨ï ¬®áâà
|
||
AND A
|
||
JR Z,NO_LDIR
|
||
|
||
LD BC,MONSTR_D_LEN
|
||
LDIR ; ¯¥à¥ª¨ãâ ®¤¨ ¬®áâà
|
||
JR LOOP_DEL
|
||
|
||
NO_LDIR:
|
||
LD (MONSTR_END_T),DE
|
||
XOR A
|
||
LD (DE),A
|
||
|
||
POP AF
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
POP IX
|
||
RET
|
||
|
||
|
||
MONSTR_BFG_INS:
|
||
; ¢áâ ¢¨âì ¢ â ¡«¨æã ¬®áâ஢
|
||
; RET
|
||
PUSH IX
|
||
PUSH AF
|
||
PUSH HL
|
||
PUSH DE
|
||
|
||
; ®£¥ë© è à FIRE
|
||
LD IX,(MONSTR_END_T) ; ¢§ïâì ª®¥æ â ¡«¨æë ¬®áâ஢
|
||
CALL MONSTR_POS ; ¨¨æ¨ «¨§¨à®¢ âì ®¢®£® ¬®áâà
|
||
CALL MONSTR_F_INI ; ¤«ï ®£ï
|
||
|
||
LD A,(X_COORD+1) ; ª®®à¤¨ âë ᮢ¯ ¤ îâ á ¨£à®ª®¬
|
||
LD (IX-MONSTR_D_LEN+M_X+1),A
|
||
LD A,(Y_COORD+1)
|
||
LD (IX-MONSTR_D_LEN+M_Y+1),A
|
||
|
||
LD HL,(ANGLE_R) ; 㣮« ¯®¢®à®â ¨£à®ª
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL ; x8
|
||
LD A,H
|
||
AND 3Eh
|
||
LD L,A
|
||
LD H,0
|
||
LD DE,TAB_ANGLE3+03Eh ; ¢§ïâì ¨§ â ¡«¨æë ¯® ¯à ¢«¥¨î
|
||
|
||
EX DE,HL
|
||
SBC HL,DE ; ᪮à®áâì ¤«ï FIRE
|
||
|
||
LD A,(HL)
|
||
LD (IX-MONSTR_D_LEN+M_VX+1),A
|
||
LD (IX-MONSTR_D_LEN+M_VX),0
|
||
INC HL
|
||
LD A,(HL)
|
||
LD (IX-MONSTR_D_LEN+M_VY+1),A
|
||
LD (IX-MONSTR_D_LEN+M_VY),0
|
||
|
||
LD (MONSTR_END_T),IX ; á®åà ¨âì ®¢ë© ª®¥æ
|
||
|
||
POP DE
|
||
POP HL
|
||
POP AF
|
||
POP IX
|
||
|
||
RET
|
||
|
||
MONSTR_POS3:
|
||
CALL MONSTR_POS
|
||
MONSTR_F_INI:
|
||
PUSH AF
|
||
LD A,(BFGF_PAGE)
|
||
LD (IX-MONSTR_D_LEN+M_PAGE),A
|
||
LD A,8 ; è à ®£ï, ¨á祧 î騩 ®â ¯à¥¯ïâá⢨ï
|
||
|
||
LD (IX-MONSTR_D_LEN+M_VAR3),A
|
||
LD A,10h
|
||
LD (IX-MONSTR_D_LEN+M_VAR4),A
|
||
LD A,0
|
||
LD (IX-MONSTR_D_LEN+M_VAR2),A ; £®à¥âì ¡ëáâ॥ ¢á¥å
|
||
LD A,-4
|
||
LD (IX-MONSTR_D_LEN+M_VX+1),A
|
||
POP AF
|
||
RET
|
||
|
||
MONSTR_POS:
|
||
; ¬®áâàë
|
||
; ¯à ¢¨«ì® «¨ ¯à®áâ ¢«ïîâáï ª®®à¤¨ âë
|
||
; ¯®á«¥ LDIR, ¥ ¤® ¥£®???
|
||
PUSH HL ; ª®¯¨à®¢ ¨¥ â ¡«¨æë ¬®áâà
|
||
PUSH DE
|
||
PUSH BC
|
||
PUSH IX
|
||
POP DE
|
||
LD HL,MONSTR_DAT
|
||
LD BC,MONSTR_D_LEN
|
||
LDIR
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
|
||
PUSH DE
|
||
PUSH HL
|
||
PUSH AF
|
||
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
|
||
LD A,L
|
||
ADD A,2
|
||
LD (IX+M_X+1),A
|
||
|
||
LD A,H
|
||
ADD A,A
|
||
ADD A,A
|
||
ADD A,2
|
||
LD (IX+M_Y+1),A
|
||
|
||
LD DE,MONSTR_D_LEN
|
||
ADD IX,DE
|
||
LD (IX),0 ; ®ç¥à¥¤®© ª®¥æ â ¡«¨æë
|
||
|
||
POP AF
|
||
POP HL
|
||
POP DE
|
||
RET
|
||
;
|
||
;***********************************************************************
|
||
|
||
|
||
;***********************************************************************
|
||
SET_HOME_PATH:
|
||
LD C,(HL)
|
||
LD B,0
|
||
INC BC
|
||
INC BC
|
||
INC BC
|
||
ADD HL,BC ; 㪠§ â¥«ì ¯®«ë© ¯ãâì ¤® ä ©« § ¯ãáª
|
||
LD A,(HL)
|
||
PUSH HL
|
||
SUB 'A'
|
||
LD C,Dss.ChDisk
|
||
RST ToDSS
|
||
;
|
||
POP HL
|
||
INC HL
|
||
INC HL
|
||
LD D,H
|
||
LD E,L
|
||
LD BC,128
|
||
XOR A
|
||
CPIR
|
||
LD A,'\' ;
|
||
LD BC,128
|
||
CPDR
|
||
LD A,(HL)
|
||
CP ':'
|
||
JR Z,.it_is_root
|
||
;
|
||
INC HL
|
||
LD (HL),0
|
||
EX DE,HL
|
||
LD C,Dss.ChDir ; ¯¥à¥å®¤ ¢ ª â «®£ DOOM2 ¢á直© á«ãç ©
|
||
RST ToDSS
|
||
.it_is_root:
|
||
RET
|
||
;***********************************************************************
|
||
SAVE_PAL:
|
||
LD A,SYS_PORT.BIOS
|
||
OUT (SYS_PORT.ON),A
|
||
IN A,(FastRAM.ON)
|
||
LD A,1
|
||
OUT (FastRAM.SLOT0),A
|
||
;
|
||
LD A,#50
|
||
OUT (SLOT3),A
|
||
XOR A
|
||
OUT (PORT_Y),A
|
||
;
|
||
LD DE,0
|
||
.loop: LD HL,#C3E0
|
||
LD BC,#20
|
||
LDIR
|
||
IN A,(PORT_Y)
|
||
INC A
|
||
OUT (PORT_Y),A
|
||
JR NZ,.loop
|
||
;
|
||
XOR A
|
||
OUT (FastRAM.SLOT0),A
|
||
IN A,(FastRAM.OFF)
|
||
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
|
||
OUT (SYS_PORT.ON),A
|
||
IN A,(FastRAM.ON)
|
||
LD A,1
|
||
OUT (FastRAM.SLOT0),A
|
||
;
|
||
LD A,#50
|
||
OUT (SLOT3),A
|
||
XOR A
|
||
OUT (PORT_Y),A
|
||
;
|
||
LD HL,0
|
||
.loop: LD DE,#C3E0
|
||
LD BC,#20
|
||
LDIR
|
||
IN A,(PORT_Y)
|
||
INC A
|
||
OUT (PORT_Y),A
|
||
JR NZ,.loop
|
||
;
|
||
XOR A
|
||
OUT (FastRAM.SLOT0),A
|
||
IN A,(FastRAM.OFF)
|
||
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 ¯ «¨âàë
|
||
; LD C,BIOS.SET_PAL_INIT ; ®¬¥à äãªæ¨¨
|
||
; RST ToBIOS ; ãáâ ®¢ª ¯ «¨âàë
|
||
CALL RESTORE_PAL
|
||
;
|
||
.mode+1: LD A,Dss.SetVMod.txt80x32
|
||
.scr+2: LD BC,Dss.SetVMod
|
||
RST ToDSS
|
||
;
|
||
LD BC,Dss.Lib_Sub.RestoreFont
|
||
RST ToDSS
|
||
;
|
||
LD A,(.mode)
|
||
CP #80
|
||
RET NC
|
||
;
|
||
.cursor+1:
|
||
LD DE,0
|
||
LD C,Dss.Locate
|
||
RST ToDSS
|
||
LD C,Dss.WinRest
|
||
JP TXT_Screen_Copy_Restore
|
||
;
|
||
;***********************************************************************
|
||
SAVE_ALL:
|
||
CALL SAVE_PAL
|
||
; ã§ âì ¢¨¤¥®à¥¦¨¬
|
||
LD C,Dss.GetVMod
|
||
RST ToDSS
|
||
LD (RESTORE_ALL.mode),A
|
||
LD A,B
|
||
LD (RESTORE_ALL.scr),A
|
||
; ¥á«¨ ०¨¬ ⥪áâ®¢ë© - á®åà ¨âì ®ª®
|
||
LD A,(RESTORE_ALL.mode)
|
||
CP #80
|
||
RET NC
|
||
;
|
||
LD C,Dss.Cursor
|
||
RST ToDSS
|
||
LD (RESTORE_ALL.cursor),DE
|
||
;
|
||
LD C,Dss.WinCopy
|
||
;JP TXT_Screen_Copy_Restore
|
||
;****************************
|
||
TXT_Screen_Copy_Restore:
|
||
LD A,Dss.WinCopy
|
||
SUB C
|
||
PUSH AF
|
||
PUSH BC
|
||
CALL NZ,SCREEN_IN_CACHE
|
||
;
|
||
LD A,(RESTORE_ALL.mode)
|
||
SUB 2
|
||
LD DE,0
|
||
LD HL,#2050
|
||
JR NZ,.next
|
||
LD L,#28
|
||
.next: IN A,(SLOT2)
|
||
POP BC
|
||
LD B,A
|
||
LD IX,TXT_SCREEN
|
||
RST ToDSS
|
||
POP AF
|
||
RET NZ
|
||
;DEC A
|
||
;JP SCREEN_IN_CACHE
|
||
;****************************
|
||
SCREEN_IN_CACHE:
|
||
LD A,SYS_PORT.BIOS
|
||
OUT (SYS_PORT.ON),A
|
||
IN A,(FastRAM.ON)
|
||
LD A,1
|
||
OUT (FastRAM.SLOT0),A
|
||
;
|
||
LD HL,TXT_SCREEN
|
||
LD DE,1024*8 ; à §¬¥à ¯ «¨âàë
|
||
JR Z,.no_change
|
||
EX DE,HL
|
||
.no_change:
|
||
LD BC,80*32*2 ; ¬ ªá¨¬ «ìë© à §¬¥à ⥪á⮢®£® íªà
|
||
LDIR
|
||
;
|
||
XOR A
|
||
OUT (FastRAM.SLOT0),A
|
||
IN A,(FastRAM.OFF)
|
||
XOR A
|
||
OUT (SYS_PORT.OFF),A
|
||
RET
|
||
;***********************************************************************
|
||
;---------------[Tables]----------------
|
||
ALIGN 2,0
|
||
;
|
||
TABLES_START:
|
||
X_COORD: DW 90*256
|
||
Y_COORD: DW 90*256
|
||
ANGLE_A: DW -160*32+#C000
|
||
ANGLE_R: DW 0
|
||
|
||
X_SPEED: DW #300
|
||
Y_SPEED: DW #302
|
||
A_SPEED: DW #200
|
||
|
||
TABLE_TRACE: BLOCK 33,0 ; â ¡«¨æ âà áá¨à®¢ª¨/¡ ª¨ â ¡«¨æë
|
||
TABLE_WALL: BLOCK 17,0
|
||
|
||
|
||
NAMES: DB 7,1
|
||
LAST_KEY: DB 0
|
||
NAME1: DB "_1X62 CBL "
|
||
NAME2: DB "2NDREAL3CBL "
|
||
NAME3: DB "_ICT2 CBL "
|
||
NAME4: DB "5EL CBL "
|
||
NAME5: DB "_UNNY2 CBL "
|
||
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
|
||
;
|
||
OUTEND ; ª®¥æ ä ©« doom2.exe
|
||
;-----------------------------------------------------------------------;
|
||
|
||
;------------------------------------
|
||
;CURRENT_DIR: BLOCK 257,0
|
||
|
||
;------------------------------------
|
||
Temp_Buffer EQU $
|
||
TXT_SCREEN EQU Temp_Buffer + 257
|
||
;
|
||
;
|
||
DISPLAY "DOOM2.EXE starts - ",/H,BEGIN
|
||
DISPLAY "DOOM2.EXE ends - ",/H,$
|
||
DISPLAY "DOOM2.EXE size - ",/H,$-BEGIN
|
||
|
||
;FRAM_PROG_1000H:
|
||
include 'D2_FRAM.asm'
|
||
; |