mirror of
https://github.com/Tolik-Trek/DOOM2.git
synced 2026-06-15 17:11:34 +03:00
...
This commit is contained in:
parent
276d36e713
commit
c6910384f9
87
D2_FRAM.asm
87
D2_FRAM.asm
@ -98,11 +98,7 @@ SKY_LOOP_1:
|
|||||||
RES 7,H
|
RES 7,H
|
||||||
SET 6,H
|
SET 6,H
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
LD A,(SKY_1)
|
LD A,(SKY_1)
|
||||||
LD B,A
|
LD B,A
|
||||||
@ -118,12 +114,8 @@ NO_NEXT_SKY:
|
|||||||
DEC C
|
DEC C
|
||||||
JR NZ,SKY_LOOP_1
|
JR NZ,SKY_LOOP_1
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
;
|
|
||||||
EXX
|
EXX
|
||||||
SCREEN_1+1:
|
SCREEN_1+1:
|
||||||
LD DE,#C040 ; ç «® íªà
|
LD DE,#C040 ; ç «® íªà
|
||||||
@ -340,13 +332,7 @@ CONT_PAGE+1: LD A,0
|
|||||||
LD L,A
|
LD L,A
|
||||||
JP NZ,TRACE_LOOP
|
JP NZ,TRACE_LOOP
|
||||||
|
|
||||||
; CALL SOUND ; 見<>碪 研投芥 <20> 狙╳花‵<E88AB1>漭鄍!!!
|
CALL SOUND ; 見<>碪 研投芥 <20> 狙╳花‵<E88AB1>漭鄍!!!
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
INC H
|
INC H
|
||||||
BIT 7,H
|
BIT 7,H
|
||||||
@ -468,11 +454,7 @@ SET_PICTURE:
|
|||||||
LD A,#50
|
LD A,#50
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
;
|
;
|
||||||
ld bc,#0100 ; ¬ áèâ ¡¨à®¢ ¨¥ - 1
|
ld bc,#0100 ; ¬ áèâ ¡¨à®¢ ¨¥ - 1
|
||||||
OUT (C),C
|
OUT (C),C
|
||||||
@ -514,11 +496,7 @@ LOOP_PG:
|
|||||||
|
|
||||||
POP BC
|
POP BC
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
DJNZ PIC_LOOP
|
DJNZ PIC_LOOP
|
||||||
|
|
||||||
@ -1039,12 +1017,8 @@ NO_Z_A:
|
|||||||
LD A,E
|
LD A,E
|
||||||
AND #0F
|
AND #0F
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL Z,SOUND
|
CALL Z,SOUND
|
||||||
; ELSE
|
;
|
||||||
; CALL Z,YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
NO_WRITE_LINE:
|
NO_WRITE_LINE:
|
||||||
|
|
||||||
INC DE ; ®¢®¥ § 票¥ X
|
INC DE ; ®¢®¥ § 票¥ X
|
||||||
@ -1159,11 +1133,7 @@ MAP_L4:
|
|||||||
POP HL
|
POP HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
LD C,16
|
LD C,16
|
||||||
|
|
||||||
@ -1191,9 +1161,7 @@ MAP_L6:
|
|||||||
POP HL
|
POP HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
ENDIF
|
|
||||||
|
|
||||||
LD C,16
|
LD C,16
|
||||||
|
|
||||||
@ -1294,7 +1262,9 @@ CONT_MOVE:
|
|||||||
;COV_ADR: DB 0
|
;COV_ADR: DB 0
|
||||||
;SND_P: DB #FF
|
;SND_P: DB #FF
|
||||||
SND_A: DW #C000
|
SND_A: DW #C000
|
||||||
IF YesSound
|
|
||||||
|
|
||||||
|
|
||||||
SND_STOP:
|
SND_STOP:
|
||||||
; ®áâ ®¢¨âì ¬ã§ëªã
|
; ®áâ ®¢¨âì ¬ã§ëªã
|
||||||
PUSH AF
|
PUSH AF
|
||||||
@ -1348,19 +1318,14 @@ SND_INIT:
|
|||||||
LD E,A
|
LD E,A
|
||||||
|
|
||||||
JR SND_INIT1
|
JR SND_INIT1
|
||||||
ENDIF
|
|
||||||
|
|
||||||
|
|
||||||
SOUND:
|
SOUND:
|
||||||
IF !YesSound
|
|
||||||
; PUSH AF
|
|
||||||
; CALL KBD_INT
|
|
||||||
; POP AF
|
|
||||||
RET
|
|
||||||
ENDIF
|
|
||||||
;
|
|
||||||
IF YesSound
|
|
||||||
SoundOnOff:
|
SoundOnOff:
|
||||||
NOP ; áî¤ ¢áâ ¢«ï¥âáï ª®¬ ¤ RET ¤«ï ®âª«îç¥¨ï §¢ãª ¨ NOP ¤«ï ¢ª«î票ï
|
NOP ; áî¤ ¢áâ ¢«ï¥âáï ª®¬ ¤ RET ¤«ï ®âª«îç¥¨ï §¢ãª ¨ NOP ¤«ï ¢ª«î票ï
|
||||||
|
SoundOnOff2:
|
||||||
|
NOP
|
||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
SND_MORE:
|
SND_MORE:
|
||||||
@ -1525,22 +1490,16 @@ NO_LD_SND:
|
|||||||
POP HL
|
POP HL
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
ENDIF
|
|
||||||
;
|
; YesSoundZero:
|
||||||
IF !YesSound
|
; PUSH AF
|
||||||
YesSoundZero:
|
; PUSH HL
|
||||||
PUSH AF
|
; CALL KBD_INT
|
||||||
PUSH HL
|
; POP HL
|
||||||
CALL KBD_INT
|
; POP AF
|
||||||
POP HL
|
; RET
|
||||||
POP AF
|
|
||||||
RET
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
EFFECTS:
|
EFFECTS:
|
||||||
IF !YesSound
|
|
||||||
RET
|
|
||||||
ENDIF
|
|
||||||
LD DE,(EFF_)
|
LD DE,(EFF_)
|
||||||
LD A,D
|
LD A,D
|
||||||
CP #C0
|
CP #C0
|
||||||
@ -1930,12 +1889,7 @@ MONST_H1:
|
|||||||
|
|
||||||
CALL C,WALL
|
CALL C,WALL
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
NO_M_OUT:
|
NO_M_OUT:
|
||||||
call MONSTR_NEXT_P
|
call MONSTR_NEXT_P
|
||||||
|
|
||||||
@ -2050,7 +2004,7 @@ NO_SAVE:
|
|||||||
SAVE_HL: DW 0
|
SAVE_HL: DW 0
|
||||||
SAVE_P1: DW 0
|
SAVE_P1: DW 0
|
||||||
SAVE_P2: DW 0
|
SAVE_P2: DW 0
|
||||||
SAVE_RGA2: DB 0
|
; SAVE_RGA2: DB 0
|
||||||
|
|
||||||
SAVE_PIC:
|
SAVE_PIC:
|
||||||
IN A,(SCREEN_SWITCH)
|
IN A,(SCREEN_SWITCH)
|
||||||
@ -2126,7 +2080,8 @@ NO_NEXT_PAGE:
|
|||||||
OUT (C),B
|
OUT (C),B
|
||||||
LD BC,(SAVE_P1)
|
LD BC,(SAVE_P1)
|
||||||
OUT (C),B
|
OUT (C),B
|
||||||
LD A,(SAVE_RGA2)
|
SAVE_RGA2+1:
|
||||||
|
LD A,0
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
|
|
||||||
RET
|
RET
|
||||||
|
|||||||
422
DOOM2.asm
422
DOOM2.asm
@ -8,36 +8,7 @@
|
|||||||
|
|
||||||
;
|
;
|
||||||
;---------------------------[Defines section]---------------------------
|
;---------------------------[Defines section]---------------------------
|
||||||
; IFNDEF HARDWARE : IFNDEF ZXMAK2 : IFNDEF MAME : DEFINE HARDWARE 1 : ENDIF : ENDIF : ENDIF
|
|
||||||
|
|
||||||
; IFDEF HARDWARE
|
|
||||||
; DEFINE NORM_ACC 1
|
|
||||||
; DEFINE NORM_FastRAM 1
|
|
||||||
; ENDIF
|
|
||||||
; IFDEF ZXMAK2
|
|
||||||
; DEFINE NORM_ACC 0
|
|
||||||
; DEFINE NORM_FastRAM 0
|
|
||||||
; ENDIF
|
|
||||||
; IFDEF MAME
|
|
||||||
; DEFINE NORM_ACC 1
|
|
||||||
; DEFINE NORM_FastRAM 1
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
IFNDEF YesSound : DEFINE YesSound 1 : ENDIF
|
|
||||||
|
|
||||||
DEFINE EXE_HEADER 1
|
DEFINE EXE_HEADER 1
|
||||||
; DEFINE NEED_LOADER 1
|
|
||||||
|
|
||||||
; IFDEF HARDWARE
|
|
||||||
; DISPLAY "[]------[ Compilation target: Sprinter 2000 ]------[]"
|
|
||||||
; ENDIF
|
|
||||||
; IFDEF ZXMAK2
|
|
||||||
; DISPLAY "[]------[ Compilation target: emulator ZXMAK2 ]------[]"
|
|
||||||
; ENDIF
|
|
||||||
; IFDEF MAME
|
|
||||||
; DISPLAY "[]------[ Compilation target: emulator MAME ]------[]"
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -58,6 +29,7 @@
|
|||||||
include 'Shared_includes/constants/standart_colors.inc'
|
include 'Shared_includes/constants/standart_colors.inc'
|
||||||
include 'Shared_includes/macroses/accelerator.z80'
|
include 'Shared_includes/macroses/accelerator.z80'
|
||||||
include 'Shared_includes/macroses/macros.z80'
|
include 'Shared_includes/macroses/macros.z80'
|
||||||
|
include 'Shared_includes/structures/FileSystem.inc'
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -67,6 +39,7 @@ org_addr EQU #8000+CLP_Buffer
|
|||||||
code_addr EQU BEGIN
|
code_addr EQU BEGIN
|
||||||
stack_point EQU #BFFF
|
stack_point EQU #BFFF
|
||||||
program_start EQU BEGIN
|
program_start EQU BEGIN
|
||||||
|
Loader_length EQU 0
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -87,43 +60,33 @@ TABLE_W EQU #2000 ; ⥪
|
|||||||
ELSE
|
ELSE
|
||||||
ORG org_addr - CLP_Buffer
|
ORG org_addr - CLP_Buffer
|
||||||
ENDIF
|
ENDIF
|
||||||
|
;[]-------------------------------------------------------------------[]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;[]-------------------------------------------------------------------[]
|
||||||
BEGIN: DI
|
BEGIN: DI
|
||||||
|
|
||||||
LD (CMD_Line),IX ; á®åà ¨âì 㪠§ â¥«ì ¯ à ¬¥âàë § ¯ãáª
|
LD (CMD_Line),IX ; á®åà ¨âì 㪠§ â¥«ì ¯ à ¬¥âàë § ¯ãáª
|
||||||
CMD_Line+1:
|
CMD_Line+1:
|
||||||
LD HL,#8080
|
LD HL,#8080
|
||||||
|
CALL SET_HOME_PATH
|
||||||
; „®¤¥« âì???!!!!
|
|
||||||
; 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
|
|
||||||
|
|
||||||
|
|
||||||
;--------[§ £à㧪 à¥áãàᮢ ¨£àë]-------
|
;--------[§ £à㧪 à¥áãàᮢ ¨£àë]-------
|
||||||
; ¢ë¯®«¥® ¢ ¢¨¤¥ ª®áâë«ì®© § £«ã誨
|
; ¢ë¯®«¥® ¢ ¢¨¤¥ ª®áâë«ì®© § £«ã誨
|
||||||
call Load_Resources
|
LD HL,Loading_TXT
|
||||||
|
LD C,Dss.PChars
|
||||||
IFDEF NEED_LOADER
|
RST ToDSS
|
||||||
Loader_length EQU $-BEGIN
|
;
|
||||||
ELSE
|
CALL Load_Resources
|
||||||
Loader_length EQU 0
|
;
|
||||||
ENDIF
|
CALL SAVE_PAL
|
||||||
|
CALL SAVE_TXT_SCREEN
|
||||||
|
; LD A,Dss.SetVMod.grf320x256
|
||||||
|
; LD BC,Dss.SetVMod.Screen_1
|
||||||
|
; RST ToDSS
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
|
|
||||||
;-----[ˆ¨æ¨ «¨§ æ¨ï Covox-Blaster]-----
|
;-----[ˆ¨æ¨ «¨§ æ¨ï Covox-Blaster]-----
|
||||||
; IF YesSound
|
|
||||||
ld bc,CBL.SYS_PORT
|
ld bc,CBL.SYS_PORT
|
||||||
ld a,CBL.Blaster + CBL.Mono + CBL.is8bit + CBL.Int_off + CBL.KHz_16old
|
ld a,CBL.Blaster + CBL.Mono + CBL.is8bit + CBL.Int_off + CBL.KHz_16old
|
||||||
out (c),a
|
out (c),a
|
||||||
@ -136,7 +99,6 @@ Loader_length EQU 0
|
|||||||
JR NZ,1B
|
JR NZ,1B
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
;
|
;
|
||||||
; ENDIF
|
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -149,7 +111,6 @@ Loader_length EQU 0
|
|||||||
ld a,(RAMBlkIDs.d2_fram)
|
ld a,(RAMBlkIDs.d2_fram)
|
||||||
ld (D2_FRAM_page),a
|
ld (D2_FRAM_page),a
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
;----[]
|
;----[]
|
||||||
; ‡ ¯à 訢 ¥¬ áâà ¨æã ¤«ï ª â «®£
|
; ‡ ¯à 訢 ¥¬ áâà ¨æã ¤«ï ª â «®£
|
||||||
; á®åà 塞 ¥ñ ü ¢ ª®¤¥
|
; á®åà 塞 ¥ñ ü ¢ ª®¤¥
|
||||||
@ -163,7 +124,7 @@ Loader_length EQU 0
|
|||||||
rst ToDSS
|
rst ToDSS
|
||||||
LD (CatPage),a
|
LD (CatPage),a
|
||||||
;----[]
|
;----[]
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL CLEAR_GRAF_SCR
|
CALL CLEAR_GRAF_SCR
|
||||||
|
|
||||||
@ -214,8 +175,6 @@ Loader_length EQU 0
|
|||||||
CALL MAIN
|
CALL MAIN
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
; E)eeeeee X) xx I)iiii T)tttttt
|
; E)eeeeee X) xx I)iiii T)tttttt
|
||||||
@ -224,49 +183,61 @@ Loader_length EQU 0
|
|||||||
; E) X)xx I) T)
|
; E) X)xx I) T)
|
||||||
; E) X) xx I) T)
|
; E) X) xx I) T)
|
||||||
; E)eeeeee X) xx I)iiii T)
|
; E)eeeeee X) xx I)iiii T)
|
||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
;
|
||||||
|
;-----------[EXIT Procedure]------------;
|
||||||
|
RETURN_POINT:
|
||||||
|
; DI
|
||||||
|
; LD A,#10
|
||||||
|
; LD BC,#1FFD
|
||||||
|
; OUT (C),A
|
||||||
|
; LD A,RESET_PAGE
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
; LD (#C000),HL
|
||||||
|
; HALT_L:
|
||||||
|
; ;DI
|
||||||
|
; HALT
|
||||||
|
; JR HALT_L
|
||||||
|
|
||||||
|
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
|
||||||
|
;
|
||||||
|
.loop: LD BC,Dss.Exit
|
||||||
|
RST ToDSS
|
||||||
|
JR .loop
|
||||||
|
;---------------------------------------
|
||||||
|
|
||||||
;----[LP_OPEN_S]------------------------
|
;----[LP_OPEN_S]------------------------
|
||||||
; Žâªàë⨥ áâ ¤ àâëå ®ª®
|
; Žâªàë⨥ áâ ¤ àâëå ®ª®
|
||||||
LD HL,#5104
|
; LD HL,#5104
|
||||||
LD E,0 ; win_flag - ä« £¨ ®ª :
|
; LD E,0 ; win_flag - ä« £¨ ®ª :
|
||||||
; bit 0 ®¯à¥¤¥«ï¥â áâà ¨æã ०¨¬ , ª®â®à ï ¡ã¤¥â
|
; ; bit 0 ®¯à¥¤¥«ï¥â áâà ¨æã ०¨¬ , ª®â®à ï ¡ã¤¥â
|
||||||
; ®âªàëâ ¯®á«¥ ¨á¯®«¥¨ï äãªæ¨¨
|
; ; ®âªàëâ ¯®á«¥ ¨á¯®«¥¨ï äãªæ¨¨
|
||||||
LD B,4 ; 4 - ᯥªâà㬮¢áª®¥ ®ª®, HL - ¯®«®¦¥¨¥ ®ª
|
; LD B,4 ; 4 - ᯥªâà㬮¢áª®¥ ®ª®, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
LD C,BIOS.LP_OPEN_S
|
; LD C,BIOS.LP_OPEN_S
|
||||||
RST ToBIOS
|
; RST ToBIOS
|
||||||
;---------------------------------------
|
; ;---------------------------------------
|
||||||
|
|
||||||
SP_SAVE1:
|
; SP_SAVE1:
|
||||||
LD SP,0
|
; LD SP,0
|
||||||
EXX
|
; EXX
|
||||||
POP HL
|
; POP HL
|
||||||
EXX
|
; EXX
|
||||||
POP IX
|
; POP IX
|
||||||
POP IY
|
; POP IY
|
||||||
EI
|
; EI
|
||||||
RET
|
; RET
|
||||||
;=======================================
|
;=======================================
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
|
||||||
;-----------[EXIT Procedure]------------; ‘¤¥« âì!!!
|
|
||||||
RETURN_POINT: ; â®çª ¢®§¢à â - ¯®«ë© á¡à®á
|
|
||||||
DI
|
|
||||||
LD A,#10
|
|
||||||
LD BC,#1FFD
|
|
||||||
OUT (C),A
|
|
||||||
LD A,RESET_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD (#C000),HL
|
|
||||||
HALT_L:
|
|
||||||
;DI
|
|
||||||
HALT
|
|
||||||
JR HALT_L
|
|
||||||
;---------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
SET_PAL_x:
|
SET_PAL_x:
|
||||||
IN A,(FastRAM.OFF)
|
IN A,(FastRAM.OFF)
|
||||||
@ -413,11 +384,9 @@ CLEAR_COVOX:
|
|||||||
CLEAR_COVOX_X:
|
CLEAR_COVOX_X:
|
||||||
LD BC,CBL.COVOX_OUT
|
LD BC,CBL.COVOX_OUT
|
||||||
|
|
||||||
; IF YesSound
|
|
||||||
CLEAR_CBL:
|
CLEAR_CBL:
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
DJNZ CLEAR_CBL
|
DJNZ CLEAR_CBL
|
||||||
; ENDIF
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@ -518,7 +487,7 @@ MAIN: CALL INIT_TABLE
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
LD HL,#5000
|
LD HL,#5000
|
||||||
LD E,0
|
LD E,1
|
||||||
LD B,9 ; £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª
|
LD B,9 ; £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª
|
||||||
LD C,BIOS.LP_OPEN_S
|
LD C,BIOS.LP_OPEN_S
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
@ -587,12 +556,12 @@ D2_FRAM_page+1:
|
|||||||
|
|
||||||
CALL CLEAR_COVOX
|
CALL CLEAR_COVOX
|
||||||
|
|
||||||
|
|
||||||
IN A,(FastRAM.OFF)
|
IN A,(FastRAM.OFF)
|
||||||
CALL INIT_HDD_WORK
|
CALL INIT_HDD_WORK
|
||||||
|
|
||||||
IN A,(FastRAM.ON)
|
IN A,(FastRAM.ON)
|
||||||
|
|
||||||
SOUND_SWITCH:
|
SOUND_SWITCH:
|
||||||
IF YesSound
|
|
||||||
LD HL,NAMES+1
|
LD HL,NAMES+1
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
INC A
|
INC A
|
||||||
@ -609,18 +578,14 @@ SOUND_S1:
|
|||||||
RLCA
|
RLCA
|
||||||
RLCA
|
RLCA
|
||||||
;
|
;
|
||||||
ADD A,low (NAMES+2)
|
ADD A,low (NAME1)
|
||||||
LD E,A
|
LD E,A
|
||||||
LD A,0
|
LD A,0
|
||||||
RLA
|
RLA
|
||||||
ADD A,high (NAMES+2)
|
ADD A,high (NAME1)
|
||||||
LD D,A
|
LD D,A
|
||||||
;ADD A,#80
|
|
||||||
;LD E,A
|
|
||||||
;LD D,#80
|
|
||||||
CALL SET_SND_FILE
|
CALL SET_SND_FILE
|
||||||
CALL INIT_SOUND
|
CALL INIT_SOUND
|
||||||
ENDIF
|
|
||||||
|
|
||||||
MORE_PIC:
|
MORE_PIC:
|
||||||
LD HL,#0100
|
LD HL,#0100
|
||||||
@ -629,6 +594,7 @@ MORE_PIC:
|
|||||||
LD (Y_SPEED),HL
|
LD (Y_SPEED),HL
|
||||||
LD HL,#0200
|
LD HL,#0200
|
||||||
LD (A_SPEED),HL
|
LD (A_SPEED),HL
|
||||||
|
|
||||||
HELP_2:
|
HELP_2:
|
||||||
CALL CLEAR_SP_PAL
|
CALL CLEAR_SP_PAL
|
||||||
LD A,6
|
LD A,6
|
||||||
@ -670,9 +636,10 @@ PAUS_START:
|
|||||||
JR Z,DM_LOOP
|
JR Z,DM_LOOP
|
||||||
CP 38
|
CP 38
|
||||||
JR Z,SOUND_SWITCH
|
JR Z,SOUND_SWITCH
|
||||||
|
|
||||||
CP 9
|
CP 9
|
||||||
JP Z,RETURN_POINT
|
JP Z,RETURN_POINT
|
||||||
|
; CP 76
|
||||||
|
; JP Z,RETURN_POINT
|
||||||
CP 5
|
CP 5
|
||||||
JP Z,HELP_
|
JP Z,HELP_
|
||||||
|
|
||||||
@ -715,89 +682,51 @@ DM_LOOP:
|
|||||||
; CALL Z,SWITCH_XX_W
|
; CALL Z,SWITCH_XX_W
|
||||||
; CALL CRAZY_WALL
|
; CALL CRAZY_WALL
|
||||||
|
|
||||||
DI
|
;DI
|
||||||
; CALL SET_PAL_x
|
; CALL SET_PAL_x
|
||||||
; CALL FIRE_S
|
; CALL FIRE_S
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL CALC_NEW_PLACE
|
CALL CALC_NEW_PLACE
|
||||||
CALL MAP_PLACE
|
CALL MAP_PLACE
|
||||||
CALL MAKE_MAP ; á®®à㤨âì ®â®á¨â¥«ìãî ª àâã
|
CALL MAKE_MAP ; á®®à㤨âì ®â®á¨â¥«ìãî ª àâã
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL PRECALC_PLACE
|
CALL PRECALC_PLACE
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL TRACE ; ¯à®à¨á®¢ª !
|
CALL TRACE ; ¯à®à¨á®¢ª !
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
; CALL MONSTR_OUT
|
; CALL MONSTR_OUT
|
||||||
CALL MONSTR_ALL
|
CALL MONSTR_ALL
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL WEAPON_OUT
|
CALL WEAPON_OUT
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL MAP_OUT
|
CALL MAP_OUT
|
||||||
CALL CLEAR_Z_BUFER
|
CALL CLEAR_Z_BUFER
|
||||||
|
|
||||||
LOOP_SCR:
|
LOOP_SCR:
|
||||||
; IF NORM_syncPORT
|
|
||||||
IN A,(SCR_SyncPort)
|
IN A,(SCR_SyncPort)
|
||||||
BIT 5,A
|
BIT 5,A
|
||||||
JR NZ,CONT_WORK
|
JR NZ,CONT_WORK
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
JR LOOP_SCR
|
JR LOOP_SCR
|
||||||
|
|
||||||
; ELSE
|
|
||||||
; EI
|
|
||||||
; HALT
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
CONT_WORK:
|
CONT_WORK:
|
||||||
CALL SCR_SWITCH
|
CALL SCR_SWITCH
|
||||||
|
|
||||||
IF YesSound
|
|
||||||
CALL SOUND
|
CALL SOUND
|
||||||
; ELSE
|
|
||||||
; CALL YesSoundZero
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
JP DM_LOOP
|
JP DM_LOOP
|
||||||
|
|
||||||
@ -817,7 +746,7 @@ SET_1:
|
|||||||
PAUSE_INT:
|
PAUSE_INT:
|
||||||
CALL SOUND1
|
CALL SOUND1
|
||||||
|
|
||||||
; IF NORM_syncPORT
|
|
||||||
IN A,(SCR_SyncPort)
|
IN A,(SCR_SyncPort)
|
||||||
BIT 5,A
|
BIT 5,A
|
||||||
JR NZ,PAUSE_INT
|
JR NZ,PAUSE_INT
|
||||||
@ -828,11 +757,7 @@ PAUSE_INT1:
|
|||||||
BIT 5,A
|
BIT 5,A
|
||||||
RET NZ
|
RET NZ
|
||||||
JR PAUSE_INT1
|
JR PAUSE_INT1
|
||||||
; ELSE
|
|
||||||
; EI
|
|
||||||
; HALT
|
|
||||||
; ret
|
|
||||||
; ENDIF
|
|
||||||
PAUSE_SNDC:
|
PAUSE_SNDC:
|
||||||
JP SOUND
|
JP SOUND
|
||||||
|
|
||||||
@ -1641,8 +1566,173 @@ MONSTR_POS:
|
|||||||
POP DE
|
POP DE
|
||||||
RET
|
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:
|
||||||
|
IN A,(SLOT2)
|
||||||
|
PUSH AF
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
LD HL,Pal_Restore_Buffer+#4000
|
||||||
|
LD DE,0
|
||||||
|
LD A,4
|
||||||
|
LD C,BIOS.PIC_GET_PAL
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
; LD HL,Pal_Restore_Buffer+#4000 + 1024
|
||||||
|
; LD DE,0
|
||||||
|
; LD A,5
|
||||||
|
; 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:
|
||||||
|
;
|
||||||
|
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
|
||||||
|
SAVE_TXT_SCREEN:
|
||||||
|
LD C,BIOS.LP_GET_PLACE
|
||||||
|
RST ToBIOS
|
||||||
|
LD (LOAD_TXT_SCREEN.CURS),DE
|
||||||
|
LD IX,#4000 + TXT_SCREEN
|
||||||
|
LD HL,#2050 ; #2028
|
||||||
|
;
|
||||||
|
; LD (LOAD_TXT_SCREEN.SVHL1),HL
|
||||||
|
LD DE,#0000
|
||||||
|
IN A,(SLOT2)
|
||||||
|
LD B,A
|
||||||
|
LD C,BIOS.WIN_COPY
|
||||||
|
JP ToBIOS
|
||||||
|
|
||||||
|
LOAD_TXT_SCREEN:
|
||||||
|
LD IX,#4000 + TXT_SCREEN
|
||||||
|
.SVHL1+1: LD HL,#2050 ; #2028
|
||||||
|
LD DE,#0000
|
||||||
|
IN A,(SLOT2)
|
||||||
|
LD B,A
|
||||||
|
LD C,BIOS.WIN_RESTORE
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
.CURS+1: LD DE,#0000
|
||||||
|
LD C,Dss.Locate
|
||||||
|
JP ToDSS
|
||||||
|
;***********************************************************************
|
||||||
|
RESTORE_ALL:
|
||||||
|
LD A,1
|
||||||
|
LD HL, %0000'0100'0000'0000 ; § 票¥
|
||||||
|
LD DE, %1111'1110'0110'1111 ; ¬ áª
|
||||||
|
LD BC,0*256 + BIOS.DCP_CONFIG
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
;LD B,3 ; 3 - ãáâ ®¢ª CGA ¯ «¨âàë
|
||||||
|
;LD C,BIOS.SET_PAL_INIT ; ®¬¥à äãªæ¨¨
|
||||||
|
;RST ToBIOS ; ãáâ ®¢ª ¯ «¨âàë
|
||||||
|
;
|
||||||
|
LD A,Dss.SetVMod.txt80x32
|
||||||
|
LD BC,Dss.SetVMod.Screen_0
|
||||||
|
RST ToDSS
|
||||||
|
LD A,Dss.SetVMod.txt80x32
|
||||||
|
LD BC,Dss.SetVMod.Screen_1
|
||||||
|
RST ToDSS
|
||||||
|
;
|
||||||
|
CALL RESTORE_PAL
|
||||||
|
;
|
||||||
|
LD DE,0
|
||||||
|
LD HL,#2050
|
||||||
|
LD BC,COLORS.CGA.INC.LGRAY*256 + BIOS.LP_CLS_WIN
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
CALL LOAD_TXT_SCREEN
|
||||||
|
;
|
||||||
|
RET
|
||||||
|
;***********************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
;***********************************************************************
|
||||||
;---------------[Tables]----------------
|
;---------------[Tables]----------------
|
||||||
ALIGN 2,0
|
ALIGN 2,0
|
||||||
;
|
;
|
||||||
@ -1659,25 +1749,21 @@ A_SPEED: DW #200
|
|||||||
TABLE_TRACE: BLOCK 33,0 ; â ¡«¨æ âà áá¨à®¢ª¨/¡ ª¨ â ¡«¨æë
|
TABLE_TRACE: BLOCK 33,0 ; â ¡«¨æ âà áá¨à®¢ª¨/¡ ª¨ â ¡«¨æë
|
||||||
TABLE_WALL: BLOCK 17,0
|
TABLE_WALL: BLOCK 17,0
|
||||||
|
|
||||||
; BLOCK TABLES_START+#74-$,0 ;‚›<E2809A>€‚<E282AC>ˆ‚€<E2809A>ˆ…
|
|
||||||
|
|
||||||
NAMES: DB 6,1
|
NAMES: DB 7,1
|
||||||
LAST_KEY: DB 0
|
LAST_KEY: DB 0
|
||||||
|
|
||||||
; BLOCK TABLES_START+#7C-$,0 ;‚›<E2809A>€‚<E282AC>ˆ‚€<E2809A>ˆ…
|
|
||||||
|
|
||||||
NAME1: DB "_1X62 CBL "
|
NAME1: DB "_1X62 CBL "
|
||||||
NAME2: DB "2NDREAL3CBL "
|
NAME2: DB "2NDREAL3CBL "
|
||||||
NAME3: DB "_ICT2 CBL "
|
NAME3: DB "_ICT2 CBL "
|
||||||
;NAME4: DB "MISS2 CBL "
|
NAME4: DB "5EL CBL "
|
||||||
;NAME5: DB "5EL CBL "
|
NAME5: DB "_UNNY2 CBL "
|
||||||
NAME6: DB "_UNNY2 CBL "
|
NAME6: DB "94956C CBL "
|
||||||
NAME8: DB "94956C CBL "
|
NAME7: DB "_ENI511CCBL "
|
||||||
NAME9: DB "_ENI511CCBL "
|
|
||||||
;
|
;
|
||||||
|
SND_DIR: DZ "MUSIC"
|
||||||
;Up_Dir: DZ ".."
|
;Up_Dir: DZ ".."
|
||||||
|
;
|
||||||
|
Loading_TXT: DZ "\r\nPlease wait, resources are loading..."
|
||||||
;
|
;
|
||||||
; IFN NORM_syncPORT
|
; IFN NORM_syncPORT
|
||||||
|
|
||||||
@ -1700,7 +1786,9 @@ NAME9: DB "_ENI511CCBL "
|
|||||||
;CURRENT_DIR: BLOCK 257,0
|
;CURRENT_DIR: BLOCK 257,0
|
||||||
|
|
||||||
;------------------------------------
|
;------------------------------------
|
||||||
Temp_Buffer EQU $
|
Pal_Restore_Buffer EQU $ ;Temp_Buffer + 256
|
||||||
|
Temp_Buffer EQU Pal_Restore_Buffer + 1024 + 1024
|
||||||
|
TXT_SCREEN EQU Temp_Buffer + 257
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
DISPLAY "DOOM2.EXE starts - ",/H,BEGIN
|
DISPLAY "DOOM2.EXE starts - ",/H,BEGIN
|
||||||
|
|||||||
153
Music_4x.asm
153
Music_4x.asm
@ -2,10 +2,6 @@
|
|||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;-------[¨¨æ¨ «¨§ æ¨ï ¢¨ç¥áâ¥à ]------;
|
;-------[¨¨æ¨ «¨§ æ¨ï ¢¨ç¥áâ¥à ]------;
|
||||||
INIT_HDD_WORK:
|
INIT_HDD_WORK:
|
||||||
IFN YesSound
|
|
||||||
RET
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
.currentDisk+1: ;
|
.currentDisk+1: ;
|
||||||
LD A,0
|
LD A,0
|
||||||
OR #80
|
OR #80
|
||||||
@ -48,59 +44,113 @@ INIT_HDD_WORK:
|
|||||||
JR C,.loop
|
JR C,.loop
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
CALL BPB_SetUp
|
CALL BPB_SetUp
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
PUSH AF
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
LD HL,SYS_PAGE.MSD_FAT_SEC
|
LD HL,SYS_PAGE.MSD_FAT_SEC
|
||||||
LD DE,MSD_DATS
|
LD DE,MSD_DATS
|
||||||
LD BC,16
|
LD BC,16
|
||||||
LDIR
|
LDIR
|
||||||
POP AF
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
; ;[ ] music and dirs
|
;[ ] music and dirs
|
||||||
; LD A,(CURRENT_DIR+1)
|
; LD A,(CURRENT_DIR+1)
|
||||||
; AND A
|
; AND A
|
||||||
; JR Z,.skip_dir
|
; JR Z,.skip_dir
|
||||||
; ;
|
;
|
||||||
; LD HL,Up_Dir
|
; LD HL,Up_Dir
|
||||||
; LD C,Dss.ChDir
|
; LD C,Dss.ChDir
|
||||||
; RST ToDSS
|
; RST ToDSS
|
||||||
; ;
|
;
|
||||||
; LD A,'\' ;
|
; LD A,'\' ;
|
||||||
; LD HL,CURRENT_DIR+257
|
; LD HL,CURRENT_DIR+257
|
||||||
; LD BC,257 ;!HARDCODE ¤«¨ áâப¨ ¯ãâ¨
|
; LD BC,257 ;!HARDCODE ¤«¨ áâப¨ ¯ãâ¨
|
||||||
; CPDR
|
; CPDR
|
||||||
; INC HL
|
; INC HL
|
||||||
; INC HL
|
;
|
||||||
; ;
|
LD HL,SND_DIR
|
||||||
; LD DE,Temp_Buffer
|
LD DE,Temp_Buffer
|
||||||
; LD A,FAT_ATTR.DIRECTORY
|
LD A,FAT_ATTR.DIRECTORY
|
||||||
; LD BC,Dss.F_First
|
LD BC,Dss.F_First
|
||||||
; RST ToDSS
|
RST ToDSS
|
||||||
; ;
|
JR NC,.start_setup
|
||||||
; LD HL,(Temp_Buffer+15)
|
;
|
||||||
; ;
|
LD A,#C9 ; RET opcode - disable music
|
||||||
|
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
|
||||||
|
CALL NSECTOR
|
||||||
|
LD (MSD_DATS.MSD_CAT_SEC2),HL
|
||||||
|
LD (MSD_DATS.MSD_CAT_SEC),IX
|
||||||
|
;JP READ_DIR
|
||||||
|
;-=-=-=-=-=-=-=-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ‚ FAT12/FAT16 ¤«ï ª®à¥¢®£® ª â «®£ ¢ë¤¥«¥® ¬¥áâ® ¬¥¦¤ã FAT ¨ ¤ 묨.
|
||||||
|
; Š ª ã§ âì ¥£® à §¬¥à ¢ ᥪâ®à å? —¨á«® í«¥¬¥â®¢ ª®à¥¢®£® ª â «®£ 㬮¦ ¥¬ 32,
|
||||||
|
; ¤®¡ ¢«ï¥¬ à §¬¥à ᥪâ®à , ¢ëç¨â ¥¬ ¥¤¨¨æã ¨ ¤¥«¨¬ íâ® ¢áñ à §¬¥à ᥪâ®à .
|
||||||
|
; Š« áâ¥à ¯ ¯ª¨ #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) ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||||||
;-----[ç¨â âì ᥪâ®àë á ¢¨ç¥áâ¥à ]-----
|
;-----[ç¨â âì ᥪâ®àë á ¢¨ç¥áâ¥à ]-----
|
||||||
|
|
||||||
READ_DIR:
|
READ_DIR:
|
||||||
LD HL,#C000 ; ¤à¥á ¡ãä¥à ¤ ëå
|
LD HL,#C000 ; ¤à¥á ¡ãä¥à ¤ ëå
|
||||||
LD DE,(MSD_DATS+4) ; CAT TABLE. ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
LD DE,(MSD_DATS.MSD_CAT_SEC) ; CAT TABLE. ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
||||||
LD IX,(MSD_DATS+6) ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
LD IX,(MSD_DATS.MSD_CAT_SEC2) ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||||||
LD B,32 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
LD B,32 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
||||||
CatPage+1:
|
CatPage+1:
|
||||||
LD A,15 ; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
LD A,0 ; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000
|
||||||
LD C,BIOS.HDD_READ
|
LD C,BIOS.HDD_READ ; IX:DE - ¡á®«îâë© ®¬¥à ᥪâ®à
|
||||||
RST ToBIOS ; § £à㧨âì CAT
|
RST ToBIOS ; § £à㧨âì CAT
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
; KOSTILYI:
|
||||||
|
; INC IX
|
||||||
|
; RET
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
MSD_DATS: WORD 0,0,0,0,0,0,0,0
|
MSD_DATS:
|
||||||
|
.MSD_FAT_SEC DW 00
|
||||||
|
.MSD_FAT_SEC2 DW 00
|
||||||
|
.MSD_CAT_SEC DW 00
|
||||||
|
.MSD_CAT_SEC2 DW 00
|
||||||
|
.MSD_DAT_SEC DW 00
|
||||||
|
.MSD_DAT_SEC2 DW 00
|
||||||
|
.CLASTER_LEN DW 00
|
||||||
|
.CLASTER_LEN2 DW 00
|
||||||
|
|
||||||
SND_SEC1: DW 12525 ; ç «ìë© á¥ªâ®à
|
SND_SEC1: DW 12525 ; ç «ìë© á¥ªâ®à
|
||||||
SND_SEC2: DW 0
|
SND_SEC2: DW 0
|
||||||
@ -113,10 +163,6 @@ SND_C1: DW #1720 ;
|
|||||||
SND_C2: DW 0
|
SND_C2: DW 0
|
||||||
|
|
||||||
SET_SND_FILE:
|
SET_SND_FILE:
|
||||||
IFN YesSound
|
|
||||||
ret
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CALL OPEN_FILE
|
CALL OPEN_FILE
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
@ -192,7 +238,7 @@ OPEN_FILE: ; DE - name
|
|||||||
DEC IX ; -2 !!!
|
DEC IX ; -2 !!!
|
||||||
LD HL,0
|
LD HL,0
|
||||||
SCF
|
SCF
|
||||||
LD DE,(MSD_DATS+13) ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
LD DE,(MSD_DATS.CLASTER_LEN + 1) ; ¤«¨ ª« áâ¥à ¢ ¡ ©â å
|
||||||
RR D
|
RR D
|
||||||
RR E
|
RR E
|
||||||
.SEC_MUL:
|
.SEC_MUL:
|
||||||
@ -203,9 +249,9 @@ OPEN_FILE: ; DE - name
|
|||||||
ADC HL,HL
|
ADC HL,HL
|
||||||
JR .SEC_MUL
|
JR .SEC_MUL
|
||||||
.SECT_X:
|
.SECT_X:
|
||||||
LD DE,(MSD_DATS+8)
|
LD DE,(MSD_DATS.MSD_DAT_SEC)
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD DE,(MSD_DATS+10)
|
LD DE,(MSD_DATS.MSD_DAT_SEC2)
|
||||||
ADC HL,DE ; HL:IX - ®¬¥à ¯¥à¢®£® ᥪâ®à ä ©«
|
ADC HL,DE ; HL:IX - ®¬¥à ¯¥à¢®£® ᥪâ®à ä ©«
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
@ -422,15 +468,56 @@ BPB_SetUp:
|
|||||||
;
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
EI
|
;EI
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
.ERROR_BPB:
|
.ERROR_BPB:
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
SCF
|
SCF
|
||||||
EI
|
;EI
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.FAT1_MSG:
|
.FAT1_MSG:
|
||||||
DB 'FAT1'
|
DB 'FAT1'
|
||||||
|
|
||||||
|
|
||||||
|
;-=-=-=-=-=-=-=-
|
||||||
|
; in: HL - CLUSTER
|
||||||
|
; out: HL:IX - SECTOR
|
||||||
|
NSECTOR:
|
||||||
|
IN A,(SLOT3)
|
||||||
|
EX AF,AF'
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,(SYS_PAGE.MS_BPB+CLAST_SIZE)
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
EX AF,AF'
|
||||||
|
;
|
||||||
|
LD DE,0 ;!FIXIT for FAT32
|
||||||
|
DEC HL
|
||||||
|
DEC HL
|
||||||
|
XOR 1
|
||||||
|
JR Z,.skip
|
||||||
|
;
|
||||||
|
RRA
|
||||||
|
.loop: ADD HL,HL
|
||||||
|
RL E
|
||||||
|
RL D
|
||||||
|
;
|
||||||
|
RRA
|
||||||
|
JP NC,.loop
|
||||||
|
;
|
||||||
|
.skip: EX DE,HL
|
||||||
|
LD XL,E
|
||||||
|
LD XH,D
|
||||||
|
LD DE,(MSD_DATS.MSD_DAT_SEC) ;first data sector ;!FIXIT ¥á«¨ ç «ìë© á¥ªâ®à > #FFFF
|
||||||
|
XOR A
|
||||||
|
ADD IX,DE
|
||||||
|
LD D,A
|
||||||
|
LD E,A
|
||||||
|
ADC HL,DE
|
||||||
|
;!TODO ¤® «¨ ¯à®¢¥àïâì ¯¥à¥¯®«¥¨¥ HL:IX?
|
||||||
|
RET
|
||||||
|
;-=-=-=-=-=-=-=-
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit f74ae7e760de5541ee4966d509442c6421225c3b
|
Subproject commit 93f04cc30f6a3c20f382c8b467bca79718c9ab2e
|
||||||
Loading…
Reference in New Issue
Block a user