[Reduction] #253: super_clean

This commit is contained in:
nmlgc 2014-08-28 08:12:58 +02:00
parent 0c8e9d8550
commit 776c094c0a
5 changed files with 85 additions and 107 deletions

View File

@ -0,0 +1,70 @@
; superimpose & master library module
;
; Description:
; 指定番号範囲のパターンをすべて開放する
;
; Function/Procedures:
; void super_clean( int min_pat, int max_pat ) ;
;
; Parameters:
; min_pat 消去する最小パターン番号
; max_pat 消去する最大パターン番号
;
; Returns:
; none
;
; Binding Target:
; Microsoft-C / Turbo-C / Turbo Pascal
;
; Running Target:
; 8086
;
; Requiring Resources:
; CPU: 8086
;
; Notes:
; min_pat > max_pat だと何もしません。
;
; Assembly Language Note:
;
;
; Compiler/Assembler:
; TASM 3.0
; OPTASM 1.6
;
; Author:
; 恋塚昭彦
;
; Revision History:
; 93/12/25 Initial: supercln.asm/master.lib 0.22
func SUPER_CLEAN ; super_clean() {
push SI
mov SI,SP
push DI
; 引数
@@min_pat = (RETSIZE+2)*2
@@max_pat = (RETSIZE+1)*2
mov DI,SS:[SI+@@max_pat]
cmp DI,super_patnum
jl short @@MAX_OK
mov DI,super_patnum
dec DI
@@MAX_OK:
mov SI,SS:[SI+@@min_pat]
cmp SI,DI
ja short @@RETURN
@@C_LOOP:
push SI
_call SUPER_CANCEL_PAT
@@SKIP:
inc SI
cmp SI,DI
jbe short @@C_LOOP
@@RETURN:
pop DI
pop SI
ret 4
endfunc ; }

View File

@ -2767,38 +2767,7 @@ sub_2C40 endp
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
; =============== S U B R O U T I N E =======================================
sub_2F56 proc far
; sub_199B3+10P ...
push si
mov si, sp
push di
mov di, ss:[si+6]
cmp di, super_patnum
jl short loc_2F69
mov di, super_patnum
dec di
loc_2F69:
mov si, ss:[si+8]
cmp si, di
ja short loc_2F7B
loc_2F71:
push si
call super_cancel_pat
inc si
cmp si, di
jbe short loc_2F71
loc_2F7B:
pop di
pop si
retf 4
sub_2F56 endp
include libs/master.lib/super_clean.asm
; ---------------------------------------------------------------------------
@ -40559,7 +40528,7 @@ sub_1696B proc far
mov byte_2287E, 2
call sub_12DE0
push large 8000C0h
call sub_2F56
call super_clean
mov super_patnum, 80h ; '€'
push ds
push offset aStage5b1_bft ; "stage5b1.bft"
@ -46105,7 +46074,7 @@ sub_199B3 proc far
call sub_1A6C5
call sub_12DE0
push large 8000C0h
call sub_2F56
call super_clean
push ds
push offset aMima_bft ; "mima.bft"
call super_entry_bfnt
@ -46115,7 +46084,7 @@ sub_199B3 proc far
call sub_F618
call sub_1A529
push large 8000C0h
call sub_2F56
call super_clean
mov super_patnum, 80h ; '€'
push ds
push offset aMima1_bft ; "mima1.bft"
@ -46410,7 +46379,7 @@ sub_19C8D proc near
loc_19D48:
push large 8000C0h
call sub_2F56
call super_clean
mov super_patnum, 80h ; '€'
push ds
push offset aMima2_bft ; "mima2.bft"
@ -47638,7 +47607,7 @@ sub_1A7D5 proc far
call sub_1A6C5
call sub_12DE0
push large 8000C0h
call sub_2F56
call super_clean
mov super_patnum, 80h ; '€'
push ds
push offset aMima_bft_0 ; "mima.bft"
@ -47651,7 +47620,7 @@ sub_1A7D5 proc far
push 0
call sub_1310B
push large 8001FFh
call sub_2F56
call super_clean
mov super_patnum, 80h ; '€'
push ds
push offset aStage3_b_bft ; "stage3_b.bft"

View File

@ -2607,38 +2607,7 @@ loc_29F5:
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
; =============== S U B R O U T I N E =======================================
sub_2B4E proc far
; sub_D1BC+2E2P ...
push si
mov si, sp
push di
mov di, ss:[si+6]
cmp di, super_patnum
jl short loc_2B61
mov di, super_patnum
dec di
loc_2B61:
mov si, ss:[si+8]
cmp si, di
ja short loc_2B73
loc_2B69:
push si
call super_cancel_pat
inc si
cmp si, di
jbe short loc_2B69
loc_2B73:
pop di
pop si
retf 4
sub_2B4E endp
include libs/master.lib/super_clean.asm
; ---------------------------------------------------------------------------
@ -16364,7 +16333,7 @@ sub_B29E proc near
call sub_B79E
call sub_B9BB
push large 800100h
call sub_2B4E
call super_clean
mov si, 8
jmp short loc_B2C7
; ---------------------------------------------------------------------------
@ -21220,7 +21189,7 @@ loc_D47B:
loc_D498:
push large 800100h ; jumptable 0000D1EC case 99
call sub_2B4E
call super_clean
jmp short loc_D508
; ---------------------------------------------------------------------------

View File

@ -20803,7 +20803,7 @@ loc_1E801:
cmp byte_266D4, 6
jnz loc_1E8A4
push large 800100h
call sub_2B4E
call super_clean
call sub_D6EB
cmp byte_2D01E, 0
jnz short loc_1E89B

View File

@ -2804,37 +2804,7 @@ loc_2C97:
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
; =============== S U B R O U T I N E =======================================
sub_2DF0 proc far
push si
mov si, sp
push di
mov di, ss:[si+6]
cmp di, super_patnum
jl short loc_2E03
mov di, super_patnum
dec di
loc_2E03:
mov si, ss:[si+8]
cmp si, di
ja short loc_2E15
loc_2E0B:
push si
call super_cancel_pat
inc si
cmp si, di
jbe short loc_2E0B
loc_2E15:
pop di
pop si
retf 4
sub_2DF0 endp
include libs/master.lib/super_clean.asm
; ---------------------------------------------------------------------------
@ -16589,7 +16559,7 @@ sub_B609 proc near
call sub_BEA4
call sub_BB82
push large 0B40100h
call sub_2DF0
call super_clean
mov si, 1
jmp short loc_B630
; ---------------------------------------------------------------------------
@ -24851,7 +24821,7 @@ loc_F07C:
cmp byte_25FEA, 6
jz short loc_F091
push large 0B40140h
call sub_2DF0
call super_clean
jmp loc_F181
; ---------------------------------------------------------------------------
@ -25383,7 +25353,7 @@ sub_F4DD proc near
mov bp, sp
push si
push large 240140h
call sub_2DF0
call super_clean
push ds
push offset aSt06_16_bft ; "st06_16.bft"
call super_entry_bfnt