This commit is contained in:
Anatoliy Belyanskiy 2024-01-10 09:24:13 +10:00
parent 86e658d970
commit 4e79de923d
2 changed files with 42 additions and 80 deletions

View File

@ -8,13 +8,13 @@
DEFINE MUSIC_22khz 1
ENDIF
IF MUSIC_22khz
; ; #5944x128 blocks for play
DEFINE _memPagesForMuz 179
DEFINE _ramDiskNumForMuz 3
DEFINE _lastPageMuzOffset #5E00
; #5944x128 blocks for play
DEFINE _memPagesForMuz 179
DEFINE _ramDiskNumForMuz 3
DEFINE _lastPageMuzOffset #5E00
ELSE
DEFINE _memPagesForMuz 29
DEFINE _memPagesForMuz 29
ENDIF
;
@ -37,16 +37,16 @@ Slot BYTE #FF ; PAGE OF SPRITE
Address WORD #C000 ; ADDRESS OF SPRITE
Height BYTE #78 ; ¢ëá®â 
Width BYTE #80 ; è¨à¨­ 
X WORD 0000 ; ª®®à¤¨­ â  «¥¢®£® á⮫¡æ  á¯à ©â  ­  íªà ­¥ 0..(319-width)
Y BYTE #50 ; ª®®à¤¨­ â  ¢¥àå­¥© áâப¨ á¯à ©â  ­  íªà ­¥ 0..(255-Height)
X WORD 0000 ; ª®®à¤¨­ â  «¥¢®£® á⮫¡æ  á¯à ©â  ­  íªà ­¥ 0..(319-width)
Y BYTE #50 ; ª®®à¤¨­ â  ¢¥àå­¥© áâப¨ á¯à ©â  ­  íªà ­¥ 0..(255-Height)
Attribute BYTE #5C ; bit0 == 1 - ¬¥âª  ¯®á«¥¤­¥£® á¯à ©â  ¢ ᯨ᪥,   â ª íâ® £à ä¨ç¥áª ï áâà ­¨æ  á ¯®¤à¥¦¨¬ ¬¨ § ¯¨á¨
ENDS
;
;-------------------------[Standart EQU section]------------------------
org_addr EQU #8000+CLP_Buffer
code_addr EQU START
stack_point EQU #BFFF
org_addr EQU #8000+CLP_Buffer
code_addr EQU START
stack_point EQU #BFFF
program_start EQU START
Loader_length EQU 0
;-----------------------------------------------------------------------
@ -64,12 +64,12 @@ BackPlane:
.Height EQU 223
.Width EQU 1102
.OffsetY EQU 0
.Scroll.Step EQU 1
.Scroll.Width EQU 2*(BackPlane.Width/2 - ScreenSize.X/2)
.Scroll.Step EQU 1
.Scroll.Width EQU 2*(BackPlane.Width/2 - ScreenSize.X/2)
.PalSize EQU 64*4
.PalOffset EQU 0*4
.RGBoffset EQU 0 ; or #436 if with BMP header and palette
.FIllColorNum EQU 4 ; ­®¬¥à æ¢¥â  ¢ ¯ «¨âॠª à⨭ª¨ ¤«ï § «¨¢ª¨ ᢥàåã ¨ á­¨§ã
.RGBoffset EQU 0 ; or #436 if with BMP header and palette
.FIllColorNum EQU 4 ; ­®¬¥à æ¢¥â  ¢ ¯ «¨âॠª à⨭ª¨ ¤«ï § «¨¢ª¨ ᢥàåã ¨ á­¨§ã
.SizeBytes EQU BackPlane.Height * BackPlane.Width
.SizePages EQU BackPlane.SizeBytes/#4000 + (((BackPlane.SizeBytes mod #4000) != 0) * -1)
@ -78,44 +78,40 @@ BackPlane:
.Height EQU 200
.Width EQU 520
.OffsetY EQU 23
.Scroll.Step EQU 1
.Scroll.Width EQU 2*(BackPlane.Width/2 - ScreenSize.X/2)
.Scroll.Step EQU 1
.Scroll.Width EQU 2*(BackPlane.Width/2 - ScreenSize.X/2)
.PalSize EQU 64*4
.PalOffset EQU 0*4
.RGBoffset EQU 0 ; or #436 if with BMP header and palette
.FIllColorNum EQU 63 ; ­®¬¥à æ¢¥â  ¢ ¯ «¨âॠª à⨭ª¨ ¤«ï § «¨¢ª¨ ᢥàåã ¨ á­¨§ã
.RGBoffset EQU 0 ; or #436 if with BMP header and palette
.FIllColorNum EQU 63 ; ­®¬¥à æ¢¥â  ¢ ¯ «¨âॠª à⨭ª¨ ¤«ï § «¨¢ª¨ ᢥàåã ¨ á­¨§ã
.SizeBytes EQU BackPlane.Height * BackPlane.Width
.SizePages EQU BackPlane.SizeBytes/#4000 + (((BackPlane.SizeBytes mod #4000) != 0) * -1)
ENDIF
DISPLAY "Backplane size = ",/H,BackPlane.SizeBytes, ", pages - ",BackPlane.SizePages," (",#4000 * BackPlane.SizePages," bytes)"
DISPLAY "Backplane size = ",/H,BackPlane.SizeBytes, ", pages - ",BackPlane.SizePages," (",#4000 * BackPlane.SizePages," bytes)"
RaidenSprite:
.PalOffset EQU 128*4
.PalSize EQU 64*4
VARS EQU #9000
SPRITE_OLD2 EQU VARS
SPRITE_OLD1 EQU VARS+2
SPRITE_NEW EQU VARS+4
SPEED_Y EQU VARS+16
SPEED_X EQU VARS+17
RAMD_1 EQU VARS+18
DAT_SPR0 EQU VARS+#100
DAT_SPR1 EQU VARS+#200
DAT_SPR2 EQU VARS+#300
VARS EQU #9000
SPRITE_OLD2 EQU VARS
SPRITE_OLD1 EQU VARS+2
SPRITE_NEW EQU VARS+4
SPEED_Y EQU VARS+16
SPEED_X EQU VARS+17
RAMD_1 EQU VARS+18
DAT_SPR0 EQU VARS+#100
DAT_SPR1 EQU VARS+#200
DAT_SPR2 EQU VARS+#300
IM2_Handler EQU #88FF
IM2_Handler EQU #88FF
;-----------------------------------------------------------------------
;
INCLUDE 'Shared_Includes/constants/EXE_Header.z80'
ORG org_addr
; ORG #100
; .PHASE #8000
START:
ld c,Dss.GetVMod
START: ld c,Dss.GetVMod
rst ToDSS
jr nc,1F
ld a,3 ; ¥á«¨ ®è¨¡ª , â® áâ ¢¨¬ ¤¥ä®«â­ë¥ §­ ç¥­¨ï ०¨¬  ¨ ­®¬¥à  íªà ­ 
@ -348,8 +344,7 @@ NEXT_STEP:
; LD C,#F3
; RST ToBIOS
BEGIN:
DI
BEGIN: DI
LD SP,#BFFF
@ -423,14 +418,14 @@ BEGIN:
ld a,#9A
ENDIF
ELSE ; [ 2 ] -----<
ELSE ; [ 2 ] -----<
IF MUSIC_22khz
ld a,#9B
ELSE
ld a,#9A
ENDIF
ENDIF ; [ . ] -----<
ENDIF ; [ . ] -----<
out (c),a
CALL MUTE_CBL
@ -478,11 +473,9 @@ LOOP_ALL:
; IFN MODE_CBL : EI : HALT : DI : ENDIF
; IF MODE_CBL
halt_loop_repeat:
HALT
halt_loop_repeat: HALT
halt_JP_address+1: JR halt_loop_repeat
halt_loop_exit:
; ENDIF
in a,(RGMOD)
xor 1
@ -530,7 +523,6 @@ begin_loop:
RET
SPRITE_DATA:
DB #FF ; PAGE_SPRITE
dw #C000 ; ADRESS SPRITE
DB #78,#80 ; SIZE
@ -641,7 +633,6 @@ sprite_2load_loop2:
; ; WER_PLACE
; ; ATRIBUTE
FON_LOAD:
IN A,(SLOT0)
PUSH AF
IN A,(SLOT1)
@ -717,7 +708,7 @@ FON_LOOP:
OUT (C),B
LD C,SLOT3
OUT (C),L ; SLOT3 <-- SLOT0 <-- SYS_PAGE
OUT (C),L ; SLOT3 <-- SLOT0 <-- SYS_PAGE
LD C,SLOT0
LD H,2
@ -805,8 +796,7 @@ loop_all_1:
JR NZ,NO_SCR1
LD BC,#4180
NO_SCR1:
LD L,(IX+SPRITE_TBL.X) ; X coordinate
LD L,(IX+SPRITE_TBL.X) ; X coordinate
LD H,(IX+SPRITE_TBL.X+1)
add hl,bc
@ -931,7 +921,7 @@ NEXT_SPRITE: db #FF
; SND_P: DB #FF
;===============================================[v]
IFN MODE_CBL
IFN MODE_CBL
;===============================================
/* ¤®¤¥« âì ­  áâ àë© ¢ à¨ ­â ¡¥§ ¯à¥à뢠­¨©
; old
@ -1016,7 +1006,6 @@ NO_LD_SND:
*/
PlayMusic:
LD A,2
OUT (BorderColor),A
@ -1094,7 +1083,7 @@ NO_SNDP:
RETI
;===============================================
ELSE
ELSE
;===============================================
;
;===============================================
@ -1107,7 +1096,7 @@ PlayMusic:
push de
push bc ; !TODO ®¯â¨¬¨§¨à®¢ âì
ld a,halt_loop_repeat-halt_JP_address-1 ; repeat loop
ld a,halt_loop_repeat-halt_JP_address-1 ; repeat loop
ld (halt_JP_address),a
IN A,(SLOT1)
@ -1681,31 +1670,4 @@ EXIT_MSG: DZ 'All done)))',13,10
;---[]
;
ASSERT IM2_Handler>$, "The code leaks into the IM2 byte address!"
;
;
/*
EMM_FN7: ; ¯®«ãç¨âì á«¥¤ãîéãî áâà ­¨æã ¡«®ª  ¯® ¯à¥¤ë¤ã饬ã
LD A,page ; 䨧¨ç¥áª ï áâà ­¨æ  ¡«®ª 
LD C,0C7h ; ­®¬¥à ä㭪樨
CALL 3D13h ; NC -> A - á«¥¤ãîé ï 䨧¨ç¥áª ï áâà ­¨æ  ¡«®ª 
; A=FF - ¨­¤¨æ¨àã¥â ª®­¥æ ¡«®ª 
; CF -> ®è¨¡ª  ­®¬¥à  áâà ­¨æë
; ˆ­ä®à¬ æ¨ï ® à á¯à¥¤¥«¥­¨¨ ¯ ¬ï⨠åà ­¨âáï ¢ ¢¨¤¥ RAM Allocation Table,
; ¯®å®¦¥© ­  ¤¨áª®¢ë© FAT. <20>®í⮬㠭 å®¦¤¥­¨¥ 䨧¨ç¥áª®£® ­®¬¥à  á«¥¤ãî饩
; áâà ­¨æë ¯® ¯à¥¤ë¤ã饬ã 䨧¨ç¥áª®¬ã ­®¬¥à㠯நá室¨â §­ ç¨â¥«ì­® ¡ëáâ॥,
; 祬 ¯®¨áª ¯® 㢥«¨ç¥­­®¬ã ­  ¥¤¨­¨æã «®£¨ç¥áª®¬ã ­®¬¥àã.
LD A,page
D C,BIOS.GetMemPageNext
RST ToBIOS
EMM_FN4: ; ¯®«ãç¨âì 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë ¨§ ¡«®ª 
LD A,id_blk ; ¨¤¥­â¨ä¨ª â®à ¡«®ª 
LD B,page ; «®£¨ç¥áª ï áâà ­¨æ  ¢ ¡«®ª¥
LD C,0C4h ; ­®¬¥à ä㭪樨
CALL 3D13h ; NC -> € - 䨧¨ç¥áª¨© ­®¬¥à áâà ­¨æë
; CF -> €=0 - ­¥â â ª®£® ¡«®ª , A=FF - ª®­¥æ ¡«®ª 
*/
;

@ -1 +1 @@
Subproject commit 21c7eb690adb62e35c41fdcda76dc3bf97f369b4
Subproject commit a6dee8e17ae12b251f306290793a56a6b0dd5ae3