ds_name		db	'MOJ\MOZIRETU',0

db ' HIKAKU1R.HD6   ローマ字にした｡',0
db ' HIKAKU1.HD6   1993 12 10 文字列の操作です｡',0


;---------------------------------------
look_me:
	 call sub_esi         ; esi 固定です｡
	 dd 7 dup(0)
;--------------------------------
paint_wd:
re_paint:
mouse_in:
	 ret
;-----------------------------------

be_called:
	YOMU	ax,300
	cmp	ax,1	;二つの文字列の比較
	je	hikaku
	cmp	ax,2	;バッファより文字列を探す
	je	fnd_m
	cmp	ax,3
	je	stom
error_1:
	mov	ax,1
	ret

;------------------------------------------------
; in edi put buf ax=kaz ebx=keta

stom:
	pop	edi		;コール元の番地です｡
	pop	eax
	pop	ebx
	xchg	edi,[esp]	;コール元の番地とデータを差し替えました｡

	mov ecx,10
stom1:
	 xor edx,edx
	 div ecx
	 add dl,30h
	 mov [edi+ebx-1],dl
	 dec ebx
	 jnz stom1
	ret


hikaku:

;in	 word  300 1
;  	 dword 302 文字列1
;  	 dword 306 文字列2

;back	ax=0 same  ax=1 different

	YOMU	edi,302
	YOMU	edx,306
tugi:
	mov al,[edi]
	cmp [edx],al		;一文字ずつの比較
	jne error_1		;同じで無かった
	inc edx			;次の文字は
	inc edi
	cmp al,0		;文字列は終わりか
	jne tugi		;未だ文字列は終わっていない｡
	mov	ax,0
	ret
;---------------------------------
;  文字列を探す

fnd_m:

; in dword 302 探す文字列先頭番地
;    dword 306 文字数
;    dword 310 バッファの先頭番地
;    dword 314 バッファのサイズ

; back	 ax=0 found edi=head
;	 ax=1 not found

	YOMU	edi,310
	YOMU	ecx,314
fnd_m1:
	YOMU	edx,302
	mov	esi,edx
	YOMU	ebx,306
	mov	al,[esi]
	cld
	repne	scasb
	jne	error_1		;文字が無い
	dec	edi
	xchg	ecx,ebx
	repe	cmpsb
	je	fnd_m2
	xchg	ecx,ebx
	jmp	fnd_m1
fnd_m2:
	YOMU	ebx,306
	sub	edi,ebx		;文字列の頭を出す
	mov	ax,0
	ret


