GIGAMIX DM-SYSTEM2
コールエントリー
updated: Apr 12, 1998

第1章 概要

1.1 コールエントリーとは

 DMシステム2の提供する各種機能をマシン語プログラムから簡単に利用できるようにしたものです。

 指定のレジスタへ数値を代入し、コールエントリーのアドレスへマシン語プログラムを実行することで、DMシステム2の機能を操作することができます。


1.2 コールエントリーのルール

スロットは変更しなくてもいいの!? やっぱり変更してから実行するの!?

一部のコールエントリーを除いてスロット変更は必要ないです。
普通のBASIC環境(ページ0から順に MainROM:MainROM:MainRAM:MainRAM)から、インタースロットコール CALSLT(001CH/MainROM)を使って呼び出してもいいし、あらかじめページ1をENASLT(0024H/MainROM)で MainRAM に切り替えておいてから 直接 CALL してもいい。

特殊なのは 2.3 互換BIOS と 2.4 ブロック転送(ページ0)。
これは「ページ0に配置されたドライバ」でのみ利用可能ということにしておいてください。
つまり、BGMドライバ、SEドライバ、PCMドライバを開発する人向けのコールエントリーです。


第2章 命令の解説

2.1 一覧表

※ 96年03月16日付けのデータに基づく

2.3 互換BIOS

2.4 ブロック転送 (ページ0)

2.5 システム管理

2.6 VDPマクロ

2.7 BGM演奏

2.8 効果音

2.9 デバイス入力

2.10 ブロック転送 (ページ1)

2.11 汎用

2.12 漢字表示

2.13 情報歯抜け


2.2 ステートメントの解説

WRSLT (0014H)

[機能] Aレジスタの値に対応するスロットを選択し、そのスロットのメモリに値を1バイト書き込む
※ 同名のBIOSと同じ
[コール手順]
A スロット番号 (形式はRDSLTと同じ)
HL 書き込むメモリの番地
E 書き込む値
※ 同名のBIOSと同じ。ただしページ1がメインRAMであること。
[戻り値] なし
[変更レジスタ] !?
[詳細] ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出している。
[機能]……命令の内容を簡単に説明します
[コール手順]……コールする前に値を代入すべきレジスタやメモリ
[戻り値]……エントリーの実行結果を出力するレジスタやメモリ
[変更レジスタ]……エントリーの実行によりその内容が不定になるレジスタ
[解説]……命令の使用法や注意事項について解説します

※命令・呼称は変更の可能性あり


2.3 互換BIOS

RDSLT (000CH)

[機能] Aレジスタの値に対応するスロットを選択し、そのスロットのメモリを1バイト読み出す
※ 同名のBIOSと同じ
[コール手順]
A スロット番号
b7 b6 b5 b4 b3 b2 b1 b0
F 0 0 0 E E S S
~~          ~~~~~ ~~~~~
 |            |     +-- bit0, 1 基本スロット番号 (0〜3)
 |            +-------- bit2, 3 拡張スロット番号 (0〜3)
 |
 +--------------------- bit7    拡張スロットを指定するとき 1
HL 読み込むメモリの番地
※ 同名のBIOSと同じ。ただしページ1がメインRAMであること。
[戻り値]
A 読み込んだメモリの値
[変更レジスタ] AF,BC,DE
[詳細] ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出している。

WRSLT (0014H)

[機能] Aレジスタの値に対応するスロットを選択し、そのスロットのメモリに値を1バイト書き込む
※ 同名のBIOSと同じ
[コール手順]
A スロット番号 (形式はRDSLTと同じ)
HL 書き込むメモリの番地
E 書き込む値
※ 同名のBIOSと同じ。ただしページ1がメインRAMであること。
[戻り値] なし
[変更レジスタ] AF,BC,D
[詳細] ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出している。

CALSLT (001CH)

