mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th04] BGM/SE mode setup window rendering
Part of P0064, funded by Touhou Patch Center.
This commit is contained in:
parent
24fdd31192
commit
3c1b2473dd
256
th04/setup.asm
256
th04/setup.asm
|
@ -1,3 +1,259 @@
|
|||
WINDOW_BORDER_W = 8
|
||||
WINDOW_BORDER_H = 8
|
||||
WINDOW_TILE_W = 16
|
||||
WINDOW_TILE_H = 16
|
||||
|
||||
|
||||
window_dropdown_row proc near
|
||||
|
||||
@@tile_x = word ptr -2
|
||||
@@bottom_y = word ptr 4
|
||||
@@left_x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@left_x]
|
||||
mov di, [bp+@@bottom_y]
|
||||
push si
|
||||
push di
|
||||
mov ax, _window_tiles.x
|
||||
shl ax, 4
|
||||
push ax
|
||||
push WINDOW_TILE_H
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 2
|
||||
push si
|
||||
lea ax, [di+WINDOW_BORDER_H]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, WINDOW_TILE_W
|
||||
mov [bp+@@tile_x], 1
|
||||
jmp short @@tile_x_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@tile_x_loop:
|
||||
call super_put pascal, si, di, 0
|
||||
push si
|
||||
lea ax, [di+WINDOW_BORDER_H]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+@@tile_x]
|
||||
add si, WINDOW_TILE_W
|
||||
|
||||
@@tile_x_more?:
|
||||
mov ax, _window_tiles.x
|
||||
dec ax
|
||||
cmp ax, [bp+@@tile_x]
|
||||
jg short @@tile_x_loop
|
||||
call super_put pascal, si, di, 4
|
||||
push si
|
||||
lea ax, [di+WINDOW_BORDER_H]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
window_dropdown_row endp
|
||||
|
||||
|
||||
window_rollup_row proc near
|
||||
|
||||
@@tile_x = word ptr -2
|
||||
@@bottom_y = word ptr 4
|
||||
@@left_x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@left_x]
|
||||
mov di, [bp+@@bottom_y]
|
||||
push si
|
||||
lea ax, [di+WINDOW_BORDER_H]
|
||||
push ax
|
||||
mov ax, _window_tiles.x
|
||||
shl ax, 4
|
||||
push ax
|
||||
push WINDOW_TILE_H
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 6
|
||||
add si, WINDOW_TILE_W
|
||||
mov [bp+@@tile_x], 1
|
||||
jmp short @@tile_x_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@tile_x_loop:
|
||||
call super_put pascal, si, di, 3
|
||||
inc [bp+@@tile_x]
|
||||
add si, WINDOW_TILE_W
|
||||
|
||||
@@tile_x_more?:
|
||||
mov ax, _window_tiles.x
|
||||
dec ax
|
||||
cmp ax, [bp+@@tile_x]
|
||||
jg short @@tile_x_loop
|
||||
call super_put pascal, si, di, 7
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
window_rollup_row endp
|
||||
|
||||
|
||||
public WINDOW_DROPDOWN_ANIMATE
|
||||
window_dropdown_animate proc near
|
||||
|
||||
@@x = word ptr -2
|
||||
@@top_y = word ptr 4
|
||||
@@left_x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov ax, [bp+@@left_x]
|
||||
mov [bp+@@x], ax
|
||||
mov si, [bp+@@top_y]
|
||||
call super_put pascal, ax, si, 5
|
||||
add [bp+@@x], WINDOW_TILE_W
|
||||
mov di, 1
|
||||
jmp short @@top_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@top_loop:
|
||||
call super_put pascal, [bp+@@x], si, 1
|
||||
inc di
|
||||
add [bp+@@x], WINDOW_TILE_W
|
||||
|
||||
@@top_more?:
|
||||
mov ax, _window_tiles.x
|
||||
dec ax
|
||||
cmp ax, di
|
||||
jg short @@top_loop
|
||||
call super_put pascal, [bp+@@x], si, 8
|
||||
add si, WINDOW_TILE_H
|
||||
mov di, 1
|
||||
jmp short @@row_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@row_loop:
|
||||
call window_dropdown_row pascal, [bp+@@left_x], si
|
||||
call frame_delay pascal, 1
|
||||
inc di
|
||||
add si, WINDOW_BORDER_H
|
||||
|
||||
@@row_more?:
|
||||
mov ax, _window_tiles.y
|
||||
add ax, ax
|
||||
add ax, -3
|
||||
cmp ax, di
|
||||
jg short @@row_loop
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
window_dropdown_animate endp
|
||||
|
||||
|
||||
public WINDOW_SINGLELINE
|
||||
window_singleline proc near
|
||||
|
||||
@@tile_x = word ptr -2
|
||||
@@top_y = word ptr 4
|
||||
@@left_x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@left_x]
|
||||
mov di, [bp+@@top_y]
|
||||
push si
|
||||
push di
|
||||
mov ax, _window_tiles.x
|
||||
shl ax, 4
|
||||
push ax
|
||||
push WINDOW_BORDER_H + WINDOW_TILE_H + WINDOW_BORDER_H
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 5
|
||||
push si
|
||||
lea ax, [di+WINDOW_TILE_H]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, WINDOW_TILE_W
|
||||
mov [bp+@@tile_x], 1
|
||||
jmp short @@tile_x_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@tile_x_loop:
|
||||
call super_put pascal, si, di, 1
|
||||
push si
|
||||
lea ax, [di+WINDOW_TILE_H]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+@@tile_x]
|
||||
add si, WINDOW_TILE_W
|
||||
|
||||
@@tile_x_more?:
|
||||
mov ax, _window_tiles.x
|
||||
dec ax
|
||||
cmp ax, [bp+@@tile_x]
|
||||
jg short @@tile_x_loop
|
||||
call super_put pascal, si, di, 8
|
||||
push si
|
||||
lea ax, [di+WINDOW_TILE_H]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
window_singleline endp
|
||||
|
||||
|
||||
public WINDOW_ROLLUP_ANIMATE
|
||||
window_rollup_animate proc near
|
||||
|
||||
@@top_y = word ptr 4
|
||||
@@left_x = word ptr 6
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@top_y]
|
||||
mov ax, _window_tiles.y
|
||||
shl ax, 4
|
||||
add ax, -WINDOW_TILE_H
|
||||
add si, ax
|
||||
mov di, 1
|
||||
jmp short @@row_more?
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
@@row_loop:
|
||||
call window_rollup_row pascal, [bp+@@left_x], si
|
||||
call frame_delay pascal, 1
|
||||
inc di
|
||||
sub si, WINDOW_BORDER_H
|
||||
|
||||
@@row_more?:
|
||||
mov ax, _window_tiles.y
|
||||
add ax, ax
|
||||
add ax, -2
|
||||
cmp ax, di
|
||||
jg short @@row_loop
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retn 4
|
||||
window_rollup_animate endp
|
||||
|
||||
|
||||
SETUP_LINE_H = 16
|
||||
SETUP_CHOICE_X = 48
|
||||
SETUP_CHOICE_Y = 136
|
||||
|
|
|
@ -3,6 +3,34 @@
|
|||
* TH04/TH05 BGM/SE mode setup menu
|
||||
*/
|
||||
|
||||
#define WINDOW_BORDER_W 8
|
||||
#define WINDOW_BORDER_H 8
|
||||
#define WINDOW_TILE_W 16
|
||||
#define WINDOW_TILE_H 16
|
||||
|
||||
// Window width and height, including the border
|
||||
extern Point window_tiles;
|
||||
|
||||
void pascal near window_dropdown_row(int left_x, int bottom_y)
|
||||
{
|
||||
}
|
||||
|
||||
void pascal near window_rollup_row(int left_x, int bottom_y)
|
||||
{
|
||||
}
|
||||
|
||||
void pascal near window_dropdown_animate(int left_x, int top_y)
|
||||
{
|
||||
}
|
||||
|
||||
void pascal near window_singleline(int left_x, int top_y)
|
||||
{
|
||||
}
|
||||
|
||||
void pascal near window_rollup_animate(int left_x, int top_y)
|
||||
{
|
||||
}
|
||||
|
||||
void pascal near setup_bgm_choice_put(bgm_mode_t mode, unsigned char col)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
public _window_tiles
|
||||
_window_tiles Point <?>
|
342
th04_op.asm
342
th04_op.asm
|
@ -1553,279 +1553,6 @@ loc_B47B:
|
|||
retf
|
||||
_main endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B49F proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
arg_0 = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_2]
|
||||
mov di, [bp+arg_0]
|
||||
push si
|
||||
push di
|
||||
mov ax, word_11E88
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 10h
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 2
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, 16
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B4F5
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B4DA:
|
||||
call super_put pascal, si, di, 0
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B4F5:
|
||||
mov ax, word_11E88
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B4DA
|
||||
call super_put pascal, si, di, 4
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B49F endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B519 proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_2]
|
||||
mov di, [bp+@@y]
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
mov ax, word_11E88
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 10h
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 6
|
||||
add si, 16
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B55A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B54B:
|
||||
call super_put pascal, si, di, 3
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B55A:
|
||||
mov ax, word_11E88
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B54B
|
||||
call super_put pascal, si, di, 7
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B519 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B572 proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov ax, [bp+arg_2]
|
||||
mov [bp+var_2], ax
|
||||
mov si, [bp+@@y]
|
||||
call super_put pascal, ax, si, 5
|
||||
add [bp+var_2], 16
|
||||
mov di, 1
|
||||
jmp short loc_B5A3
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B593:
|
||||
call super_put pascal, [bp+var_2], si, 1
|
||||
inc di
|
||||
add [bp+var_2], 16
|
||||
|
||||
loc_B5A3:
|
||||
mov ax, word_11E88
|
||||
dec ax
|
||||
cmp ax, di
|
||||
jg short loc_B593
|
||||
call super_put pascal, [bp+var_2], si, 8
|
||||
add si, 16
|
||||
mov di, 1
|
||||
jmp short loc_B5D0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B5BE:
|
||||
push [bp+arg_2]
|
||||
push si
|
||||
call sub_B49F
|
||||
push 1
|
||||
call frame_delay
|
||||
inc di
|
||||
add si, 8
|
||||
|
||||
loc_B5D0:
|
||||
mov ax, word_11E8A
|
||||
add ax, ax
|
||||
add ax, 0FFFDh
|
||||
cmp ax, di
|
||||
jg short loc_B5BE
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B572 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B5E2 proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_2]
|
||||
mov di, [bp+@@y]
|
||||
push si
|
||||
push di
|
||||
mov ax, word_11E88
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 20h ; ' '
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 5
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, 16
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B638
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B61D:
|
||||
call super_put pascal, si, di, 1
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B638:
|
||||
mov ax, word_11E88
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B61D
|
||||
call super_put pascal, si, di, 8
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B5E2 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B65C proc near
|
||||
|
||||
arg_0 = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_0]
|
||||
mov ax, word_11E8A
|
||||
shl ax, 4
|
||||
add ax, 0FFF0h
|
||||
add si, ax
|
||||
mov di, 1
|
||||
jmp short loc_B686
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B674:
|
||||
push [bp+arg_2]
|
||||
push si
|
||||
call sub_B519
|
||||
push 1
|
||||
call frame_delay
|
||||
inc di
|
||||
sub si, 8
|
||||
|
||||
loc_B686:
|
||||
mov ax, word_11E8A
|
||||
add ax, ax
|
||||
add ax, 0FFFEh
|
||||
cmp ax, di
|
||||
jg short loc_B674
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retn 4
|
||||
sub_B65C endp
|
||||
|
||||
include th04/setup.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
@ -1837,14 +1564,12 @@ sub_B794 proc near
|
|||
var_2 = word ptr -2
|
||||
|
||||
enter 2, 0
|
||||
mov word_11E88, 1Ch
|
||||
push 600050h
|
||||
call sub_B5E2
|
||||
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
||||
call window_singleline pascal, (96 shl 16) or 80
|
||||
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_BGM_HEAD
|
||||
mov word_11E88, 0Ah
|
||||
mov word_11E8A, 4
|
||||
push 200080h
|
||||
call sub_B572
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
||||
mov [bp+var_2], 0
|
||||
jmp short loc_B7EB
|
||||
; ---------------------------------------------------------------------------
|
||||
|
@ -1868,10 +1593,9 @@ loc_B7E4:
|
|||
loc_B7EB:
|
||||
cmp [bp+var_2], 3
|
||||
jl short loc_B7D4
|
||||
mov word_11E88, 19h
|
||||
mov word_11E8A, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B572
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_dropdown_animate pascal, (192 shl 16) or 128
|
||||
call setup_bgm_help_put
|
||||
mov [bp+var_2], 2
|
||||
|
||||
|
@ -1917,14 +1641,12 @@ loc_B870:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B87A:
|
||||
mov word_11E88, 19h
|
||||
mov word_11E8A, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B65C
|
||||
mov word_11E88, 0Ah
|
||||
mov word_11E8A, 4
|
||||
push 200080h
|
||||
call sub_B65C
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_rollup_animate pascal, (192 shl 16) or 128
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_rollup_animate pascal, ( 32 shl 16) or 128
|
||||
les bx, _humaconfig
|
||||
mov al, byte ptr [bp+var_2]
|
||||
mov es:[bx+10h], al
|
||||
|
@ -1942,14 +1664,12 @@ sub_B8B1 proc near
|
|||
var_2 = word ptr -2
|
||||
|
||||
enter 2, 0
|
||||
mov word_11E88, 1Ch
|
||||
push 600050h
|
||||
call sub_B5E2
|
||||
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
||||
call window_singleline pascal, (96 shl 16) or 80
|
||||
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_SE_HEAD
|
||||
mov word_11E88, 0Ah
|
||||
mov word_11E8A, 4
|
||||
push 200080h
|
||||
call sub_B572
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
||||
mov [bp+var_2], 0
|
||||
jmp short loc_B908
|
||||
; ---------------------------------------------------------------------------
|
||||
|
@ -1973,10 +1693,9 @@ loc_B901:
|
|||
loc_B908:
|
||||
cmp [bp+var_2], 3
|
||||
jl short loc_B8F1
|
||||
mov word_11E88, 19h
|
||||
mov word_11E8A, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B572
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_dropdown_animate pascal, (192 shl 16) or 128
|
||||
call setup_se_help_put
|
||||
mov [bp+var_2], 1
|
||||
|
||||
|
@ -2022,14 +1741,12 @@ loc_B98D:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B997:
|
||||
mov word_11E88, 19h
|
||||
mov word_11E8A, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B65C
|
||||
mov word_11E88, 0Ah
|
||||
mov word_11E8A, 4
|
||||
push 200080h
|
||||
call sub_B65C
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_rollup_animate pascal, (192 shl 16) or 128
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_rollup_animate pascal, ( 32 shl 16) or 128
|
||||
les bx, _humaconfig
|
||||
mov al, byte ptr [bp+var_2]
|
||||
mov es:[bx+18h], al
|
||||
|
@ -4782,8 +4499,7 @@ include th04/formats/cdg[bss].asm
|
|||
dd ? ;
|
||||
dd ? ;
|
||||
dd ? ;
|
||||
word_11E88 dw ?
|
||||
word_11E8A dw ?
|
||||
include th04/setup[bss].asm
|
||||
include th04/zunsoft[bss].asm
|
||||
dd ? ;
|
||||
dd ? ;
|
||||
|
|
342
th05_op.asm
342
th05_op.asm
|
@ -1494,279 +1494,6 @@ loc_B058:
|
|||
retf
|
||||
_main endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B077 proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
@@x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@x]
|
||||
mov di, [bp+@@y]
|
||||
push si
|
||||
push di
|
||||
mov ax, word_12F30
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 10h
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 2
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, 16
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B0CD
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B0B2:
|
||||
call super_put pascal, si, di, 0
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B0CD:
|
||||
mov ax, word_12F30
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B0B2
|
||||
call super_put pascal, si, di, 4
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B077 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B0F1 proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
@@x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+@@x]
|
||||
mov di, [bp+@@y]
|
||||
push si
|
||||
lea ax, [di+8]
|
||||
push ax
|
||||
mov ax, word_12F30
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 10h
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 6
|
||||
add si, 16
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B132
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B123:
|
||||
call super_put pascal, si, di, 3
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B132:
|
||||
mov ax, word_12F30
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B123
|
||||
call super_put pascal, si, di, 7
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B0F1 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B14A proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
@@x = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov ax, [bp+@@x]
|
||||
mov [bp+var_2], ax
|
||||
mov si, [bp+@@y]
|
||||
call super_put pascal, ax, si, 5
|
||||
add [bp+var_2], 10h
|
||||
mov di, 1
|
||||
jmp short loc_B17B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B16B:
|
||||
call super_put pascal, [bp+var_2], si, 1
|
||||
inc di
|
||||
add [bp+var_2], 10h
|
||||
|
||||
loc_B17B:
|
||||
mov ax, word_12F30
|
||||
dec ax
|
||||
cmp ax, di
|
||||
jg short loc_B16B
|
||||
call super_put pascal, [bp+var_2], si, 8
|
||||
add si, 10h
|
||||
mov di, 1
|
||||
jmp short loc_B1A8
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B196:
|
||||
push [bp+@@x]
|
||||
push si
|
||||
call sub_B077
|
||||
push 1
|
||||
call frame_delay
|
||||
inc di
|
||||
add si, 8
|
||||
|
||||
loc_B1A8:
|
||||
mov ax, word_12F32
|
||||
add ax, ax
|
||||
add ax, 0FFFDh
|
||||
cmp ax, di
|
||||
jg short loc_B196
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B14A endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B1BA proc near
|
||||
|
||||
var_2 = word ptr -2
|
||||
@@y = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
enter 2, 0
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_2]
|
||||
mov di, [bp+@@y]
|
||||
push si
|
||||
push di
|
||||
mov ax, word_12F30
|
||||
shl ax, 4
|
||||
push ax
|
||||
push 20h ; ' '
|
||||
call egc_copy_rect_1_to_0
|
||||
call super_put pascal, si, di, 5
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 6
|
||||
call super_put
|
||||
add si, 10h
|
||||
mov [bp+var_2], 1
|
||||
jmp short loc_B210
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B1F5:
|
||||
call super_put pascal, si, di, 1
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 3
|
||||
call super_put
|
||||
inc [bp+var_2]
|
||||
add si, 16
|
||||
|
||||
loc_B210:
|
||||
mov ax, word_12F30
|
||||
dec ax
|
||||
cmp ax, [bp+var_2]
|
||||
jg short loc_B1F5
|
||||
call super_put pascal, si, di, 8
|
||||
push si
|
||||
lea ax, [di+16]
|
||||
push ax
|
||||
push 7
|
||||
call super_put
|
||||
pop di
|
||||
pop si
|
||||
leave
|
||||
retn 4
|
||||
sub_B1BA endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
||||
sub_B234 proc near
|
||||
|
||||
arg_0 = word ptr 4
|
||||
arg_2 = word ptr 6
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
mov si, [bp+arg_0]
|
||||
mov ax, word_12F32
|
||||
shl ax, 4
|
||||
add ax, 0FFF0h
|
||||
add si, ax
|
||||
mov di, 1
|
||||
jmp short loc_B25E
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B24C:
|
||||
push [bp+arg_2]
|
||||
push si
|
||||
call sub_B0F1
|
||||
push 1
|
||||
call frame_delay
|
||||
inc di
|
||||
sub si, 8
|
||||
|
||||
loc_B25E:
|
||||
mov ax, word_12F32
|
||||
add ax, ax
|
||||
add ax, 0FFFEh
|
||||
cmp ax, di
|
||||
jg short loc_B24C
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retn 4
|
||||
sub_B234 endp
|
||||
|
||||
include th04/setup.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
@ -1778,14 +1505,12 @@ sub_B36C proc near
|
|||
var_2 = word ptr -2
|
||||
|
||||
enter 2, 0
|
||||
mov word_12F30, 1Ch
|
||||
push 600050h
|
||||
call sub_B1BA
|
||||
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
||||
call window_singleline pascal, (96 shl 16) or 80
|
||||
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_BGM_HEAD
|
||||
mov word_12F30, 0Ah
|
||||
mov word_12F32, 4
|
||||
push 200080h
|
||||
call sub_B14A
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
||||
mov [bp+var_2], 0
|
||||
jmp short loc_B3C3
|
||||
; ---------------------------------------------------------------------------
|
||||
|
@ -1809,10 +1534,9 @@ loc_B3BC:
|
|||
loc_B3C3:
|
||||
cmp [bp+var_2], 3
|
||||
jl short loc_B3AC
|
||||
mov word_12F30, 19h
|
||||
mov word_12F32, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B14A
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_dropdown_animate pascal, (192 shl 16) or 128
|
||||
call setup_bgm_help_put
|
||||
mov [bp+var_2], 2
|
||||
|
||||
|
@ -1858,14 +1582,12 @@ loc_B448:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B452:
|
||||
mov word_12F30, 19h
|
||||
mov word_12F32, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B234
|
||||
mov word_12F30, 0Ah
|
||||
mov word_12F32, 4
|
||||
push 200080h
|
||||
call sub_B234
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_rollup_animate pascal, (192 shl 16) or 128
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_rollup_animate pascal, ( 32 shl 16) or 128
|
||||
les bx, _ksoconfig
|
||||
mov al, byte ptr [bp+var_2]
|
||||
mov es:[bx+12h], al
|
||||
|
@ -1883,14 +1605,12 @@ sub_B489 proc near
|
|||
var_2 = word ptr -2
|
||||
|
||||
enter 2, 0
|
||||
mov word_12F30, 1Ch
|
||||
push 600050h
|
||||
call sub_B1BA
|
||||
mov _window_tiles.x, (448 / WINDOW_TILE_W)
|
||||
call window_singleline pascal, (96 shl 16) or 80
|
||||
call graph_putsa_fx pascal, (112 shl 16) or 88, 15, ds, offset aSETUP_SE_HEAD
|
||||
mov word_12F30, 0Ah
|
||||
mov word_12F32, 4
|
||||
push 200080h
|
||||
call sub_B14A
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_dropdown_animate pascal, ( 32 shl 16) or 128
|
||||
mov [bp+var_2], 0
|
||||
jmp short loc_B4E0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
@ -1914,10 +1634,9 @@ loc_B4D9:
|
|||
loc_B4E0:
|
||||
cmp [bp+var_2], 3
|
||||
jl short loc_B4C9
|
||||
mov word_12F30, 19h
|
||||
mov word_12F32, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B14A
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_dropdown_animate pascal, (192 shl 16) or 128
|
||||
call setup_se_help_put
|
||||
mov [bp+var_2], 1
|
||||
|
||||
|
@ -1963,14 +1682,12 @@ loc_B565:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_B56F:
|
||||
mov word_12F30, 19h
|
||||
mov word_12F32, 0Ah
|
||||
push 0C00080h
|
||||
call sub_B234
|
||||
mov word_12F30, 0Ah
|
||||
mov word_12F32, 4
|
||||
push 200080h
|
||||
call sub_B234
|
||||
mov _window_tiles.x, (400 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 9
|
||||
call window_rollup_animate pascal, (192 shl 16) or 128
|
||||
mov _window_tiles.x, (160 / WINDOW_TILE_W)
|
||||
mov _window_tiles.y, 1 + 3
|
||||
call window_rollup_animate pascal, ( 32 shl 16) or 128
|
||||
les bx, _ksoconfig
|
||||
mov al, byte ptr [bp+var_2]
|
||||
mov es:[bx+15h], al
|
||||
|
@ -4778,8 +4495,7 @@ include th04/hardware/egccopyr[bss].asm
|
|||
dd ? ;
|
||||
dd ? ;
|
||||
dd ? ;
|
||||
word_12F30 dw ?
|
||||
word_12F32 dw ?
|
||||
include th04/setup[bss].asm
|
||||
include th04/zunsoft[bss].asm
|
||||
dd ? ;
|
||||
dd ? ;
|
||||
|
|
Loading…
Reference in New Issue