mirror of https://github.com/nmlgc/ReC98.git
71 lines
1.1 KiB
NASM
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 ; }
|