ReC98/libs/master.lib/super_clean.asm

71 lines
1.1 KiB
NASM

; 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 ; }