戻る
; "CMDEFC.ASM" PC-9801UV11 make by R.H 1990/04/06
;
;	サイレントメビウス
;
;	コマンドE/エフェクト処理
;
; command routine.

CODE	SEGMENT	PUBLIC	'CODE'

	ASSUME	CS:CODE,DS:DATA

PUBLIC	CMDEFC		; コマンドE/エフェクト処理

EXTRN	PLSET:NEAR	; パレットセット

EXTRN	FEDIN:NEAR	; F・I(フェードイン)
EXTRN	FEDOUT:NEAR	; F・O(フェードアウト)
EXTRN	WHTFLS:NEAR	; WHITE・FLASH
EXTRN	WHTIN:NEAR	; WHITE・IN
EXTRN	WHTOUT:NEAR	; WHITE・OUT
EXTRN	BLACK:NEAR	; ブラックアウト
EXTRN	WHITE:NEAR	; WHITE
EXTRN	BRIIN:NEAR	; 明度50%からノーマルへ
EXTRN	BRIOUT:NEAR	; 明度50%ダウン
EXTRN	COLBCK:NEAR	; 色相反転
EXTRN	COLRET:NEAR	; 色相戻し
EXTRN	FFWHT:NEAR	; WHITE反射感

EXTRN	CMDGNM:NEAR	; 数字の取り出し



;	コマンドE/エフェクト処理

CMDEFC	PROC	NEAR
	CALL	CMDGNM		; 数字の取り出し
	CMP	AX,1		; 0=正常,1=数字列が無い
	JE	CMDSND_EXIT	;
				; 取り出し数字(ないときは0)
				; -I- DX : エフェクト番号
	CALL	EFECTSET	; エフェクト処理分岐
CMDSND_EXIT:
	RET
CMDEFC	ENDP




;	エフェクト処理分岐
;	-I- DX : エフェクト番号

EFECTSET	PROC	NEAR
	CMP	DX,0
	JNE	EFECTSET2

	MOV	BX,0			;
	CALL	PLSET			; パレットセット

	JMP	EFECTSET_EXIT
EFECTSET2:
	CMP	DX,1
	JB	EFECTSET_EXIT
	CMP	DX,12
	JNBE	EFECTSET_EXIT

	MOV	BX,DX		; エフェクト番号
	SHL	BX,1		; word pointer.
	CALL	WORD PTR DS:JUMP_TABLE[BX]
EFECTSET_EXIT:
	RET
EFECTSET	ENDP


CODE	ENDS


DATA	SEGMENT	PUBLIC	'DATA'

JUMP_TABLE	LABEL	WORD
	DW	0		;0  ノーマル状態(ジャンプテーブル無使用)
	DW	OFFSET FEDIN	;1  F・I(フェードイン)
	DW	OFFSET FEDOUT	;2  F・O(フェードアウト)
	DW	OFFSET WHTFLS	;3  WHITE・FLASH
	DW	OFFSET WHTIN	;4  WHITE・IN
	DW	OFFSET WHTOUT	;5  WHITE・OUT
	DW	OFFSET BLACK	;6  ブラックアウト
	DW	OFFSET WHITE	;7  WHITE
	DW	OFFSET BRIIN	;8  明度50%からノーマルへ
	DW	OFFSET BRIOUT	;9  明度50%ダウン
	DW	OFFSET COLBCK	;10 色相反転
	DW	OFFSET COLRET	;11 色相戻し
	DW	OFFSET FFWHT	;12 WHITE反射感

DATA	ENDS

	END
;
;	end of "CMDEFC.ASM"
;