[機能] 他のスロットのルーチンを呼び出す (インタースロットコール)
※ 同名のBIOSと同じ
[コール手順]
IX 上位8ビットにスロット番号 (形式はRDSLTと同じ)
IY コールする番地
※ 同名のBIOSと同じ。ただしページ1がメインRAMであること。
[戻り値] 呼び出すルーチンによる
[変更レジスタ] 呼び出すルーチンによる
[詳細] ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出している。

ENASLT (0024H)

[機能] Aレジスタの値に対応するスロットを選択し、以降そのスロットを使用可能にする
※ 同名のBIOSと同じ
[コール手順]
A スロット番号 (形式はRDSLTと同じ)
HL 呼び出すアドレス
※ 同名のBIOSと同じ。
ふる君へ。この項だけ「ただしページ1がRAMであること」の表記が抜けていたのはなぜ!?
ほかの項のエントリがページ1のジャンパーを経由してメインROMの同名ルーチンを呼んでいるのに対し、このルーチンは単体で処理が完結しているため。
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] BIOS相当の自前のルーチンを持つ。

KEYINT (0038H)

[機能] タイマ割り込みの処理ルーチンを実行する
※ 同名のBIOSと同じ
[コール手順] なし
※ ただしページ1がRAMであること。
[戻り値] なし
[変更レジスタ] なし
[詳細] ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出している。

2.4 ブロック転送 (ページ0)

BLTRVR (0103H)

[機能] RAMまたはVRAMの内容をRAMへコピーする
[コール手順]
AHL 転送元アドレス (ビット23が1のときVRAM指定)
DE 転送先アドレス
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] 長さが0のときは何もせずに帰る。
RAM-RAM転送時、LDIR/LDDRの判定あり。
VRAM-RAM転送時、VRAMの境界を越えて転送可能。
復帰後は常にEI状態となる。

BLTRVW (0106H)

[機能] RAMの内容をRAMまたはVRAMへコピーする
[コール手順]
HL 転送元アドレス
ADE 転送先アドレス (ビット23が1のときVRAM指定)
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] 長さが0のときは何もせずに帰る。
RAM-RAM転送時、LDIR/LDDRの判定あり。
VRAM-RAM転送時、VRAMの境界を越えて転送可能。
復帰後は常にEI状態となる。

BLTRVV (0109H)

[機能] VRAMの内容をVRAMへコピーする
[コール手順]
A(b0)HL 転送元アドレス
A(b1)DE 転送先アドレス
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] 長さが0のとき、転送は行わない。
LDIR/LDDRの判定あり。
VRAMの境界を越えて転送可能。
復帰後は常にEI状態となる。
DMWORKをすべて破壊する。

2.5 システム管理

INTRPT (4010H)

[機能] 割り込み処理を中継する
[コール手順] なし
[戻り値] なし
[変更レジスタ] なし
[詳細] ページ0のメインRAMがイネーブルされている状態でかかった割り込みを一旦中継して、メインROMの KEYINT(0038H)を呼ぶ。

BCKGND (4013H)

[機能] 各バックグラウンド処理への分岐・実行をおこなう
[コール手順] なし
[戻り値] なし
[変更レジスタ] すべて
[詳細] 一回目のSYSONでタイマーフックにチェインされる。
(BGFLAG)を参照し各ルーチンをコールした後、チェインする前のタイマーフックの内容へジャンプする。

CALRAM (4016H)

[機能] ページ0のメインRAMにあるマシン語ルーチンをコールする
[コール手順] インラインパラメータでアドレスを指定

ex.) CALL CALRAM
DEFW 0000

[戻り値] 呼び出すルーチンによる
[変更レジスタ] 呼び出すルーチンによる
[詳細] 復帰後は常にEI状態となる。

CALROM (4019H)

[機能] ページ0のメインROMにあるマシン語ルーチンをコールする
[コール手順] インラインパラメータでアドレスを指定

ex.) CALL CALROM
DEFW 0000

[戻り値] 呼び出すルーチンによる
[変更レジスタ] 呼び出すルーチンによる
[詳細] 復帰後は常にEI状態となる。

