Gigamix DM-SYSTEM2

コールエントリ

updated:

第1章 概要

コールエントリとは

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

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

コールエントリのルール

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

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

第2章 コールエントリ一覧表

互換BIOS

RDSLT (000CH) スロットのメモリを1バイト読出
WRSLT (0014H) スロットのメモリを1バイト書込
CALSLT (001CH) インタースロットコール
ENASLT (0024H) スロットの選択
KEYINT (0038H) タイマ割り込みの実行

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

BLTRVR (0103H) メモリの内容をRAMへコピー
BLTRVW (0106H) RAMの内容をメモリへコピー
BLTRVV (0109H) VRAMの内容をVRAMへコピー

システム管理

INTRPT (4010H) 割り込み処理の中継
BCLGND (4013H) 各バックグラウンド処理への分岐
CALRAM (4016H) ページ0のRAMにあるマシン語を実行
CALROM (4019H) ページ0のROMにあるマシン語を実行
CALBAS (401CH) ページ1をROMに切り替えて実行
CHGSLT (401FH) ページ0のスロットを切替
CPUCHG (4022H) CPUモードの変更
CPUGET (4025H) CPUのモードの獲得
WRTOPL (4028H) OPLLのレジスタに値を書込

VDPマクロ

VMON (402BH) VDPマクロの起動
VMOFF (4030H) VDPマクロの中断
CHGPLT (4035H) パレットの変更
MCRINT (403AH) 予約

BGM演奏

BGMON (403FH) BGMの演奏開始
BGMOFF (4044H) BGM演奏の中断
BGMPAU (4049H) BGMの一時停止
BGMTMP (404EH) テンポの変更
BGMTRS (4053H) トランスポーズの変更
MASVOL (4058H) 音量の調整
PSGCHN (405DH) PSGの占有と解放
BGMINT (4062H) BGMデータに従い演奏

効果音

SEON (4067H) 効果音の発声
SEINT (406CH) 効果音データに従い演奏

デバイス入力

DMM (4071H) デバイスからの入力待ち
DMMINT (4076H) デバイス入力を座標に反映
DEVINI (407BH) デバイスの接続状況の判定
DEVMOU (4080H) アナログデバイスからの入力
DEVSTK (4085H) 8方向デバイスからの入力
DEVTRG (408AH) 各デバイスからのトリガ入力

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

BLTRVR (408FH) メモリの内容をRAMへコピー
BLTRVW (4094H) RAMの内容をメモリへコピー
BLTRVV (4099H) VRAMの内容をVRAMへコピー

汎用

CEWAIT (409EH) VDPの処理待ち
TMWAIT (40A3H) 時間待ち
PACLOA (40A8H) PACのメモリを読む
PACSAV (40ADH) PACのメモリに書く
LOAD (40B2H) ファイルの内容をメモリに転送
FILES (40B7H) ディスク上のファイル名を得る
FSIZE (40BCH) ファイルのサイズを得る
SAVE (411EH) メモリの内容をファイルに書き込む
PRTHEX (4123H) 値を16進数表記で出力する
SETVRD (4129H) VRAM読み出しの準備を行う
SETVWD (412CH) VRAM書き込みの準備を行う

漢字表示

KNJPUT (40C1H) 漢字の表示
FIXPRM (413EH) 漢字表示用パラメータの調整
REQTBL (412FH) 高速漢字表示モード時のテーブル破壊の通知

PCM再生

PCMON (40C6H) PCMデータの再生
PCMDRV (40CBH) PCMドライバの呼び出し

BPE展開

DBPEVV (40D0H) VRAMのBPEデータをVRAMへ展開
DBPEVM (40D5H) RAMのBPEデータをVRAMへ展開
DBPEMV (40DAH) VRAMのBPEデータをRAMへ展開
DBPEMM (40DFH) RAMのBPEデータをRAMへ展開
DBPECV (40E4H) VRAMのBPEデータをCOPY形式へ展開
DBPECM (40E9H) RAMのBPEデータをCOPY形式へ展開

画像の加工

LCOPY (40EEH) LINECOPYの実行
VCOPY (40F3H) VCOPYの実行
SIN (40F8H) SIN関数の値を得る
COS (40FDH) COS関数の値を得る
CELLO (4102H) CELLOの実行
CELMNA (4107H) CELLOの実行
CELMNB (410CH) CELLOの実行

バイナリシステム

SETBIN (4111H) SETBINの実行
BINLOA (4116H) BINLOADの実行

マッパRAM

MAPALC (4132H) 空きセグメントをブロックリストに登録
MAPFRE (4135H) ブロックリストを開放
MAPSUP (4138H) ブロックリストのセグメント情報を得る
BLTRSP (413BH) セグメント間ブロック転送

