misc/fullpat.txt
fullpat.txt
■基本情報
----------------------------------------------------------------
タイトル
フルパターンメモリドライバ
プログラム名
fullpat.x
バージョン
version 1.00
機能
スプライト関連のIOCSコールをフルパターンメモリに対応させるドライバです。
増えるもの
スプライトから参照できるパターン 256個 → 512個
テキストから参照できるパターン 192個 → 256個
テキスト 2ページ → 4ページ
増えないもの
スプライト 128枚
バックグラウンド 2面
----------------------------------------------------------------
■補足情報
----------------------------------------------------------------
解説
X68000のスプライトコントローラCYNTHIAには512個のパターンを扱う能力があります。
しかし、実際にX68000/X68030に搭載されたパターンメモリは256個分(32KB)だけでした。
CYNTHIAがパターンメモリを選択するチップセレクト信号はXPC0/PCS0とXPC1/PCS1です。
XPC0/PCS0にはメモリが接続されていますがXPC1/PCS1には何も接続されていません。
そのまま256~511番のパターンを表示すると豆腐になります。
XPC1/PCS1にメモリを接続すると512個のパターンを定義できるようになります。
2026年2月、紅茶羊羹さんによって実験基板が作成され動作が確認されました。
XEiJでは改造メニューのフルパターンメモリをONにすることで利用できます。
関連サイト
https://x.com/youkan700/status/2018337038811164994
https://x.com/youkan700/status/2018670570163077315
https://x.com/youkan700/status/2032042838180184383
----------------------------------------------------------------
■使用法
----------------------------------------------------------------
CONFIG.SYS
device=fullpat.x オプション
コマンドライン
A>fullpat.x オプション
オプション
-c 常駐確認
常駐確認を行い、結果をメッセージと終了コードで返します。
-h/-? 使用法表示
使用法を表示して正常終了します。
-k 常駐
ベクタを変更して常駐終了します。
-q メッセージ非表示
オプションが違うとき以外、メッセージを表示しません。
-r 常駐解除
ベクタを復元して常駐を解除して正常終了します。
常駐部分がデバイスドライバのとき、デバイスドライバを切り離します。
常駐部分がメモリブロックのとき、メモリブロックを開放します。
常駐後にベクタが変更されて常駐部分を指していないときは解除できません。
常駐部分のバージョンが違うときは解除できません。
-v バージョン確認
タイトルとバージョンを表示して正常終了します。
CONFIG.SYSで指定できるオプションは-qだけです。
----------------------------------------------------------------
■終了コード
----------------------------------------------------------------
0 正常終了
1 オプションが違います
2 常駐しています
3 常駐していません
4 ベクタが変更されています。解除できません
5 常駐部分のバージョンが違います。解除できません
65536 常駐終了
----------------------------------------------------------------
■キャラクタとプライオリティ
----------------------------------------------------------------
VH__BBBBNNNNNNNN キャラクタ
_____________nPP プライオリティ
V 0~1 上下反転。0=しない,1=する
H 0~1 左右反転。0=しない,1=する
BBBB 0~15 パレットブロック
nNNNNNNNN 0~511 パターン番号
PP 0~3 優先順位
0=表示しない
1=バックグラウンド0>バックグラウンド1>スプライト
2=バックグラウンド0>スプライト>バックグラウンド1
3=スプライト>バックグラウンド0>バックグラウンド1
----------------------------------------------------------------
■カラーコード
----------------------------------------------------------------
GGGGGRRRRRBBBBBI カラーコード
GGGGGI 0~63 緑
RRRRRI 0~63 赤
BBBBBI 0~63 青
----------------------------------------------------------------
■IOCSコールリファレンス
----------------------------------------------------------------
番号 $C0
名前 SP_INIT
機能 スプライト・バックグラウンドを初期化します。
入力 なし
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C1
名前 SP_ON
機能 スプライト・バックグラウンド画面を表示します。
入力 なし
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C2
名前 SP_OFF
機能 スプライト・バックグラウンド画面を表示しません。
入力 なし
出力 d0.l 0 正常終了
----------------------------------------------------------------
番号 $C3
名前 SP_CGCLR
機能 パターンをゼロクリアします。
入力 d1.w 0~511 パターン番号
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C4
名前 SP_DEFCG
機能 パターンを設定します。
入力 d1.w 0~511 パターン番号
d2.b 0~1 サイズ。0=8x8,1=16x16
a1.l 偶数 バッファのアドレス
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C5
名前 SP_GTPCG
機能 パターンを取得します。
入力 d1.w 0~511 パターン番号
d2.b 0~1 サイズ。0=8x8,1=16x16
a1.l 偶数 バッファのアドレス
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C6
名前 SP_REGST
機能 スプライトスクロールレジスタを設定します。
入力 d1.l bit31 0~1 VDISPの立ち下がり。0=待つ,1=待たない
d1.b 0~127 スプライト番号
d2.l bit31 0~1 X座標の設定。0=する,1=しない
d2.w 0~1023 X座標
d3.l bit31 0~1 Y座標の設定。0=する,1=しない
d3.w 0~1023 Y座標
d4.l bit31 0~1 キャラクタの設定。0=する,1=しない
d4.w 0~65535 キャラクタ
d5.l bit31 0~1 プライオリティの設定。0=する,1=しない
d5.w 0~7 プライオリティ
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C7
名前 SP_REGGT
機能 スプライトスクロールレジスタを取得します。
入力 d1.b 0~127 スプライト番号
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
d2.l 0~1023 X座標
d3.l 0~1023 Y座標
d4.l 0~65535 キャラクタ
d5.l 0~7 プライオリティ
----------------------------------------------------------------
番号 $C8
名前 BGSCRLST
機能 バックグラウンドスクロールレジスタを設定します。
入力 d1.l bit31 0~1 VDISPの立ち下がり。0=待つ,1=待たない
d1.b 0~1 バックグラウンド番号
d2.l bit31 0~1 X座標の設定。0=する,1=しない
d2.w 0~1023 X座標
d3.l bit31 0~1 Y座標の設定。0=する,1=しない
d3.w 0~1023 Y座標
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $C9
名前 BGSCRLGT
機能 バックグラウンドスクロールレジスタを取得します。
入力 d1.b 0~1 バックグラウンド番号
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
d2.l 0~1023 X座標
d3.l 0~1023 Y座標
----------------------------------------------------------------
番号 $CA
名前 BGCTRLST
機能 バックグラウンド制御レジスタを設定します。
入力 d1.b 0~1 バックグラウンド番号
d2.l bit31 0~1 テキスト番号の設定。0=する,1=しない
d2.b 0~3 テキスト番号
d3.l bit31 0~1 表示の有無の設定。0=する,1=しない
d3.b 0~1 表示の有無
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $CB
名前 BGCTRLGT
機能 バックグラウンド制御レジスタを取得します。
入力 d1.b 0~1 バックグラウンド番号
出力 d0.l -1 スプライト画面を使用できない
0~7 テキスト番号<<1|表示の有無
----------------------------------------------------------------
番号 $CC
名前 BGTEXTCL
機能 バックグラウンドテキストをキャラクタで埋め尽くします。
入力 d1.b 0~3 テキスト番号
d2.w 0~65535 キャラクタ
出力 d0.l -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $CD
名前 BGTEXTST
機能 バックグラウンドテキストにキャラクタを書き込みます。
入力 d1.b 0~3 テキスト番号
d2.b 0~63 X座標
d3.b 0~63 Y座標
d4.w 0~65535 キャラクタ
出力 d0 -1 スプライト画面を使用できない
0 正常終了
----------------------------------------------------------------
番号 $CE
名前 BGTEXTGT
機能 バックグラウンドテキストからキャラクタを読み出します。
入力 d1.b 0~3 テキスト番号
d2.b 0~63 X座標
d3.b 0~63 Y座標
出力 d0.l -1 スプライト画面を使用できない
0~65535 キャラクタ
----------------------------------------------------------------
番号 $CF
名前 SPALET
機能 スプライトパレットを設定または取得します。
パレットブロック0は指定できません。
入力 d1.l bit31 0~1 VDISPの立ち下がり。0=待つ,1=待たない
d1.b 0~255 パレットブロック<<4|パレットコード
d2.b 0~15 パレットブロック(優先)
d3.l bit31 0~15 モード。0=設定,1=取得
d3.w 0~65535 カラーコード
出力 d0.l -2 パレットブロック0が指定された
0~65535 設定前のカラーコード
----------------------------------------------------------------
■チップセレクト
----------------------------------------------------------------
$00EB0000+8*n+6 bit2 SPCS スプライトが使うパターンのチップセレクト
$00EB0808 bit10 MPUCS MPUから見えるパターンとテキストのチップセレクト
bit5 B1CS バックグラウンド1が使うテキストのチップセレクト
bit2 B0CS バックグラウンド0が使うテキストのチップセレクト
----------------------------------------------------------------
■更新履歴
----------------------------------------------------------------
2026-03-23 version 1.00
初版。
----------------------------------------------------------------