CALBAS (401CH)

[機能] ページ1をメインROMに切り替えて指定アドレスを呼ぶ
[コール手順] ページ0をメインROMにしておき、インラインパラメータでアドレスを指定

ex.) CALL CALBAS
DEFW 0000

[戻り値] 呼び出すルーチンによる
[変更レジスタ] すべて
[詳細] LINWRK(0FC18H)へ自己転送した後、ページ1をメインROMに切り替え、指定されたアドレスをコールする。
復帰後は常にEI状態となる。

CHGSLT (401FH)

[機能] ページ0のスロットを切り替える
[コール手順]
A スロット番号(RDSLTと同じ形式)
※ 必要なら割り込み禁止状態にしておく
[戻り値] なし
[変更レジスタ] AF, HL, DE
[詳細] このルーチンでは割り込みの禁止も許可もしない。

CPUCHG (4022H)

[機能] CPUモードを変更する
[コール手順]
A 0 Z80モード
1 R800 ROMモード
2 R800 DRAMモード
※ turboRのBIOSと同じ形式
[戻り値]
A 0 Z80モード
1 R800 ROMモード
2 R800 DRAMモード
[変更レジスタ] AF, AF'
[詳細] AレジスタをNEWCPUに保存したあと、ROMのBIOSを呼ぶ。
MSX2/2+では何もしない。

CPUGET (4025H)

[機能] CPUのモードを得る
[コール手順] なし
[戻り値]
A 0 Z80モード
1 R800 ROMモード
2 R800 DRAMモード
[変更レジスタ] AF
[詳細] turboRのBIOSを呼ぶ。
MSX2/2+では常に0を返す。

WRTOPL (4028H)

[機能] OPLLのレジスタに値を書き込む
[コール手順]
A レジスタ番号
E データ
[戻り値] なし
[変更レジスタ] A, E
[詳細] DMシステム2のインストール時、機種に適したルーチンへと書き換えられる。
復帰後は常にEI状態となる。

2.6 VDPマクロ

VMON (402BH)

[機能] VDPマクロをバックグラウンドで起動する
[コール手順]
A スレッド番号 (0 / 1)
HL VDPマクロの先頭アドレス
[戻り値]
F Z 正常終了
NZ 失敗 すでに実行中
[変更レジスタ] AF, HL, IY
[詳細]
[In]
A : スレッド番号(0 / 1)
HL: VDPマクロデータの先頭アドレス
[Out]
ゼロフラグ
Z:正常終了
NZ:すでに実行中
[Use]
AF,HL,IY
[Info]
割り込み状態は保存される。
VDPマクロによるパレット操作はVRAMのパレットテーブルへ反映されない。

VMOFF (4030H)

[機能] VDPマクロを中断する
[コール手順] !?
[戻り値] !?
[変更レジスタ] すべて
[詳細] 割り込みが接続されていたら切り離す。
マクロ実行中または実行後ならパレットレジスタの内容をVRAMのパレットテーブルへ反映させる。
[In]
A:0 スレッド#0を中断
  1 スレッド#1を中断
  2 スレッド#0 と #1 を中断
[Out]
なし
[Use]
AF,HL
[Info]
パレットレジスタの内容をVRAMのパレットテーブルへ反映させる。

CHGPLT (4035H)

[機能] パレットを変化させる
[コール手順]
A 番号
Cy VRAM指定
[戻り値] なし
[変更レジスタ] すべて
[詳細] 番号の詳しい内容については別のテキストを参照のこと。
Cy=0のときは(PLTADD)が指すRAM上のパレットデータを、
Cy=1のときは内部であらかじめ設定されているVRAM上のパレットデータを対象として動作する。
変化後のパレットはレジスタ、VRAMのパレットテーブルに反映される。
[in]
A : 番号
[out]なし
[use]すべて
[info]
もうVRAM上のパレットデータにはアクセスできなくなってます。

MCRINT (403AH)

