4.2 事前準備
				 あらかじめSEドライバおよびSEデータ(SEテーブル)を任意のRAMへ配置し、SE発声機能が利用できる状態にしておきます。その後、関連パラメータを書き換えます。
				
					
CALL SESET(<SEテーブルの開始アドレス>)
CALL POKE(&H4300+195,<1文字表示毎に待つ1/60秒単位のウエイト(0~255)>)
				
				 SEテーブルはRAMのページ0を推奨します。DMシステム2はページ0の3000h~3FFFhの4KiBが空きエリアとなっていますので、こちらを積極的にご利用ください。
					1文字表示フックの書き換え
				 インフォメーションエリアに存在する「1文字表示フック(HKKPUT, 4300h+196)」の3バイトを以下のように書き換えます。Z80アセンブルリストは以下の通りです。
				
					
			HKKPUT	EQU		4300H+196	;43C4h
					ORG		HKKPUT
C3 73 43			JP		4300H+115	;4373h: unused information area (max 13 bytes)
				
				 HKKPUTの書き換えにより、1文字表示するたびに後述の処理ルーチンへ遷移します。フックを書き換えるBASICリストは以下の通りです。
				
					
CALL POKES(&H4300+196,"テsC") :'HKKPUT
				
				SE発声処理ルーチンの追加
				
 インフォメーションエリア内の未使用予約エリア(4300h+115)から12バイトを以下のように書き換えます。Z80アセンブルリストは以下の通りです。
				
					
			SEON	EQU		4067H		;DM-SYSTEM2 sound effects API  [in] A, HL
			SEADD	EQU		4300H+26	;431Ah: sound effects table address
			KJSE	EQU		4300H+199	;43C7h: sound effects No.
			ORG		4300H+115			;4373h: unused information area (max 13 bytes)
3A C7 43	LD		A,(KJSE)			;A <- sound effects No.
B7			OR		A					;check 0 or other
C8			RET		Z					;if A=0 then return (SE off mode)
2A 1A 43	LD		HL,(SEADD)			;HL <- sound effects table address
CD 67 40	CALL	SEON				;call sound effects API
C9			RET							;this routine end
				
				 この処理ルーチンの追加により、1文字表示するたびにSEが発声する準備が整います(まだ鳴りません)。処理ルーチンを追加するBASICリストは以下の通りです。
				
					
CALL POKES(&H4300+115,":ヌCキネ*"+CHR$(26)+"Cヘg@ノ") :'routine
				
			
			
				4.3 機能の発動
				 1文字表示ごとのSE発声機能を発動させるには、インフォメーションエリアに存在する「効果音番号(KJSE, 4300h+199)」へ0以外の効果音番号を代入してから、日本語表示を行います。
				
					
CALL POKE(&H4300+199,<1文字表示毎に鳴らすSE番号(1~255)>)
CALL KPUT("こんにちは!")
				
				 KJSEに0を代入すると無音(SE発声しない)となります。
				※ CALL KINIT(漢字表示機能の初期化)でbit5(処理単位設定)に1に設定した「装飾単位」モードではSEが発声できません。
			
			
				4.4 機能の一時停止と終了
				 1文字表示ごとのSE発声機能を一時中断する場合はフックの1バイト目を C9h に書き換えてください(再利用は C3h)。機能の利用を終了する場合はデフォルト値(C9h C9h C9h)で原状回復してください。
				
					
CALL POKE(&H4300+196,&HC9) ← 一時中断
CALL POKE(&H4300+196,&HC3) ← 一時中断からの再利用
CALL POKES(&H4300+196,"ノノノ") ← 機能停止(HKKPUTの原状回復)