2.2 ステートメントの解説

WRSLT (0014H)

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

互換BIOS

RDSLT (000CH)

機能 Aレジスタの値に対応するスロットを選択し、そのスロットのメモリを1バイト読み出します。
コール手順
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
読み込むメモリのアドレス
戻り値
A
読み込んだメモリの値
変更レジスタ AF, BC, DE
詳細 同名のBIOSと同じです。ページ1がメインRAMでなければいけません。
ページ1にある自前のインタースロットコールルーチンでメインROM上のBIOSを呼び出しています。

WRSLT (0014H)

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

CALSLT (001CH)

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

ENASLT (0024H)

機能 Aレジスタの値に対応するスロットを選択し、以降そのスロットを使用可能にする
※ 同名のBIOSと同じ
コール手順
A
スロット番号 (形式はRDSLTと同じ)
HL
呼び出すアドレス
戻り値 なし
変更レジスタ AF, HL, DE, BC
詳細 同名のBIOSと同じです。BIOS相当の自前のルーチンを持ちます。

KEYINT (0038H)

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

ブロック転送 (ページ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)をすべて破壊します。

システム管理

INTRPT (4010H)

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

BCLGND (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
CPUモード(0:Z80モード, 1:R800 ROMモード, 2:R800 DRAMモード)
戻り値
A
実際のCPUモード(0:Z80モード, 1:R800 ROMモード, 2:R800 DRAMモード)
変更レジスタ AF, AF'
詳細 turbo RのBIOSと同じ形式です。
AレジスタをNEWCPUに保存したあと、ROMのBIOSを呼びます。
MSX2/2+では何もしません。

CPUGET (4025H)

機能 CPUのモードを得ます。
コール手順 なし
戻り値
A
実際のCPUモード(0:Z80モード, 1:R800 ROMモード, 2:R800 DRAMモード)
変更レジスタ AF
詳細 turbo RのBIOS”GETCPU(0183h)”を呼びます。
MSX2/2+では常に0を返します。

WRTOPL (4028H)

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

VDPマクロ

VMON (402BH)

機能 VDPマクロをバックグラウンドで起動します。
コール手順
A
スレッド番号(0, 1)
HL
VDPマクロの先頭アドレス
戻り値
Z
起動結果(0:正常終了, 1:失敗 or すでに実行中)
変更レジスタ AF, HL, DE
詳細 割り込み状態は保存されます。
VDPマクロによるパレット操作はVRAMのパレットテーブルへ反映されません。

VMOFF (4030H)

機能 VDPマクロを中断します。
コール手順
A
中断スレッド(0:スレッド#0を中断, 1:スレッド#1を中断, 2:スレッド#0とスレッド#1の両方を中断)
戻り値 なし
変更レジスタ AF, HL
詳細 割り込みが接続されていたら切り離します。

CHGPLT (4035H)

機能 パレットを変化させます。
コール手順
A
CALL CHGPLTの引数と同じ
戻り値 なし
変更レジスタ すべて
詳細 変化後のパレットはNEWPLTにのみ保存され、VRAMのパレットテーブルには反映されません。

MCRINT (403AH)

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

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 (4062H)

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

効果音の発声

SEON (4067H)

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

SEINT (406CH)

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

デバイス入力

DMM (4071H)

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

DMMINT (4076H)

機能 デバイスからの入力を座標に反映させます。
コール手順
(DMMMOD)
b0:スティック入力 (0:スティック入力反映 1:スティック入力無視)
b1:画面外への移動 (0:画面外ループ 1:画面外非ループ)
b2:Y座標のループ位置(0:縦方向212(192)でループ, 1:縦方向256でループ)
(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
値(0:押されていない, -1:押されている)
変更レジスタ なし
詳細 STRIG関数と同等です。
デバイスドライバへのジャンプテーブルです。
2つのポートで同時に入力があった場合、ポート2を優先します。
あらかじめDEVINIによって必要な情報が設定されていなければいけません。

ブロック転送 (ページ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
長さ
戻り値 なし
変更レジスタ すべて
詳細 (DMWORK)を破壊します。

汎用

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)、通常のメモリ間転送ルーチンを呼んだ後、メモリを元に戻します。

LOAD (40B2H)

機能 ファイルの内容をメモリに転送します。
コール手順
AHL
転送先アドレス(ビット23が1のときVRAM指定)
BDE
ファイル先頭からのオフセット
CIX
長さ
(BUF)
ファイル名文字列(終端に00Hが必要)
戻り値
A
終了フラグ(0:正常終了, 0以外:異常時のエラーコード)
変更レジスタ すべて
詳細 とくにありません。

FILES (40B7H)

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

FSIZE (40BCH)

機能 ファイルのサイズを得ます。
コール手順
(BUF)
ファイル検索用の文字列(終端に00Hが必要)
戻り値
Cy
終了フラグ (0:正常終了 1:該当ファイルなし)
A
エラーコード (該当ファイルの無いとき)
DEHL
サイズ
変更レジスタ すべて
詳細 とくにありません

SAVE (411EH)

機能 メモリの内容をファイルに書き込みます。
コール手順
A
転送先アドレス(ビット23が1のときVRAM指定)
BDE
ファイル先頭からのオフセット
OFFFFFFHのとき新規ファイルを作成
OFFFFFFH以外のとき既存ファイルの更新
CIX
長さ
(BUF)
ファイル名文字列(終端に00Hが必要)
戻り値
A
終了フラグ(0:正常終了, 0以外:異常時のエラーコード)
変更レジスタ すべて
詳細 とくにありません

PRTHEX (4123H)

機能 値を16進数表記で出力します。
コール手順
HL
戻り値 なし
変更レジスタ AF, HL, DE, C
詳細 値を&H0000の形式でテキスト画面に出力します。

SETVRD (4129H)

機能 VRAM読み出しの準備を行います。
コール手順
AHL
VRAMアドレス
戻り値
A
VDPの読み出し用I/Oポート番号
変更レジスタ AF
詳細 VRAMを読み出せるようにします。

SETVWD (412CH)

機能 VRAM書き込みの準備を行います。
コール手順
AHL
VRAMアドレス
戻り値
A
VDPの書き込み用I/Oポート番号
変更レジスタ AF
詳細 VRAMに書き込めるようにします。

漢字表示

KNJPUT (40C1H)

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

FIXPRM (413EH)

機能 漢字表示用パラメータの調整をします。
コール手順 なし
戻り値 なし
変更レジスタ すべて
詳細 CALL KPRINTCALL KPUTが内部で使用します。

REQTBL (412FH)

機能 高速漢字表示モードのテーブルが破壊されたことを通知します。
コール手順 なし
戻り値 なし
変更レジスタ AF
詳細 高速漢字表示モードでテーブルの再作成が必要なことをシステムに通知します。

PCMデータの再生

PCMON (40C6H)

機能 PCMデータを再生します。
コール手順
A
b0,b1:サンプリングレート(0~3)
b7:データソース(0:RAM, 1:VRAM)
EHL
データの先頭アドレス
BC
サイズ
D
ループ回数
戻り値
Cy
終了フラグ(0:正常終了, 1:異常終了)
A
エラーコード(0:エラーによる異常終了, 0以外:Ctrl+STOPによる中断)
変更レジスタ すべて
詳細 指定されたループ回数だけPCMドライバのエントリを呼び出します。

PCMDRV (40CBH)

機能 PCMデータを再生します。
コール手順
A
b0,b1:サンプリングレート(0~3)
b7:データソース(0:RAM, 1:VRAM)
EHL
データの先頭アドレス
DBC
長さ
戻り値
Cy
終了フラグ(0:正常終了, 1:異常終了)
A
エラーコード(0:エラーによる異常終了, 0以外:Ctrl+STOPによる中断)
変更レジスタ すべて
詳細 Ctrl+STOPによる中断はドライバがサポートしている場合に限ります。

BPE展開

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

画像の加工

LCOPY (40EEH)

機能 直線を任意の場所にコピーします。
コール手順
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座標
戻り値 なし
変更レジスタ すべて
詳細 任意の直線上の点を別の直線上へコピーします。
CALL VCOPYが内部で利用しています。

VCOPY (40F3H)

機能 拡大縮小回転コピーをします。
コール手順
0F57EH
転送元基準点 X座標(0~511)
0F580H
転送元基準点 Y座標(0~1023)
0F582H
転送元X方向ドット数(1~512)
0F584H
転送元Y方向ドット数(1~1023)
0F586H
転送先基準点 X座標(0~511)
0F568H
転送先基準点 Y座標(0~1023)
0F58AH
転送先X方向ドット数(1~512)
0F58CH
転送先Y方向ドット数(1~1023)
0F58EH
基準点からの終点の方向(0:正, 1:負)
b0:転送元 X座標
b1:転送元 Y座標
b2:転送先 X座標
b3:転送先 Y座標
0F58FH
回転の中心 X座標
0F591H
回転の中心 Y座標
0F593H
回転角度(-30000~30000) 単位は弧度法 360°で一回り
戻り値 なし
変更レジスタ すべて
詳細 とくにありません。

SIN (40F8H)

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

COS (40FDH)

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

CELLO (4102H)

機能 画像の色情報を変換します。
コール手順
0F55Eh
基準点 X座標(0~511)
0F560h
基準点 Y座標(0~1023)
0F562h
X方向ドット数(1~512)
0F564h
Y方向ドット数(1~1023)
0F566h
基準点からの終点の方向(0:正, 1:負)
b0:転送元 X座標
b1:転送元 Y座標

SCREEN8のとき、以下も追加

0F567h
R成分修正値 (-128~127)
0F568h
G成分修正値 (-128~127)
0F569h
B成分修正値 (-128~127)

SCREEN10~12のとき、以下も追加

0F567h
Y成分修正値 (-128~127)

SCREEN5/7のとき、以下も追加

0F567h
変更したいカラーコード (0~15)
0F568h
変更後のカラーコード (0~15)
戻り値 なし
変更レジスタ すべて
詳細 とくにありません。

CELMNA (4107H)

機能 画像をモノクロ調に変換します。(最高値)
コール手順
0F55Eh
基準点 X座標(0~511)
0F560h
基準点 Y座標(0~1023)
0F562h
X方向ドット数(1~512)
0F564h
Y方向ドット数(1~1023)
0F566h
基準点からの終点の方向(0:正, 1:負)
b0:転送元 X座標
b1:転送元 Y座標
戻り値 なし
変更レジスタ すべて
詳細 SCREEN8のみ有効です。

CELMNB (410CH)

機能 画像をモノクロ調に変換します。(平均値)
コール手順
0F55Eh
基準点 X座標(0~511)
0F560h
基準点 Y座標(0~1023)
0F562h
X方向ドット数(1~512)
0F564h
Y方向ドット数(1~1023)
0F566h
基準点からの終点の方向(0:正, 1:負)
b0:転送元 X座標
b1:転送元 Y座標
戻り値 なし
変更レジスタ すべて
詳細 SCREEN8のみ有効です。

バイナリシステム

SETBIN (4111H)

機能 バイナリシステム用データを認識します。
コール手順
AHL
データ先頭アドレス (VRAMのみ)
戻り値
Cy
正常終了フラグ(0:正常終了, 1:異常終了)
変更レジスタ すべて
詳細 指定アドレスにバイナリシステム用データがなければCyをセットして帰ります。

BINLOA (4116H)

機能 バイナリシステム用データを展開します。
コール手順
C
データ番号
B
パラメータ強制変更スイッチ
b2:機能依存フラグ(0F55Eh,1バイト)
b1:展開先アドレス(0F55Fh,3バイト)
b0:サイズ(0F562h,2バイト)
戻り値 なし
変更レジスタ すべて
詳細 各パラメータに対応するビットが0のときはデータの持つ値が使用されます。

マッパRAM

MAPALC (4132H)

機能 空きセグメントをブロックリストに登録します。
コール手順
A
ハンドル番号(0:新規作成)
HL
追加登録したいセグメント数(0~)
戻り値
A
ハンドル番号(新規作成で確保できたときのみ有効)
HL
新たに登録したセグメント数
Cy
要求したセグメント数より少ない数しか確保できなかった
変更レジスタ すべて
詳細 既存のブロックリストにセグメントを追加するとリストが再構成されるため、メモリの内容は不定です。
実メモリに空きがあってもブロックリストの管理領域が足りなくなると要求セグメント数を確保できない場合があります。
デフォルトではプライマリスロットから優先的にセグメントを確保しますが、EXTSW0(430DH)のbit1を立てると、プライマリスロット以外から優先的にセグメントを確保します。

MAPFRE (4135H)

機能 ブロックリストを解放します。
コール手順
A
ハンドル番号(0:全解放)
戻り値 なし
変更レジスタ すべて
詳細 解放されたブロックリストを使い続けることはできません。

MAPSUP (4138H)

機能 ブロックリストのセグメント情報を得ます。
コール手順
A
ハンドル番号
HL
ブロックリスト中のセグメント番号
戻り値

成功

Cy
0
A
スロット上のセグメント番号
B
スロット番号

失敗

Cy
1
A
スロット上のセグメント番号
HL
指定ブロックリストの総セグメント数
変更レジスタ すべて
詳細 スロットおよびセグメントの操作は一切行いません。これらの操作は必要に応じてユーザーが行います。

BLTRSP (413BH)

機能 セグメント間ブロック転送します。
コール手順
A
ハンドル番号
BHL
転送元アドレス
CDE
転送先アドレス
Oppppppp ppaaaaaa aaaaaaaa セグメント (p) と アドレス (a)
1xxxxxxa aaaaaaaa aaaaaaaa VRAM アドレス (a)
IX
長さ
戻り値
Cy
1:エラー(メモリが足りない)
変更レジスタ すべて
詳細 pが0~3のときpはメインRAMのページ番号に対応し、4以上のときp-4がブロックリスト中のセグメント番号になります。
[Back]トップページへ