[機能] なし
[コール手順] なし
[戻り値] なし
[変更レジスタ] なし
[詳細] 空きエントリ。

2.7 BGM演奏

BGMON (403FH)

[機能] BGMデータの演奏を開始する
[コール手順]
A ループ回数 (0:無限)
HL データの先頭アドレス
[戻り値]
A 演奏状態 (0:正常 0以外:エラー)
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。
データに異常がなければ、演奏できる状態にする。
実際の演奏には、この後BGMINTをタイマーフックへ接続する等の処理が必要である。
BGMドライバによっては機能が制限されることがある。

BGMOFF (4044H)

[機能] BGMデータの演奏を中断する
[コール手順] なし
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。
演奏を終了し、音源を初期化する。
BGMINTをタイマーフックに接続していた場合は、このルーチンを呼ぶ前に切り離しておくこと。

BGMPAU (4049H)

[機能] BGMデータの演奏を一時停止する
[コール手順] なし
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。
演奏状態/ポーズ状態を切り替える。

BGMTMP (404EH)

[機能] BGM演奏のテンポを変更する
[コール手順]
A 設定値
[戻り値] なし
[変更レジスタ] なし
[詳細] BGMドライバへのジャンプテーブル。
現在、このエントリーによってテンポを変更できるドライバは存在しない。

BGMTRS (4053H)

[機能] BGM演奏のトランスポーズを変更する
[コール手順]
A 設定値 (-128〜+127)
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。

MASVOL (4058H)

[機能] 音源の音量を調整する
[コール手順]
A マスターボリウム (最小0〜15最大)
L OPLLの音量相対値 (-15〜15)
E PSG の音量相対値 (-15〜15)
C SCC の音量相対値 (-15〜15)
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。

PSGCHN (405DH)

[機能] PSGの占有と解放を設定する
[コール手順]
L b2 チャンネルC (0:OFF 1:ON)
b1 チャンネルB (0:OFF 1:ON)
b0 チャンネルA (0:OFF 1:ON)
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。
OFFが設定されたチャンネルは、BGMINTによる演奏でも音程、音量、ミキサーの状態が維持される。
DMシステム2ではBGMとSEを同時に発生する為にこのエントリを利用する。
ノイズの扱いは現在思案中

BGMINT (4063H)

[機能] BGMデータに従い演奏する
[コール手順] あらかじめBGMONによって演奏の準備ができていること
1/60秒毎にここへコールする
[戻り値] なし
[変更レジスタ] すべて
[詳細] BGMドライバへのジャンプテーブル。

2.8 効果音の発声

SEON (4067H)

[機能] 効果音を発生させる
[コール手順]
A SE番号
HL SEテーブルの先頭アドレス
[戻り値] なし
[変更レジスタ] すべて
[詳細] 割り込みを接続し効果音を演奏させる。
演奏中で番号が0のとき、強制終了となり割り込みルーチンを切り離す。

SEINT (406CH)

[機能] 効果音データを演奏する
[コール手順] 1/60秒毎にコールされる
[戻り値] なし
[変更レジスタ] すべて
[詳細] データ終了後は割り込み処理から自動的に切り離される。

2.9 デバイス入力

DMM (4071H)

[機能] デバイスからの入力があるまで待つ
[コール手順]
A スプライト表示スイッチ (0:非表示 0以外:表示)
(DEVTIM) 最大待ち時間 (0=無限)
[戻り値]
A 入力結果 (0=無入力)
[変更レジスタ] すべて
[詳細] CTRL+STOPが押されると、強制終了する。

DMMINT (4076H)

[機能] デバイスからの入力を座標に反映させる
[コール手順]
(DMMMOD) bit0 スティック入力 (0:反映 1:無視)
bit1 画面外への移動 0:ループ 1:非ループ)
(DMMX) 反映する前のx座標
(DMMY)反映する前のy座標
[戻り値]
(DMMX) 反映した後のx座標
(DMMY)反映した後のy座標
[変更レジスタ] すべて
[詳細] 主にタイマー割り込みルーチンから1/60秒毎にコールされる。
VDPレジスタ#9のbit7で、縦192/212ドットモードを判別している。

