; EMI画像 Player コマンドサンプル ; 必要な所を残して、[ファイル整理画面にPaste]して下さい。テキストファイルが貼りつけられます。 ; 普通のテキストファイルですので、エディタで修正可能です。 // // ◆画像表示系コマンド // gra(n) // n番目のEMI画像表示(最初の画像が0) // wait(n) // 0.1秒単位のウエイト、例:wait(30)=3秒停止 // wait_key // RETキー入力待ち(SPACEキーだと連続入力可能) // call(ad) // アドレスad(16進:アセンブラ表記)のマシン語をCALL、例:bgm_call(0045aH)で画面消去 // // 例:3つの画像を2秒ごとに表示する gra(0) wait(20) gra(1) wait(20) gra(2) wait(20) // 例:3つの画像をRETキーごとに表示する gra(0) wait_key gra(1) wait_key gra(2) wait_key // 例:マシン語コール call(0045aH) // 045A番地=画面消去 // // ◆音楽再生用コマンド // 音楽再生を行うには、MML音楽ファイル(MDTファイル、または、音楽データを含むBIN/cmtファイル)が必要です。 // 曲はESCキーで再生終了できます。 // music(m) // m番目の曲を通常再生(最初の曲番号が0) // bgm(m,t) // m番目の曲のBGM再生開始、テンポ=t(目安のため補正必要) // bgm_wait(t) // BGM再生中のウエイト処理。tick単位。1拍ウエイト=48、1小節ウエイト=192(4拍子)、144(3拍子) // bgm_gra(n) // BGM再生中にEMI画像表示。n番目のEMI画像表示(最初の画像番号が0) // bgm_call(ad) // BGM再生中にアドレスad(16進:アセンブラ表記)のマシン語をCALL、例:bgm_call(0045aH)で画面消去 // bgm_stop // BGM再生打ち切り(曲の途中終了はESCキーでも可能です)  // // 例:3つの曲をRETキーごとに再生 music(0) wait_key music(1) wait_key music(2) wait_key // 例:曲を再生しながら、2小節ごとに画像を表示 // (4分音符1つが48tickです。1小節が192tick) bgm(0,158) // 0番目の曲をテンポ158でBGM再生開始 bgm_wait(192*2) bgm_gra(0) // 2小節(192*2tick)ウエイト後に、0番目のEMI画像表示 bgm_wait(192*2) bgm_gra(1) // 2小節(192*2tick)ウエイト後に、1番目のEMI画像表示 bgm_wait(48*3) bgm_gra(2) // 4拍目(3拍ウエイト後)に、2番目のEMI画像表示 bgm_wait(192*2) bgm_stop // 全部表示し終わった時点で曲を止めたい場合 // // ◆終了時動作指定 // mon // マシン語モニターへ // end // 処理停止 // loop // 最初から繰り返し(デフォルト動作) // // ◆展開機能 // {n } // かっこ内をn回展開する(入れ子可能) // { } // 回数を省略した時には2回展開する // // 例:入れ子可能 {3 {gra(0)} gra(1)} // gra(0) gra(0) gra(1) gra(0) gra(0) gra(1) gra(0) gra(0) gra(1) に展開される // // ◆インラインアセンブラ機能 // *で始まる行はそのままアセンブラソースとしてマシン語に変換します。 // // 例:ラベルを付けて、call、bgm_call命令から使用可能です。 *disp_msg: * LD HL,msg_start * CALL 052EDH * RET *msg_start: db "Hello EMI World",13,10,0 *init_screen: * LD HL,console * CALL 00884H * LD HL,width * CALL 00843H * LD HL,locate * CALL 00792H *clear_screen: * CALL 0045AH * RET *console: db "0,25,0,1", 0 *width: db "80,25", 0 *locate: db "0,0,0", 0 // 同じものが、__INIT_SCREEN, __CLEAR_SCREENで定義済です。call(__INIT_SCREEN)などと使えます。