戻る
; "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"
;