DEVINI (407BH)

[機能] デバイスの接続状況を判定する
[コール手順] なし
[戻り値]
(DMMPO1) ポート1の接続結果
(DMMPO2) ポート2の接続結果
[変更レジスタ] すべて
[詳細] デバイスドライバへのジャンプテーブル。
機器によっては初期化も行う。

DEVMOU (4080H)

[機能] アナログデバイスからの入力結果を返す
[コール手順] なし
[戻り値]
L x方向増分 (-128〜+127)
H y方向増分 (-128〜+127)
[変更レジスタ] なし
[詳細] デバイスドライバへのジャンプテーブル。
2つのポートで同時に入力があった場合、ポート2を優先する。
あらかじめDEVINIによって必要な情報が設定されていなければならない。

DEVSTK (4085H)

[機能] 8方向デバイスからの入力結果を返す
[コール手順] なし
[戻り値]
A 値 (1〜8) ※ STICK関数と同等
[変更レジスタ] なし
[詳細] デバイスドライバへのジャンプテーブル。
2つのポートで同時に入力があった場合、ポート2を優先する。
あらかじめDEVINIによって必要な情報が設定されていなければならない。

DEVTRG (408AH)

[機能] 各デバイスのトリガ入力を得る
[コール手順] なし
[戻り値]
A ※ STRIG関数と同等
[変更レジスタ] なし
[詳細] デバイスドライバへのジャンプテーブル。
2つのポートで同時に入力があった場合、ポート2を優先する。
あらかじめDEVINIによって必要な情報が設定されていなければならない。

2.10 ブロック転送 (ページ1)

BLTRVR (408FH)

[機能] RAMまたはVRAMの内容をRAMへコピーする
[コール手順]
AHL 転送元アドレス(ビット23が1のときVRAM指定)
DE 転送先アドレス
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] ページ0の同名ルーチンを呼び出す。
長さが0のときは何もしない。
メインRAM間転送時、LDIR/LDDRの判定を行う。
VRAMの16KB/64KB境界を越えて転送可能。
復帰後は常にEI状態となる。

BLTRVW (4094H)

[機能] RAMの内容をRAMまたはVRAMへコピーする
[コール手順]
HL 転送元アドレス
ADE 転送先アドレス(ビット23が1のときVRAM指定)
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] ページ0の同名ルーチンを呼び出す。
長さが0のときは何もしない。
メインRAM間転送時、LDIR/LDDRの判定を行う。
VRAMの16KB/64KB境界を越えて転送可能。
復帰後は常にEI状態となる。

BLTRVV (4099H)

[機能] VRAMの内容をVRAMへコピーする
[コール手順]
A(b0)HL 転送元アドレス
A(b1)DE 転送先アドレス
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] ページ0の同名ルーチンを呼び出す。
長さが0のとき、転送は行わない。
LDIR/LDDRの判定を行う。
VRAMの16KB/64KB境界を越えて転送可能。
復帰後は常にEI状態となる。
DMWORKを破壊する。

2.11 汎用

CEWAIT (409EH)

[機能] VDPの処理が終わるまで待つ
[コール手順] なし
[戻り値] なし
[変更レジスタ] AF, HL, DE, C
[詳細] Ctrl+STOPによるブレークが可能。その場合、INTFLG(0FC9BH)に03Hを書き込み、BASICテキストの実行を中断させる。
復帰後は常にEI状態となる。

TMWAIT (40A3H)

[機能] 指定された時間だけ待つ
[コール手順]
DE 時間 (1/60秒単位)
[戻り値] なし
[変更レジスタ] AF, HL, DE
[詳細] JIFFY(0FC9EH)を利用している。
Ctrl+STOPによるブレークが可能。その場合、INTFLG(0FC9BH)に03Hを書き込み、BASICテキストの実行を中断させる。
復帰後は常にEI状態となる。

PACLOA (40A8H)

[機能] Pana Amusement Cartridgeのメモリを読む
[コール手順]
HL 転送元アドレス(PAC)
ADE 転送先アドレス(ビット23が1のときVRAM指定)
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] PACをメモリ空間上に出し(4000H〜5FFDH)、通常のメモリ間転送ルーチンを呼んだ後、メモリを元に戻す。

PACSAV (40ADH)

[機能] Pana Amusement Cartridgeのメモリに書く
[コール手順]
AHL 転送元アドレス(ビット23が1のときVRAM指定)
DE 転送先アドレス(PAC)
BC 長さ
[戻り値] なし
[変更レジスタ] AF, HL, DE, BC
[詳細] PACをメモリ空間上に出し(4000H〜5FFDH)、通常のメモリ間転送ルーチンを呼んだ後、メモリを元に戻す。

DISKLD (40B2H)

[機能] ファイルの内容をメモリに転送する
[コール手順]
HL ファイル名へのストリングディスクリプタへのポインタ
ADE 転送先アドレス(ビット23が1のときVRAM指定)
BUF(0F55EH), 3 ファイル先頭からのオフセット
BUF+3, 3 長さ
[戻り値]
A 終了フラグ (0:正常終了 0以外:異常時のエラーコード)
[変更レジスタ] すべて
[詳細] オフセットと長さを退避したあと、BUFから37バイトをFCBとして使用する。
ディスクバッファの割り当てには以下の3通りがある。
  • 転送先アドレスがRAMの8000H以降なら、DTA=転送先アドレスとして直接転送する。
  • 上に該当せず、フリーエリアが256バイト以上ある場合、フリーエリアにバッファを割り当て転送する。
  • フリーエリアが256バイトに満たない場合、BUF+37から219バイトにバッファを割り当て転送する。

  • FILES (40B7H)

    [機能] ディスク上のファイル名を得る
    [コール手順]
    (BUF) ファイル検索用の文字列
    B 文字列の長さ
    (DIRSW) アクセス選択 (0:ファイル 1:ディレクトリ)
    [戻り値]
    Cy 終了フラグ (0:正常終了 1:該当ファイルなし)
    A 該当ファイル数 (Cyが1のときエラーコード)
    (DMWORK) 該当ファイル名群
    [変更レジスタ] すべて
    [詳細] 該当ファイル名は 名前(8文字)+"."+拡張子(3文字) の12文字(満たない場合はスペースで補う)で構成され、最大112個のファイル名が連続して格納される。

    FSIZE (40BCH)

    [機能] ファイルのサイズを得る
    [コール手順]
    (BUF) ファイル名の文字列
    B 文字列の長さ
    [戻り値]
    Cy 終了フラグ (0:正常終了 1:該当ファイルなし)
    A エラーコード (該当ファイルの無いとき)
    DEHL サイズ
    [変更レジスタ] すべて
    [詳細] !?

    2.12 漢字表示

    KNJPUT (40C1H)

    [機能] 漢字を表示する
    [コール手順]
    HL 文字列の先頭アドレス
    各種ワークエリアにパラメータ
    [戻り値]
    HL 文字列の中断・終了アドレス
    DE 画面に表示した文字数
    [変更レジスタ] !?
    [詳細] 文字列の末尾には終了コード(00H)が必要となる。

    2.13 以下、情報歯抜けの為、大幅加筆予定

    PCMON (40C6H)

    [機能] !?
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [In]
    A=a-----bb
      a:メモリ選択  0のときRAM 1のときVRAM
      b:サンプリングレート
    EHL=データの先頭アドレス
    BC=サイズ
    D=ループ回数
    [Out]
    Cy=終了フラグ 0:正常 1:異常終了
    A =異常終了原因 0:エラー 1-255:Ctrl+STOPによる中断
    [Use]
    すべて
    [Info]
    とくになし
    

    PCMDRV (40CBH)

    [機能] PCMデータを再生する
    [コール手順]
    A サンプリングレート (bit7が1のときVRAM)
    EHL データの先頭アドレス ※ Aも使用する!?→bit7をRAM/VRAMの指定に使うのみ
    DBC 長さ
    [戻り値]
    Cy 終了フラグ (0:正常終了 1:異常終了)
    A エラー内容 (0:エラー 0以外:Ctrl+STOPによるブレーク)
    [変更レジスタ] すべて
    [詳細] とくになし

    DBPEVV (40D0H)

    [機能] VRAM上の圧縮データをVRAMに展開する
    [コール手順]
    7C80H,3 データの先頭アドレス (17ビット)
    7C83H,3 展開先アドレス (17ビット)
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    DBPEVM (40D5H)

    [機能] メインRAM上の圧縮データをVRAMに展開する
    [コール手順]
    7C80H,2 データの先頭アドレス (16ビット)
    7C83H,3 展開先アドレス (17ビット)
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    DBPEMV (40DAH)

    [機能] VRAM上の圧縮データをメインRAMに展開する
    [コール手順]
    7C80H,3 データの先頭アドレス (17ビット)
    7C83H,2 展開先アドレス (16ビット)
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    DBPEMM (40DFH)

    [機能] メインRAM上の圧縮データをメインRAMに展開する
    [コール手順]
    7C80H,2 データの先頭アドレス (16ビット)
    7C83H,2 展開先アドレス (16ビット)
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    DBPECV (40E4H)

    [機能] VRAM上の圧縮画像データを展開する
    [コール手順]
    7C80H,3 データの先頭アドレス (17ビット)
    7C83H,2 展開先基準点 X座標 (0-511)
    7C85H 展開先基準点 Y座標 (0-255)
    7C86H 展開先ページ (0-3)
    7C87H b0-b3 ロジカルオペレーション
    b4 展開方向 0:左から右へ 1:右から左へ
    b5 展開方向 0:上から下へ 1:下から上へ
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    DBPECM (40E9H)

    [機能] メインRAM上の圧縮画像データを展開する
    [コール手順]
    7C80H,2 データの先頭アドレス (16ビット)
    7C83H,2 展開先基準点 X座標 (0-511)
    7C85H 展開先基準点 Y座標 (0-255)
    7C86H 展開先ページ (0-3)
    7C87H b0-b3 ロジカルオペレーション
    b4 展開方向 0:左から右へ 1:右から左へ
    b5 展開方向 0:上から下へ 1:下から上へ
    [戻り値] なし
    [変更レジスタ] すべて
    [詳細] (DMWORK)を破壊する

    LCOPY (40EEH)

    [機能] 直線を任意の場所にコピーする
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    0f55eh 転送元基準点 x座標 (0-511)
    0f560h 転送元基準点 y座標 (0-1023)
    0f562h 転送元x方向ドット数 (1-512)
    0f564h 転送元y方向ドット数 (1-1023)
    0f566h 転送先基準点 x座標 (0-511)
    0f568h 転送先基準点 y座標 (0-1023)
    0f56ah 転送先x方向ドット数 (1-512)
    0f56ch 転送先y方向ドット数 (1-1023)
    0f56eh 基準点からの終点の方向 0=正 1=負
            b0:転送元 x
            b1:転送元 y
            b2:転送先 x
            b3:転送先 y
    [out]なし
    [use]すべて
    [info]任意の直線上の点を別の直線上へコピーする。
    VCOPYが内部で利用している。
    

    VCOPY (40F3H)

    [機能] 拡大縮小回転コピー
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    0f55eh 転送元基準点 x座標 (0-511)
    0f560h 転送元基準点 y座標 (0-1023)
    0f562h 転送元x方向ドット数 (1-512)
    0f564h 転送元y方向ドット数 (1-1023)
    0f566h 転送先基準点 x座標 (0-511)
    0f568h 転送先基準点 y座標 (0-1023)
    0f56ah 転送先x方向ドット数 (1-512)
    0f56ch 転送先y方向ドット数 (1-1023)
    0f56eh 基準点からの終点の方向 0=正 1=負
            b0:転送元 x
            b1:転送元 y
            b2:転送先 x
            b3:転送先 y
    0f570h 回転の中心 x座標
    0f572h 回転の中心 y座標
    0f574h 回転角度 (-30000-30000) 単位は弧度法 360で一回り
    [out]なし
    [use]すべて
    [info]とくになし
    

    SIN (40F8H)

    [機能] 正弦を得る
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    HL : 角度 (-30000-30000) 単位は弧度法 360で一回り
    DE : 倍率 (-32768-32767)
    [out]
    HL : 結果
    [use]すべて
    [info]小数点以下は四捨五入される
    

    COS (40FDH)

    [機能] 余弦を得る
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    HL : 角度 (-30000-30000) 単位は弧度法 360で一回り
    DE : 倍率 (-32768-32767)
    [out]
    HL : 結果
    [use]すべて
    [info]小数点以下は四捨五入される
    

    CELLO (4102H)

    [機能] 画像の色情報を変換する
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    0f55eh 範囲指定 基準点 x座標 (0-511)
    0f560h          基準点 y座標 (0-1023)
    0f562h          x方向ドット数 (1-512)
    0f564h          y方向ドット数 (1-1023)
    0f566h 基準点からの終点の方向 0=正 1=負
            b0:転送元 x
            b1:転送元 y
    
    スクリーン8のとき
    0f567h R成分修正値 (-128~127)
    0f568h G成分修正値 (-128~127)
    0f569h B成分修正値 (-128~127)
    スクリーン10〜12のとき
    0f567h Y成分修正値 (-128~127)
    0f568h 無効
    0f569h 無効
    スクリーン5/7のとき
    0f567h 変更したいカラーコード
    0f568h 変更後のカラーコード
    0f569h 無効
    [out]なし
    [use]すべて
    [info]とくになし
    

    CELMNA (4107H)

    [機能] 画像をモノクロ調に変換する(最高値)
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    0f55eh 範囲指定 基準点 x座標 (0-511)
    0f560h          基準点 y座標 (0-1023)
    0f562h          x方向ドット数 (1-512)
    0f564h          y方向ドット数 (1-1023)
    0f566h 基準点からの終点の方向 0=正 1=負
            b0:転送元 x
            b1:転送元 y
    [out]
    なし
    [use]すべて
    [info]
    スクリーン8でのみ有効
    

    CELMNB (410CH)

    [機能] 画像をモノクロ調に変換する(平均値)
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    0f55eh 範囲指定 基準点 x座標 (0-511)
    0f560h          基準点 y座標 (0-1023)
    0f562h          x方向ドット数 (1-512)
    0f564h          y方向ドット数 (1-1023)
    0f566h 基準点からの終点の方向 0=正 1=負
            b0:転送元 x
            b1:転送元 y
    [out]
    なし
    [use]すべて
    [info]
    スクリーン8でのみ有効
    

    SETBIN (4111H)

    [機能] バイナリシステム用データを認識する
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    AHL : データ先頭アドレス (VRAMのみ)
    [out]
    Cy=0 正常終了
    Cy=1 データが正しくない
    [use]すべて
    [info]とくになし
    
    

    BINLOA (4116H)

    [機能] バイナリシステム用データを展開する
    [コール手順] !?
    [戻り値] !?
    [変更レジスタ] !?
    [詳細] !?
    [in]
    C : データ番号
    B : パラメータ強制変更スイッチ
    	b2	機能依存フラグ	(0f55eh,1バイト)
    	b1	展開先アドレス	(0f55fh,3バイト)
    	b0	サイズ		(0f562h,2バイト)
    [out]なし
    [use]すべて
    [info]
    各パラメータに対応するビットが0のときはデータの持つ値が使用される。
    
    [Back]
    Copyright (c) 1998 GIGAMIX, All rights reserved.