X68k:IOCS

From Data Crystal
Jump to: navigation, search
	- IOCS CALL MANUAL -

==============================================================================

・IOCSコール一覧

$00	_B_KEYINP	キーデータの読み込み
$01	_B_KEYSNS	キーの入力検査
$02	_B_SFTSNS	シフトキー状態の収得
$03	_KEY_INIT	入力関係の初期化
$04	_BITSNS		キー状態の収得
$05	_SKEYSET	キー入力の発生
$06	_LEDCTRL	キーボード LED の設定
$07	_LEDSET		キーボード LED をキー入力モードに合わせる
$08	_KEYDLY		キーリピートの開始時間設定
$09	_KEYREP		キーリピートの間隔設定
$0a	(未公開)	OPT.2 によるテレビコントロール許可
$0b	(未公開)	OPT.2 によるテレビコントロール禁止
$0c	_TVCTRL		テレビコントロール
$0d	_LEDMOD		LED モードの設定
$0e	_TGUSEMD	画面の使用状態の設定
$0f	_DEFCHR		外字定義
$10	_CRTMOD		CRT モード設定
$11	_CONTRAST	コントラスト設定
$12	_HSVTORGB	HSV→RGB 変換
$13	_TPALET		テキストパレット設定
$14	_TPALET2	テキストパレット独立設定
$15	_TCOLOR		テキストプレーン指定
$16	_FNTADR		フォントアドレスの収得
$17	_VRAMGET	テキスト VRAM のバイト単位読み込み
$18	_VRAMPUT	テキスト VRAM のバイト単位書き込み
$19	_FNTGET		フォント読み込み
$1a	_TEXTGET	テキスト VRAM のドット単位読み込み
$1b	_TEXTPUT	テキスト VRAM のドット単位書き込み
$1c	_CLIPPUT	テキスト VRAM のドット単位書き込み(クリッピング処理あり)
$1d	_SCROLL		表示座標の設定
$1e	_B_CURON	カーソル一時停止解除
$1f	_B_CUROFF	カーソル一時停止
$20	_B_PUTC		文字表示
$21	_B_PRINT	文字列表示
$22	_B_COLOR	表示色設定
$23	_B_LOCATE	カーソル移動
$24	_B_DOWN_S	カーソルを 1 行下に移動
$25	_B_UP_S		カーソルを 1 行上に移動
$26	_B_UP		カーソルを指定行数だけ上に移動
$27	_B_DOWN		カーソルを指定行数だけ下に移動
$28	_B_RIGHT	カーソルを指定桁数だけ右に移動
$29	_B_LEFT		カーソルを指定桁数だけ左に移動
$2a	_B_CLR_ST	画面の複数行消去
$2b	_B_ERA_ST	現在行の複数桁消去
$2c	_B_INS		複数行挿入
$2d	_B_DEL		複数行削除
$2e	_B_CONSOL	表示範囲設定
$2f	_B_PUTMES	座標指定文字列表示
$30	_SET232C	RS-232C パラメータ設定
$31	_LOF232C	RS-232C 受信バッファのデータ数を求める
$32	_INP232C	RS-232C 受信データを得る
$33	_ISNS232C	RS-232C 受信データの検査
$34	_OSNS232C	RS-232C データが送信可能か検査する
$35	_OUT232C	RS-232C データ送信
$36	(未公開)	マウスデータ受信時の処理アドレス設定
$37	(未公開)	ESC[>系エスケープシーケンスの拡張処理アドレス設定
$38	_SETFNTADR	外字フォントアドレス設定
$39	(未公開)	BEEP音用PCMのデータ設定
$3a	(未公開)	プリンタパラメータ設定
$3b	_JOYGET		ジョイスティック入力
$3c	_INIT_PRN	プリンタ初期化
$3d	_SNSPRN		プリンタに出力可能か検査する
$3e	_OUTLPT		プリンタ直接出力
$3f	_OUTPRN		プリンタ出力
$40	_B_SEEK		ディスクのシーク
$41	_B_VERIFY	ディスクのベリファイ
$42	_B_READDI	ディスクの診断の為の読み出し
$43	_B_DSKINI	ドライブの初期化
$44	_B_DRVSNS	ドライブの状態検査
$45	_B_WRITE	ディスクへの書き込み
$46	_B_READ		ディスクからの読み込み
$47	_B_RECALI	ディスクのリキャリブレイト
$48	_B_ASSIGN	ハードディスクの代替トラック設定
$49	_B_WRITED	2HD への破損データ書き込み
$4a	_B_READID	2HD の ID 情報の読み出し
$4b	_B_BADFMT	ハードディスクの破損トラックを使用不能にする
$4c	_B_READDL	2HD からの破損データ読み込み
$4d	_B_FORMAT	ディスクのフォーマット
$4e	_B_DRVCHK	2HD ドライブの状態設定
$4f	_B_EJECT	ディスクのイジェクト/シッピング
$50	_DATEBCD	日付データのバイナリ→BCD 変換
$51	_DATESET	日付の設定
$52	_TIMEBCD	時刻データのバイナリ→BCD 変換
$53	_TIMESET	時刻の設定
$54	_DATEGET	日付の読み込み
$55	_DATEBIN	日付データの BCD→バイナリ変換
$56	_TIMEGET	時刻の読み込み
$57	_TIMEBIN	時刻データの BCD→バイナリ変換
$58	_DATECNV	日付データの文字列→バイナリ変換
$59	_TIMECNV	時刻データの文字列→バイナリ変換
$5a	_DATEASC	日付データのバイナリ→文字列変換
$5b	_TIMEASC	時刻データのバイナリ→文字列変換
$5c	_DAYASC		曜日データのバイナリ→文字列変換
$5d	_ALARMMOD	アラーム許可/禁止
$5e	_ALARMSET	アラーム設定
$5f	_ALARMGET	アラームの設定状態を収得
$60	_ADPCMOUT	ADPCM 出力
$61	_ADPCMINP	ADPCM 入力
$62	_ADPCMAOT	ADPCM 出力(アレイチェーン)
$63	_ADPCMAIN	ADPCM 入力(アレイチェーン)
$64	_ADPCMLOT	ADPCM 出力(リンクアレイチェーン)
$65	_ADPCMLIN	ADPCM 入力(リンクアレイチェーン)
$66	_ADPCMSNS	ADPCM 状態検査
$67	_ADPCMMOD	ADPCM 実行制御
$68	_OPMSET		OPM レジスタ設定
$69	_OPMSNS		OPM 状態検査
$6a	_OPMINTST	OPM 割り込み設定
$6b	_TIMERDST	Timer-D 割り込み設定
$6c	_VDISPST	垂直同期割り込み設定
$6d	_CRTCRAS	ラスター割り込み設定
$6e	_HSYNCST	水平同期割り込み設定
$6f	_PRNINTST	プリンタ割り込み設定
$70	_MS_INIT	マウス初期化
$71	_MS_CURON	マウスカーソル表示
$72	_MS_CUROF	マウスカーソル消去
$73	_MS_STAT	マウスカーソルの表示状態を調べる
$74	_MS_GETDT	マウス移動量/ボタン状態を調べる
$75	_MS_CURGT	マウスカーソルの座標収得
$76	_MS_CURST	マウスカーソルの座標設定
$77	_MS_LIMIT	マウスカーソルの移動範囲設定
$78	_MS_OFFTM	マウスのボタンを離すまでの時間を調べる
$79	_MS_ONTM	マウスのボタンを押すまでの時間を調べる
$7a	_MS_PATST	マウスカーソルのパターン定義
$7b	_MS_SEL		マウスカーソルのパターン選択
$7c	_MS_SEL2	マウスカーソルのアニメーション
$7d	_SKEY_MOD	ソフトキーボード制御
$7e	_DENSNS		電卓制御
$7f	_ONTIME		起動後の経過時間を調べる
$80	_B_INTVCS	ベクタ設定
$81	_B_SUPER	スーパーバイザ/ユーザモードの切り換え
$82	_B_BPEEK	指定アドレスから 1 バイト読み込み
$83	_B_WPEEK	指定アドレスから 1 ワード読み込み
$84	_B_LPEEK	指定アドレスから 1 ロングワード読み込み
$85	_B_MEMSTR	指定アドレスから複数バイト読み込み
$86	_B_BPOKE	指定アドレスヘ 1 バイト書き込み
$87	_B_WPOKE	指定アドレスヘ 1 ワード書き込み
$88	_B_LPOKE	指定アドレスヘ 1 ロングワード書き込み
$89	_B_MEMSET	指定アドレスヘ複数バイト書き込み
$8a	_DMAMOVE	DMA 転送
$8b	_DMAMOV_A	DMA 転送(アレイチェーン)
$8c	_DMAMOV_L	DMA 転送(リンクアレイチェーン)
$8d	_DMAMODE	DMA 状態検査
$8e	_BOOTINF	起動情報を得る
$8f	_ROMVER		ROM バージョンを得る
$90	_G_CLR_ON	グラフィック画面の初期化及び表示モードの設定
$91	(未公開)	グラフィック画面モードの設定
$92	(未公開)	プライオリティ設定
$93	(未公開)	画面表示及び特殊モードの設定
$94	_GPALET		グラフィックパレット設定
$95	(未公開)	カラーコード設定
$96	(未公開)	アクセスページ設定
$97	(未公開)	グラフィック VRAM のドット単位読み込み
$98	(未公開)	グラフィック VRAM のドット単位書き込み(色マスクあり)
$99	(未公開)	グラフィック VRAM のドット単位書き込み
$9a	(未公開)	グラフィック VRAM のビットパターン書き込み
$9b	(未公開)	グラフィック VRAM のビットパターン書き込み(バックカラーあり)
$9c	(未公開)	グラフィック VRAM のビットパターン拡大書き込み
$a0	_SFTJIS		S-JIS→JIS コード変換
$a1	_JISSFT		JIS→S-JIS コード変換
$a2	_AKCONV		ANK→S-JIS コード変換
$a3	_RMACNV		ローマ字→ANK カナ変換
$a4	_DAKJOB		濁点処理
$a5	_HANJOB		半濁点処理
$ac	_SYS_STAT	システム状態の設定
$ad	_B_CONMOD	カーソルおよびスクロールの設定
$ae	_OS_CURON	カーソル表示
$af	_OS_CUROF	カーソル消去
$b0	_DRAWMODE	グラフィック描画モードの設定
$b1	_APAGE		グラフィック描画ページの設定
$b2	_VPAGE		グラフィック画面表示ページの設定
$b3	_HOME		グラフィック画面の表示位置設定
$b4	_WINDOW		グラフィック描画ウィンドウの設定
$b5	_WIPE		グラフィック画面のクリア
$b6	_PSET		グラフィック画面のポイントセット
$b7	_POINT		グラフィック画面のポイントゲット
$b8	_LINE		グラフィック画面のライン
$b9	_BOX		グラフィック画面のボックス
$ba	_FILL		グラフィック画面のボックスフィル
$bb	_CIRCLE		グラフィック画面のサークル
$bc	_PAINT		グラフィック画面のペイント
$bd	_SYMBOL		グラフィック画面のシンボル
$be	_GETGRM		グラフィック画面のドット単位読み込み
$bf	_PUTGRM		グラフィック画面のドット単位書き込み
$c0	_SP_INIT	スプライト初期化
$c1	_SP_ON		スプライト表示
$c2	_SP_OFF		スプライト消去
$c3	_SP_CGCLR	スプライトパターンのクリア
$c4	_SP_DEFCG	スプライトパターンの定義
$c5	_SP_GTPCG	スプライトパターンの読み込み
$c6	_SP_REGST	スプライトレジスタの設定
$c7	_SP_REGGT	スプライトレジスタの読み出し
$c8	_BGSCRLST	バックグラウンドスクロールレジスタの設定
$c9	_BGSCRLGT	バックグラウンドスクロールレジスタの読み出し
$ca	_BGCTRLST	バックグラウンドコントロールレジスタの設定
$cb	_BGCTRLGT	バックグラウンドコントロールレジスタの読み出し
$cc	_BGTEXTCL	バックグラウンドテキストのクリア
$cd	_BGTEXTST	バックグラウンドテキストの設定
$ce	_BGTEXTGT	バックグラウンドテキストの読み出し
$cf	_SPALET		スプライトパレットの設定
$d3	_TXXLINE	テキスト画面の水平ライン
$d4	_TXYLINE	テキスト画面の垂直ライン
$d5	_TXLINE		テキスト画面のライン
$d6	_TXBOX		テキスト画面のボックス
$d7	_TXFILL		テキスト画面のボックスフィル
$d8	_TXREV		テキスト画面の反転
$df	_TXRASCPY	テキスト画面のラスターコピー
$f0	_OPMDRV		OPMDRV 制御
$f1	_RSDRV		拡張 RS-232C 制御
$f2	_A_JOYGET	アナログジョイスティック制御
$f3	_MUSICDRV	MUSICDRV 制御
$f5	_SCSIDRV	SCSI IOCS
$fd	_ABORTRST	アボートする為に環境を再設定する
$fe	_IPLERR		再起動する
$ff	_ABORTJOB	アボート

==============================================================================

・キーのスキャンコード

キーコード	キー入力状態ビット
 グループ	7	6	5	4	3	2	1	0

	0	6&	5%	4$	3#	2"	1!	ESC
	1	BS	\|	^~	-=	0	9)	8(	7'
	2	U	Y	T	R	E	W	Q	TAB
	3	S	A	CR	[{	@`	P	O	I
	4	;+	L	K	J	H	G	F	D
	5	N	B	V	C	X	Z	]}	:*
	6	DEL	HOME	SPACE	_	/?	.>	,<	M
	7	CLR	↓	→	↑	←	UNDO	R_DOWN	R_UP
	8	4	+	9	8	7	-	*	/
	9	0	ENTER	3	2	1	=	6	5
	a	XF3	XF2	XF1	HELP	登録	記号	.	,
	b	ひら	INS	CAPS	コード	ロ-マ字	かな	XF5	XF4
	c	F4	F3	F2	F1	F0	COPY	BREAK	全角
	d				F9	F8	F7	F6	F5
	e					OPT.2	OPT.1	CTRL	SHIFT

	スキャンコード = キーコードグループ×8+キー入力状態ビット

          10:TAB    20:D      30:M      40:/      50:,      60:全角   70:SHIFT
01:ESC    11:Q      21:F      31:,<     41:*      51:.      61:BREAK  71:CTRL
02:1!     12:W      22:G      32:.>     42:-      52:記号   62:COPY   72:OPT.1
03:2"     13:E      23:H      33:/?     43:7      53:登録   63:F0     73:OPT.2
04:3#     14:R      24:J      34:_      44:8      54:HELP   64:F1
05:4$     15:T      25:K      35:SPACE  45:9      55:XF1    65:F2
06:5%     16:Y      26:L      36:HOME   46:+      56:XF2    66:F3
07:6&     17:U      27:;+     37:DEL    47:4      57:XF3    67:F4
08:7'     18:I      28::*     38:R_UP   48:5      58:XF4    68:F5
09:8(     19:O      29:]}     39:R_DOWN 49:6      59:XF5    69:F6
0a:9)     1a:P      2a:Z      3a:UNDO   4a:=      5a:かな   6a:F7
0b:0      1b:@`     2b:X      3b:←     4b:1      5b:ロ-マ字  6b:F8
0c:-=     1c:[{     2c:C      3c:↑     4c:2      5c:コ-ド   6c:F9
0d:^~     1d:CR     2d:V      3d:→     4d:3      5d:CAPS
0e:\|     1e:A      2e:B      3e:↓     4e:ENTER  5e:INS
0f:BS     1f:S      2f:N      3f:CLR    4f:0      5f:ひらがな

==============================================================================

==============================================================================

$00	_B_KEYINP	キーデータの読み込み

返値	キーデータ
	d0.hb	スキャンコード
	d0.b	ASCII コード

	キーデータを読み込む. キーが入力されていなければ入力されるまで待つ.
	SHIFT,CTRL,OPT.1,OPT.2 については、離した時にもスキャンコードに $80 を
	足した値を返す.
	ASCII コードは SHIFT,CTRL,かな,CAPS により変化し、また ASCII 文字が定義
	されていない場合は 0 になる.
	通常テレビコントロールに割り当てられているキーは入力されないが、押し下げ
	状態には反映される.

==============================================================================

$01	_B_KEYSNS	キーの入力検査

返値	d0.l =	0	キー入力なし
		$1_????	〃	あり($???? はキーデータ)

	キーが入力されているか調べる. キーデータバッファの内容は変化しない.

==============================================================================

$02	_B_SFTSNS	シフトキー状態の収得

返値	d0.l	シフトキーの状態
		bit 14	全角
		bit 13	ひらがな
		bit 12	INS
		bit 11	CAPS
		bit 10	コード入力
		bit  9	ローマ字
		bit  8	かな

		bit  7	CAPS
		bit  6	コード入力
		bit  5	ローマ字
		bit  4	かな
		bit  3	OPT.2
		bit  2	OPT.1
		bit  1	CTRL
		bit  0	SHIFT

		bit 7~0 はキーが実際に押されている(1)か押されていない(0)か、
		bit 14~8 は LED が点灯(1)しているか消灯(0)しているかを表す.

	シフトキーの状態を調べる.

==============================================================================

$03	_KEY_INIT	入力関係の初期化

引数	d1.b	LED キーモード初期値

	キーボードバッファをクリアし、LED モードを初期化する. この IOCS コール
	は ROM 起動時に使用されるので、一般のアプリケーションからは使用禁止.
	ROM IOCS では、ショートカットで呼び出すと割り込みが全て許可された状態
	で帰るので注意すること.

==============================================================================

$04	_BITSNS		キー状態の収得

引数	d1.w	キーコードグループ(0~$f)

返値	d0.b	キーの押し下げ状態

	指定したキーコードグループに含まれるキーの押し下げ状態をビット単位で
	調べる. 対応するビットが 1 でキーが押されていることを示す.

==============================================================================

$05	_SKEYSET	キー入力の発生

引数	d1.l	スキャンコード
		bit 7		0:キーを押す	1:キーを離す
		bit 6~0	スキャンコード

	指定したキーの入力をソフト的に発生させる.

==============================================================================

$06	_LEDCTRL	キーボード LED の設定

引数	d1.b	キーボード LED 状態
		bit 6	全角
		bit 5	ひらがな
		bit 4	INS
		bit 3	CAPS
		bit 2	コード入力
		bit 1	ローマ字
		bit 0	かな

	キーボード LED のモードを設定する. キー入力モードは変更されない.

==============================================================================

$07	_LEDSET		キーボード LED をキー入力モードに合わせる

	キーボード LED のモードをキー入力モードに合わせる.

==============================================================================

$08	_KEYDLY		キーリピートの開始時間設定

引数	d1.b	キーリピート開始時間(0~15)

	キーリピート開始までの時間を (200+100×d1.b)ms に設定する.

==============================================================================

$09	_KEYREP		キーリピートの間隔設定

引数	d1.b	キーリピート間隔(0~15)

	キーリピートの間隔を (30+5×d1.b・)ms に設定する.

==============================================================================

$0a	(未公開)	OPT.2 によるテレビコントロール許可

	OPT.2 によるテレビコントロールを許可する.
	ROM IOCS では、d0.b に $0a がセットされた状態で呼び出さないと正常動作
	しないので注意すること.

==============================================================================

$0b	(未公開)	OPT.2 によるテレビコントロール禁止

	OPT.2 によるテレビコントロールを禁止する.
	ROM IOCS では、d0.b に $0b がセットされた状態で呼び出さないと正常動作
	しないので注意すること.

==============================================================================

$0c	_TVCTRL		テレビコントロール

引数	d1.l	テレビコントロールコード
		d1.l =	 $01	ボリュームアップ
			 $02	〃	  ダウン
			 $03	〃	  標準
			 $04	チャンネルコール
			 $05	テレビ画面(リセット)
			 $06	音声ミュート
			 $07	電源オン
			 $08	テレビ/コンピュータ画面切り替え
			 $09	テレビ/外部入力の切り替え若しくはコンピュータ表示モードの変更
			 $0a	コントラスト標準
			 $0b	チャンネルアップ
			 $0c	〃	  ダウン
			 $0d	電源オフ
			 $0e	電源オン/オフ切り替え
			 $0f	スーパーインポーズ及びコントラストダウン/標準切り替え
			 $10	チャンネル 1
			 $11	〃	   2
			 $12	〃	   3
			 $13	〃	   4
			 $14	〃	   5
			 $15	〃	   6
			 $16	〃	   7
			 $17	〃	   8
			 $18	〃	   9
			 $19	〃	  10
			 $1a	〃	  11
			 $1b	〃	  12
			 $1c	テレビ画面($05)
			 $1d	コンピュータ画面($05+$08)
			 $1e	スーパーインポーズ及びコントラストダウン($05+$0f)
			 $1f	スーパーインポーズ及びコントラスト標準($05+$0f+$0a)
			+$20	電源オン($07)後、上記の機能を実行

返値	d1.w は破壊される.

	ディスプレイを制御する.

==============================================================================

$0d	_LEDMOD		LED モードの設定

引数	d1.l	LED キーの番号
		d1.l =	0	かな
			1	ローマ字
			2	コード入力
			3	CAPS
			4	INS
			5	ひらがな
			6	全角
	d2.b	ON/OFF の指定(0:OFF 1:ON)

返値	d0.l =	0	正常終了
		-1	エラー(キー番号が大きすぎる)

	キーボード LED とキー入力モードを設定する.

==============================================================================

$0e	_TGUSEMD	画面の使用状態の設定

引数	d1.b	グラフィック/テキスト画面の指定
		d1.b =	0	グラフィック画面($c00000~$dfffff)
			1	テキスト画面	($e40000~$e7ffff)
	d2.b	画面の使用状態
		d2.b =	0	未使用
			1	システムで使用中(ソフトキーボード/電卓)
			2	アプリケーションで使用中(RAMDISK等)
			3	破壊
			-1	現在の使用状態を調べる.

返値	変更前の使用状態(-1 なら画面の指定が異常)

	グラフィック/テキスト画面の使用状態を設定する.
	テキストの使用状態を 2 にすると、ソフトキーボード/電卓が消去され、以後
	マウスカーソル/ソフトキーボード/電卓が新たに表示出来なくなる.

==============================================================================

$0f	_DEFCHR		外字定義

引数	d1.hw	パターンの大きさ
		d1.hw =	8	 8x16,16x16ドット
			12	12x24,24x24〃
	d1.w	漢字コード(Shift-JIS/JIS)
	a1.l	パターンアドレス

返値	d0.l =	0	正常終了
		-1	エラー(指定の漢字コードは外字ではない)

	外字を設定する.
	指定できる漢字コードは、全角 $eb9f~$ebfc(JIS:$7621~$767e) 及び
	$ec40~$ec7e($7721~777e)、半角 $f400~$f5ff.
	CONDRV.SYS 及び HIOCS.X 常駐時には、d1.l = 0 でカーソルの形状を設定し、
	d1.l = -1 で元に戻す. また、d1.l = $ffff で CONDRV.SYS の
	バックスクロールウィンドウ内のカーソル形状を設定する.

==============================================================================

$10	_CRTMOD		CRT モード設定

引数	d1.w	CRT モード
				実画面	  表示画面	色数	枚数	kHz
		d1.w =	 0	1024	 512 x 512	16	1	31
			 1	〃		〃	〃	〃	15
			 2	〃	 256 x 256	〃	〃	31
			 3	〃		〃	〃	〃	15
			 4	512	 512 x 512	16	4	31
			 5	〃		〃	〃	〃	15
			 6	〃	 256 x 256	〃	〃	31
			 7	〃		〃	〃	〃	15
			 8	〃	 512 x 512	256	2	31
			 9	〃		〃	〃	〃	15
			10	〃	 256 x 256	〃	〃	31
			11	〃		〃	〃	〃	15
			12	〃	 512 x 512	65536	1	31
			13	〃		〃	〃	〃	15
			14	〃	 256 x 256	〃	〃	31
			15	〃		〃	〃	〃	15
			16	1024	 768 x 512	16	1	31
			17	〃	1024 x 424	〃	〃	24
			18	〃	1024 x 848	〃	〃	24

			19	〃	 640 x 480	〃	〃	24

			20	〃	 768 x 512	256	2	31
			21	〃	1024 x 848	〃	〃	24
			22	〃	1024 x 424	〃	〃	24
			23	〃	 640 x 480	〃	〃	24
			24	〃	 768 x 512	65536	1	31
			25	〃	1024 x 848	〃	〃	24
			26	〃	1024 x 424	〃	〃	24
			27	〃	 640 x 480	〃	〃	24
			+$100	モードの切り換えのみ行なう
			-1	現在のモードを調べる

返値	d1.w = -1 の時、現在のモード(0~19)

	CRT モードを設定する. テキスト画面のプレーン 0/1 をクリアして表示モード
	に、グラフィック画面とスプライト画面はクリアせずに無表示モードにする.
	テキストパレットは初期化される.
	d1.w = 19 の 640 x 480 のモードは ROM IOCS version 1.2 以上で使用可能.
	d1.w = 20~27 は表示画面サイズより小さい実画面のグラフィックを表示する
	モードで、ROM IOCS version 1.3 だけで使用可能(ハードウェア的には全機種
	とも実現可能).

==============================================================================

$11	_CONTRAST	コントラスト設定

引数	d1.b	コントラスト
		d1.b =	0~15	コントラストを設定する
			-1	コントラストを調べる
			-2	システム設定値に戻す

返値	変更前のコントラスト

	コントラストを設定する.

==============================================================================

$12	_HSVTORGB	HSV→RGB 変換

引数	d1.l	HSV データ
		%iiif_ffff_000s_ssss_000v_vvvv
		bit 23~21	色相
			%000	赤	~黄色
			%001	黄色	~緑
			%010	緑	~シアン
			%011	シアン	~青
			%100	青	~マゼンダ
			%101	マゼンダ~赤
			%110	禁止
			%111	〃
		bit 20~16	色相(色合)
		bit 12~ 8	彩度(0:白 $1f:原色)
		bit  4~ 0	明度(0:黒 $1f:原色)

返値	RGB データ(輝度ビットは常に 0)
		%gggg_grrr_rrbb_bbb0
		bit 15~11	緑成分
		bit 10~ 6	赤〃
		bit  5~ 1	青〃
	ただし、色相が異常な場合は -1 が返る.

	HSV 方式による色データを RGB 方式に変換する.
	HSV 方式は、色相/彩度/明度による色の指定方法.

==============================================================================

$13	_TPALET		テキストパレット設定

引数	d1.b	パレットコード(0~15)
		d1.b =	0	テキストカラー		0
			1	〃			1
			2	〃			2
			3	〃			3
			4~7	ソフトキーボード/電卓	0
			8~15	〃			1
	d2.l	カラーコード
		d2.l =	0~$ffff  カラーコードを設定
			-1	カラーコードを調べる
			-2	システム設定値に戻す

返値	ステータス(d2.l = -1 の時はカラーコード)
	d0.l =	 0	正常終了
		-1	カラーコードが異常

	テキストパレットにカラーコードを設定する. パレットに 4~7,8~15 を指定
	した時は、それらの全てに同じカラーコードが設定される.

==============================================================================

$14	_TPALET2	テキストパレット独立設定

引数	d1.b	パレットコード(0~15)
	d2.l	カラーコード
		d2.l =	0~$ffff  カラーコードを設定
			-1	カラーコードを調べる

返値	ステータス(d2.l = -1 の時はカラーコード)
	d0.l =	 0	正常終了
		-1	カラーコードが異常

	テキストパレットにカラーコードを設定する.
	IOCS TPALET($13) とは違い、パレットごとに独立して設定出来る.

==============================================================================

$15	_TCOLOR		テキストプレーン指定

引数	d1.b	アクセスプレーンの指定
		d1.b =	%???1	プレーン 0
			%??10	〃	 1
			%?100	〃	 2
			%1000	〃	 3
			%0000	〃	 0

返値	d1.w は破壊される.

	IOCS TEXTGET($1a),TEXTPUT($1b),CLIPPUT($1c) でアクセスされるテキスト
	プレーンを設定する. 使用後はプレーン 0 を設定しなければならないが、0
	以外のままの場合、その他の IOCS コールの動作は保証されない.

==============================================================================

$16	_FNTADR		フォントアドレスの収得

引数	d1.w	漢字コード(Shift-JIS/JIS)
	d2.b	パターンの大きさ
		d2.b =	6	 6x12,12x12ドット
			8	 8x16,16x16〃
			12	12x24,24x24〃

返値	d0.l	パターンアドレス
	d1.hw	パターンの X 方向のドット数
	d1.w	パターンの X 方向のバイト数-1
	d2.w	〃	   Y	〃 ドット数-1

	指定の文字フォントのアドレスを調べる.
	得られたアドレスはスーパーバイザ領域の可能性がある.
	それぞれの文字は文字コードの順に連続的に配置されているとは限らない.
	外字、12ドット文字はいつまでもパターンデータが残っているとは限らない.
	この IOCS コールはシステムで使用するので、一般のアプリケーションからは
	使用しないこと.
	なお、ROM IOCS version 1.3 及び HIOCS.X では d2.b = 0 の場合 8 が指定
	されたものと扱うが、それ以外だと動作が違うので注意すること.

==============================================================================

$17	_VRAMGET	テキスト VRAM のバイト単位読み込み

引数	d1.w	バッファの X 方向のバイト数-1
	d2.w	〃	   Y	〃 ドット数-1
	d3.l	(VRAM の X 方向-バッファの X 方向)のバイト数
	a1.l	バッファのアドレス
	a2.l	VRAM	〃

返値	d0/d1/d2/a1/a2 は内容が保証されない.

	VRAM からバッファにバイト単位で読み込む.
	VRAM にテキスト画面を指定する場合は、VRAM の X 方向のバイト数は 128 バ
	イトとなる.

==============================================================================

$18	_VRAMPUT	テキスト VRAM のバイト単位書き込み

引数	d1.w	バッファの X 方向のバイト数-1
	d2.w	〃	   Y	〃 ドット数-1
	d3.l	(VRAM の X 方向-バッファの X 方向)のバイト数
	a1.l	バッファのアドレス
	a2.l	VRAM	〃

返値	d0/d1/d2/a1/a2 は内容が保証されない.

	バッファから VRAM にバイト単位で書き込む.
	VRAM にテキスト画面を指定する場合は、VRAM の X 方向のバイト数は 128 バ
	イトとなる.

==============================================================================

$19	_FNTGET		フォント読み込み

引数	d1.hw	パターンの大きさ
		d1.hw =	6	 6x12,12x12ドット
			0,8	 8x16,16x16〃
			12	12x24,24x24〃
	d1.w	漢字コード(Shift-JIS/JIS)
	a1.l	データバッファのアドレス(4+フォントサイズ分のバイト数が必要)
		(0,a1)	パターンの X 方向のドット数
		(2,a1)		   Y 〃
		(4,a1)	(パターンデータ)

返値	パターンの存在するアドレス(転送元)

	指定の文字フォントを読み込む.

==============================================================================

$1a	_TEXTGET	テキスト VRAM のドット単位読み込み

引数	d1.w	X 座標
	d2.w	Y 座標
	a1.l	データバッファのアドレス
		(0,a1)	パターンの X 方向のドット数
		(2,a1)		   Y 〃
		(4,a1)	(パターンデータ)

	テキスト VRAM からドット単位で読み込む.

==============================================================================

$1b	_TEXTPUT	テキスト VRAM のドット単位書き込み

引数	d1.w	X 座標
	d2.w	Y 座標
	a1.l	データバッファのアドレス
		(0,a1)	パターンの X 方向のドット数
		(2,a1)		   Y 〃
		(4,a1)	パターンデータ

	テキスト VRAM へドット単位で書き込む.

==============================================================================

$1c	_CLIPPUT	テキスト VRAM のドット単位書き込み(クリッピング処理あり)

引数	d1.w	X 座標
	d2.w	Y 座標
	a1.l	データバッファのアドレス
		(0,a1)	パターンの X 方向のドット数
		(2,a1)		   Y 〃
		(4,a1)	パターンデータ
	a2.l	クリッピング座標バッファのアドレス
		(0,a2)	左端 X 座標
		(2,a2)	上端 Y 〃
		(4,a2)	右端 X 〃
		(6,a2)	下端 Y 〃

	クリッピング処理をしながら、テキスト VRAM へドット単位で書き込む.

==============================================================================

$1d	_SCROLL		表示座標の設定

引数	d1.w	動作の指定
		d1.w =	0	グラフィックページ 0 の設定
			1		〃	   1 〃
			2		〃	   2 〃
			3		〃	   3 〃
			4		〃	   0 の表示座標の収得のみ
			5		〃	   1 〃
			6		〃	   2 〃
			7		〃	   3 〃
			8	テキストの設定
			9		〃表示座標の収得のみ
	d2.w	X 座標(設定時)
	d3.w	Y 〃

返値	変更前の表示座標
	d0.hw	X 座標
	d0.lw	Y 〃

	グラフィック及びテキストの表示座標を設定する.
	テキスト画面の X 座標を、表示画面が実画面からはみ出る位置に設定すると
	表示が乱れる.
	通常、変更前の表示座標はハードウェアの仕様により常に 0 が返る.

==============================================================================

$1e	_B_CURON	カーソル一時停止解除

	カーソルの表示の一時停止を解除する.

==============================================================================

$1f	_B_CUROFF	カーソル一時停止

	カーソルの表示を一時停止する.

==============================================================================

$20	_B_PUTC		文字表示

引数	d1.w	文字コード

返値	表示後のカーソル位置
	d0.hw	桁位置
	d0.w	行〃

	文字を表示する.
	漢字を表示する場合、第 1/第 2 バイトを 2 回に分けてもかまわない.
	画面の右端で半角 1 文字しか表示出来ない時に全角文字を表示しようとした
	場合、半角スペースを表示して改行してから全角文字を表示する.

==============================================================================

$21	_B_PRINT	文字列表示

引数	a1.l	文字列のアドレス

返値	d0.l	表示後のカーソル位置
		d0.hw	桁位置
		d0.w	行〃
	a1.l	文字列終端の 0 のアドレス

	文字列を表示する.

==============================================================================

$22	_B_COLOR	表示色設定

引数	d1.w	表示属性
	d1.w =	  0	テキストパレット 0 (通常黒)
		  1		〃	 1 (〃	水色)
		  2		〃	 2 (〃	黄色)
		  3		〃	 3 (〃	白)
		+ 4	    強調
		+ 8	逆転
		+12	逆転強調
		 -1	属性を調べる

返値	d0.b	変更前の表示属性(負数なら表示属性の指定が異常)

	IOCS B_PUTC($20),B_PRINT($21) で表示する文字の属性を設定する.

==============================================================================

$23	_B_LOCATE	カーソル移動

引数	d1.w	桁位置(ただし、d1.w = -1 の時カーソル位置の収得のみ)
	d2.w	行〃

返値	移動前のカーソル位置(-1 ならカーソル位置の指定が異常)
	d0.hw	桁位置
	d0.w	行〃

	カーソルを指定位置に移動する.
	ROM IOCS version 1.3 では、座標収得時のみ d1.l に d0.l と同じ値が返る.

==============================================================================

$24	_B_DOWN_S	カーソルを 1 行下に移動

返値	常に 0

	カーソルを 1 行下に移動する.
	カーソルが最下行にある場合はスクロールアップする.

==============================================================================

$25	_B_UP_S		カーソルを 1 行下に移動

返値	常に 0

	カーソルを 1 行上に移動する.
	カーソルが先頭行にある場合はスクロールダウンする.

==============================================================================

$26	_B_UP		カーソルを指定行数だけ上に移動

引数	d1.b	移動行数(0 の時は 1 と見なします)

返値	常に 0

	カーソルを指定行上に移動する.
	指定行数だけ移動出来ない場合は移動しない.
	ROM IOCS version 1.3 では、移動した場合に 0、移動しなかった場合には -1
	を返す.

==============================================================================

$27	_B_DOWN		カーソルを指定行数だけ下に移動

引数	d1.b	移動行数(0 の時は 1 と見なします)

返値	常に 0

	カーソルを指定行下に移動する.
	指定行数だけ移動出来ない場合は最下行まで移動する.

==============================================================================

$28	_B_RIGHT	カーソルを指定桁数だけ右に移動

引数	d1.b	移動桁数(0 の時は 1 と見なします)

返値	常に 0

	カーソルを指定桁右に移動する.
	指定桁数だけ移動出来ない場合は右端まで移動する.

==============================================================================

$29	_B_LEFT		カーソルを指定桁数だけ左に移動

引数	d1.b	移動桁数(0 の時は 1 と見なします)

返値	常に 0

	カーソルを指定桁左に移動する.
	指定桁数だけ移動出来ない場合は左端まで移動する.

==============================================================================

$2a	_B_CLR_ST	画面の複数行消去

引数	d1.b	消去範囲の指定
		d1.b =	0	カーソル位置から最終行右端まで
			1	先頭行左端からカーソル位置まで
			2	画面全体(消去後カーソルは先頭行左端に移動します)

	範囲を指定して画面の複数行を消去する.

==============================================================================

$2b	_B_ERA_ST	現在行の複数桁消去

引数	d1.b	消去範囲の指定
		d1.b =	0	カーソル位置から右端まで
			1	左端からカーソル位置まで
			2	カーソル行全体

返値	d0.l =	0	正常終了
		その他	異常終了(範囲指定若しくはカーソル位置が異常)

	範囲を指定してカーソル行の複数桁を消去する.
	異常終了した時の返値は通常 -1 だが、ROM IOCS version 1.3 未満でかつカ
	ーソル位置が原因の場合は不定である.

==============================================================================

$2c	_B_INS		複数行挿入

引数	d1.b	挿入行数(0 の時は 1 と見なします)

返値	常に 0

	カーソル位置に複数行挿入する. カーソル行以下の行はスクロールする.
	カーソルは左端に移動する.
	ROM IOCS version 1.3 未満では引数の d1.w の上位バイトを 0 にしておかな
	いと正常に動作しないので注意すること.

==============================================================================

$2d	_B_DEL		複数行削除

引数	d1.b	削除行数(0 の時は 1 と見なします)

返値	常に 0

	カーソル位置から複数行削除する. カーソル行以下の行はスクロールする.
	ROM IOCS version 1.3 未満では引数の d1.w の上位バイトを 0 にしておかな
	いと正常に動作しないので注意すること.

==============================================================================

$2e	_B_CONSOL	表示範囲設定

引数	d1.l	表示開始位置(d1.l = -1 の時変更しません)
		d1.hw	X 方向の表示開始ドット位置(16の倍数で1008以下)
		d1.w	Y	〃		  ( 4	〃   1020 〃 )
	d2.l	表示範囲(d2.l = -1 の時変更しません)
		d2.hw	X 方向の表示桁数-1(0~127)
		d2.w	Y	〃  行数-1(0~ 63)

返値	d0.l	常に 0
	d1.l	変更前の表示開始オフセット(X/8+Y*128)
	d2.l	〃	表示範囲

	テキスト画面の表示範囲を設定する. カーソルは先頭行左端に移動する.
	IOCS $20~$2d で扱う座標は設定した表示範囲の左上が(0,0)となり、表示
	範囲内に影響する. ただし、スクロール/画面クリアは表示範囲外の桁に
	影響が出る. 表示範囲だけスクロールさせるには IOCS B_CONMOD($ad) の
	モード 18:ソストコピースクロールを指定する.
	IOCS.X 組み込み時は引数の d1.hw に 8 の倍数を指定出来るが、ROM IOCS
	version 1.3 未満で 8 の倍数を指定するとアドレスエラーが発生する.

==============================================================================

$2f	_B_PUTMES	座標指定文字列表示

引数	d1.b	表示属性
	d1.b =	  0	テキストパレット 0 (通常黒)
		  1		〃	 1 (〃	水色)
		  2		〃	 2 (〃	黄色)
		  3		〃	 3 (〃	白)
		+ 4	    強調
		+ 8	逆転
		+12	逆転強調
	d2.w	表示桁位置(絶対座標:0~127)
	d3.w	表示行位置(絶対座標:0~ 63)
	d4.w	表示桁数-1
	a1.l	表示文字列のアドレス

返値	d0.l	不定(内容は保証されない)
	d2.w	表示後の桁位置
	d4.w	不定(内容は保証されない)
	a1.l	文字列の終端のアドレス(指定した文字列が表示桁数より長ければ、
		最後に表示した文字の次のアドレス)

	指定した絶対座標から文字列を直接表示する. ファンクションキー行表示用で、
	IOCS B_CONSOL($2e) の影響を受けない.
	桁数以上は表示しない(全角文字が表示出来ない場合は半角スペースが表示
	される). 文字列が指定の桁数未満の長さの場合、残りは半角スペースを表示
	する. 文字コード $fe は空白が表示される.
	テキスト画面の右端まで行ったらそれ以上表示せず、スクロールもしない.

==============================================================================

$30	_SET232C	RS-232C パラメータ設定

引数	d1.w	RS-232C 設定値(d1.w = -1 の時 現在の設定を調べます)
		bit 15~14	ストップビット(1:1bit 2:1.5bit 0,3:2bit)
		bit 13~12	パリティ(1:奇数 3:偶数 0,2:なし)
		bit 11~10	ビット長(0:5bit以下 1:6bit 2:7bit 3:8bit)
		bit      9	XON/XOFF処理(0:OFF 1:ON)
		bit	 8	 SI/SO  処理(    〃    )
		bit  7~ 0	BPS(0:  75 1: 150 2: 300 3: 600 4:1200
				    5:2400 6:4800 7:9600 8:17361)

返値	変更前の設定

	RS-232C のモードを設定する.
	BPS に範囲外の値を指定した場合、1200BPS として初期化する.
	ROM IOCS では、SI/SO処理が正常に動作しないので使用しないこと.
	BPS の 8 番は ROM IOCS version 1.3 だけで使用可能.

==============================================================================

$31	_LOF232C	RS-232C 受信バッファのデータ数を求める

返値	d0.w	RS-232C 受信データ数

	RS-232C の受信バッファ内のデータ数を調べる.

==============================================================================

$32	_INP232C	RS-232C 受信データを得る

返値	d0.w	RS-232C 受信データ(下位 8 ビット)

	RS-232C からデータを受信する.
	データを受信していなければ受信するまで待つ.

==============================================================================

$33	_ISNS232C	RS-232C 受信データの検査

返値	d0.l =	0	受信データなし
		$100??	〃	  あり($?? は受信データ)

	RS-232C からデータを受信しているか調べる.
	受信データバッファの内容は変化ない.

==============================================================================

$34	_OSNS232C	RS-232C データが送信可能か検査する

返値	d0.l =	0	送信不可能
		4	 〃 可能(バッファが空で、XON でもない)

	RS-232C にデータが送信可能か調べる.

==============================================================================

$35	_OUT232C	RS-232C データ送信

引数	d1.b	送信データ

	RS-232C にデータを送信する.
	データが送信不可能であれば送信可能になるまで待つ.

==============================================================================

$36	(未公開)	マウスデータ受信時の処理アドレス設定

引数	d1.l	処理アドレス(0 の時取り消し)
	d2.w	カウンタ初期値

	マウスからデータを受信した時に呼び出されるサブルーチンのアドレスを設定
	する. 通常はマウス処理 IOCS で使用するデータの書き換えを行うアドレスが
	設定されている.
	設定したアドレスが呼び出される時は、a1.l が示すアドレスからの 3 バイト
	にマウスからの受信データがセットされている.
	カウンタの値を大きくすると呼び出される間隔が長くなる(1 の時最短).
	処理アドレスに 0 を指定すると、標準アドレスが設定される.

==============================================================================

$37	(未公開)	ESC[>系エスケープシーケンスの拡張処理アドレス設定

引数	d1.l	処理アドレス(0 の時取り消し)

返値	変更前のアドレス(ROM IOCS version 1.3 のみ)

	エスケープシーケンスのうち、ESC[> 系の拡張処理を行うサブルーチンのアド
	レスを設定する. 処理アドレスに 0 を指定すると、標準アドレスが設定される.
	設定したアドレスが呼び出される時は、d0.w に ESC[> の次の 2 バイトデータ、
	a0.l に ESC[> のアドレスがセットされている.
	ROM IOCS version 1.3のみ、変更前のアドレスを返す.

==============================================================================

$38	_SETFNTADR	外字フォントアドレス設定

引数	d1.l	フォントアドレス(負数でアドレス収得のみ)
	d2.l	外字グループ番号
		d2.l =	0	16x16ドット	JIS:$2c21~$2d7e
			1	16x16  〃	   :$7621~$777e
			2	 8x16  〃	   :$f400~$f5ff
			3	24x24  〃	   :$2c21~$2d7e
			4	24x24  〃	   :$7621~$777e
			5	12x24  〃	   :$f400~$f5ff
			6	 6x12  〃(半角)
			7	 8x 8  〃(1/4角)
			8	 8x16  〃(半角)
			9	16x16  〃(全角)
			10	12x12  〃(1/4角)
			11	12x24  〃(半角)
			12	24x24  〃(全角)
			13	16x16  〃(全角非漢字)
			14	16x16  〃(第1水準文字)
			15	16x16  〃(第2水準文字)
			0x80	拡張外字処理アドレスを得る

返値	変更前のアドレス
	アドレス設定時に -1 が返った時はエラー(奇数アドレスを指定した場合等).

	外字フォントデータのアドレスを設定する.
	HIOCS.X 組み込み時には d2.l が 6 以上で普通の文字のフォントも設定可能.
	ROM IOCS では奇数アドレスを設定してもエラーにならないので注意すること.

==============================================================================

$39	(未公開)	BEEP音用PCMのデータ設定

引数	d1.l	PCM データアドレス
	d2.w	〃	  サイズ

返値	d0.l	常に 0
	d1.l	変更前の PCM データアドレス
	d2.w		〃	   サイズ

	BEEP 音用の PCM データのアドレスと長さを設定する.

==============================================================================

$3a	(未公開)	プリンタパラメータ設定

引数	a1.l	パラメータアドレス(0 で ROM)

	プリンタ処理 IOCS で使用するパラメータを設定する.
	パラメータアドレスに 0 を指定すると ROM 内の初期値を設定する.
	パラメータの内容は以下の通り.

offset	size
$00	1.l	T-VRAM プレーン 0 アドレス($e00000)
$04	1.w	Y 方向ドット数÷12-1(41)
$06	1.l	拡大ビットイメージ出力時の Y 方向余りラインパターン
$0a	1.w	Y 方向ドット数÷24-1(21)
$0c	1.l	縮小ビットイメージ出力時の Y 方向余りラインパターン
$10	1.w	X 方向ドット数÷ 8-1(96)
$12	8.b	漢字モード指定コード
$1a	8.b	〃	  解除  〃
$22	4.b	LF のコード
$26	6.b	改行幅 16/120インチのコード
$2c	6.b	改行幅を電源投入時の状態に戻すコード
$32	6.b	改行幅 10/120インチのコード
$38	6.b	〃	5/150	〃
$3e	8.b	ビットイメージ出力コード(1536×24ドット出力)
$46	8.b	〃			( 768×24    〃    )
$4e	8.b	〃			(  18×24    〃    )
$56	8.b	〃			(  36×24    〃    )
$5e	1.b	0:MSB~LSB 1:LSB~MSB の順で出力
$5f	1.b	半角ビットイメージ出力時の左右の空白ドット数
$60	1.b	全角〃
$61	1.b	モード(bitの値が1ならビットイメージで出力する)
		bit 4:半角文字
		bit 3:第一水準漢字及び全角非漢字
		bit 2:第二水準漢字
		bit 1:第一外字
		bit 0:第二外字

	$06,$0c は下位 3 バイトのみ有効で、左端から 512/($04,$0a の値)の余り
	のドット数だけビットを 1 にする.
	$12~$56 のコードは、先頭 1 バイトでコードのバイト数を指定し、残りで
	コードを指定する.
	なお、$22 からの LF コード指定バッファは PRNDRVn.SYS を組み込むとサイ
	ズが 2 バイトに縮まり、$24 から CR のコードを指定するようになっている.

==============================================================================

$3b	_JOYGET		ジョイスティック入力

引数	d1.w	ジョイスティック番号(0/1)

返値	ジョイスティックデータ(0 の時押されていて、1 の時離されています.)
		bit 7	常に 1
		bit 6	ボタン	1
		bit 5	〃	2
		bit 4	常に 1
		bit 3	レバー	右
		bit 2	〃	左
		bit 1	〃	下
		bit 0	〃	上

	ジョイスティックのデータを読む.
	無効なジョイスティック番号を指定した場合は、常に 0 が返ります.

==============================================================================

$3c	_INIT_PRN	プリンタ初期化

引数	d1.hb	1 ページの行数-1(-1で指定なし)
	d1.b	1 行の桁数-1	(     〃     )

返値	d0.l =	0	出力不可能
		$20	出力可能

	プリンタポートを初期化し、同時にプリンタに出力可能か調べる.
	引数の d1.w は IOCS _OUTPRN($3f) 用のプリントフォーマット.

==============================================================================

$3d	_SNSPRN		プリンタに出力可能か検査する

返値	d0.l =	0	出力不可能
		$20	出力可能

	プリンタに出力可能か調べる.

==============================================================================

$3e	_OUTLPT		プリンタ直接出力

引数	d1.b	出力データ

	プリンタに直接データを出力する. 漢字処理はせず、また自動改行/改頁しない.
	通常はプリンタに出力が完了するまで処理が戻らない.
	ROM IOCS version 1.3 未満では、アクセラレータ等で高速動作中に使用する
	とウェイト不足で正常動作しない場合がある.

==============================================================================

$3f	_OUTPRN		プリンタ出力

引数	d1.b	出力データ

返値	d1.b は破壊される.

	プリンタに文字を出力する. 漢字処理は S-JIS で行い、2 バイト文字の場合は
	1 バイトずつ 2 回に分けて出力すること.
	通常はプリンタに出力が完了するまで処理が戻らない.

==============================================================================

$40	_B_SEEK		ディスクのシーク

引数	d1.hb	PDA
		d1.hb =	$10~$13	2DD/8	0~ 3
			$30~$33	2DD/9	〃
			$70~$73	2HQ	〃
			$80~$8f	SASI-HD	0~15
			$90~$93	2HD	0~ 3
	d1.b	モード(SASI-HD の時は意味がありません)
		bit 6	MFM/MFM モード切り換え	0:FM	1:MFM(通常は 1)
		bit 5	リトライ		0:リトライしない	1:する
		bit 4	シーク			0:シークしない		1:する
		リトライする場合、5 回シークせずにリトライし、その後 5 回
		リキャリブレート/シークをしてからリトライします.
	d2.l	目的シーク位置(SASI-HD の時は 256 バイト単位のレコード番号)
		bit 31~24	セクタ長	0:128	1:256	2:512	3:1024(バイト)
		bit 23~16	トラック(0~76)
		bit 15~ 8	サイド(0/1)
		bit  7~ 0	セクタ(1~8)

返値	SASI-HD	: ステータス
		d0.l =	正数	正常終了
			-1	規定時間内に応答がなかった
			-3	エラー
			その他	異常終了(最下位バイトがエラーコード)
	2HD-FD	: FDC ステータス
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16	コマンド終了時のシリンダ番号(PCN)

	ディスクの指定位置までシークする.
	SASI-HD のシークで返値が $ffffff?? の場合、$?? はセンスバイトの先頭バ
	イトを示す.
	PDA の $10~13,$30~$33,$70~$73 は ROM IOCS version 1.3 若しくは
	FDDEVICE.X 常駐時のみ使用可能. また、ROM IOCS version 1.3 の場合、
	SASI-HD は SCSI に接続されているのものが対象となる.

==============================================================================

$41	_B_VERIFY	ディスクのベリファイ

引数	d1.hb	PDA
	d1.b	モード(SASI-HD の時は意味がありません)
	d2.l	目的検査位置
	d3.l	検査するバイト数
	a1.l	検査するデータのアドレス

返値	d2/d3/a1 は内容が保証されない.
	SASI-HD	: ステータス(負数で異常終了)
		d0.l =	正数	正常終了
			-1	規定時間内に応答がなかった
			-2	データが不一致
			-3	エラー
			その他	異常終了(最下位バイトがエラーコード)
	2HD-FD	: FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	データの比較検査を行なう.

	2HD-FD との比較の場合、FDC の SCAN EQUAL 命令を使用してデータの比較を
	行うので、データが $ff である時はそのバイトの比較は行われずに等しいも
	のとして扱われる.

==============================================================================

$42	_B_READDI	ディスクの診断の為の読み出し

引数	d1.hb	PDA(SASI-HD:$80~$8f は指定出来ません)
	d1.b	モード
	d2.l	目的読み込み位置
	d3.l	読み込むバイト数
	a1.l	読み込むバッファのアドレス

返値	d2/d3/a1 は内容が保証されない.
	FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	2HD の診断の為のディスク読み出しをする. 通常の読み込みでは使わない.

==============================================================================

$43	_B_DSKINI	ドライブの初期化

引数	d1.hb	PDA
	d2.l	モーターオフまでの時間(SASI-HD の時は意味がありません)
	a1.l	SASI-HD	: アサインドライブパラメータのデータアドレス
		2HD-FD	: SPECIFY コマンドのデータアドレス

返値	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス
		bit 31~24	リザルトステータス 3(ST3)
		bit 23~ 0	不定

	ドライブを初期化する.
	モーターオフまでの時間は 1/100 秒単位で、0 を指定すると標準値( 2 秒)になる.
	a1.l に 0 を指定すると、標準の設定が使用される.

==============================================================================

$44	_B_DRVSNS	ドライブの状態検査

引数	d1.hb	PDA

返値	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス
		bit 31~24	リザルトステータス 3(ST3)
		bit 23~ 0	不定

	ディスクの状態を調べる.

==============================================================================

$45	_B_WRITE	ディスクへの書き込み

引数	d1.hb	PDA
	d1.b	モード(SASI-HD の時は意味がありません)
	d2.l	目的書き込み位置
	d3.l	書き込むバイト数
	a1.l	書き込むデータのアドレス

返値	d2/d3/a1 は内容が保証されない.
	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	ディスクにデータを書き込む.
	注意:OS が行っているバッファリング処理とは無関係に動作するので、OS が
	バッファ中にデータを保持している場合、ディスク上のデータは内容が保証さ
	れない場合がある.

==============================================================================

$46	_B_READ		ディスクからの読み込み

引数	d1.hb	PDA
	d1.b	モード(SASI-HD の時は意味がありません)
	d2.l	目的読み込み位置
	d3.l	読み込むバイト数
	a1.l	読み込むバッファのアドレス

返値	d2/d3/a1 は内容が保証されない.
	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	ディスクからデータを読み込む.
	注意:OS が行っているバッファリング処理とは無関係に動作するので、OS が
	バッファ中にデータを保持している場合、ディスク上のデータは内容が保証さ
	れない場合がある.

==============================================================================

$47	_B_RECALI	ディスクのリキャリブレイト

引数	d1.hb	PDA
	d1.b	モード(SASI-HD の時は 0 にします)
		d1.b =	0	トラック 0 へのシーク
			-1	強制レディ状態での検査

返値	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16	シリンダ番号(C)

	トラック 0 へのシーク若しくは強制レディ状態での検査を行なう.
	後者を実行後、ST0 の bit 4(EQUIPMENT CHECK) が 1 になっていた場合は
	指定のドライブは存在しない.
	2HD-FD の ドライブの有無はこの IOCS コールでしか検査出来ない.

==============================================================================

$48	_B_ASSIGN	ハードディスクの代替トラック設定

引数	d1.hb	PDA(2HD-FD:$90~$93 は指定できません)
	d2.l	レコード番号
	d3.l	インタリーブコード
	a1.l	代替トラック指定データのアドレス
		(0,a1)	代替トラック番号上位バイト
		(1,a1)		〃	中位〃
		(2,a1)		〃	下位〃
		(3,a1)	常に 0

返値	ステータス(負数で異常終了)

	ハードディスクの代替トラックを設定する.

==============================================================================

$49	_B_WRITED	2HD への破損データ書き込み

引数	d1.hb	PDA(SASI-HD:$80~$8f は指定出来ません)
	d1.b	モード
	d2.l	目的書き込み位置
	d3.l	書き込むバイト数
	a1.l	書き込むデータのアドレス

返値	d2/d3/a1 は内容が保証されない.
	FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	ディスクに破損データを書き込む. 通常の書き込みでは使わない.

==============================================================================

$4a	_B_READID	2HD の ID 情報の読み出し

引数	d1.hb	PDA(SASI-HD:$80~$8f は指定出来ません)
	d1.b	モード
	d2.l	目的読み出し位置(トラックとサーフェスの指定のみ)
		bit 31 を 1 にすると検出IDを収得する.

返値	d0.l	FDC ステータス
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)
	d2.l	読み出したID(d2.l の bit 31=1 の時のみ)

	2HD-FD の ID 情報を読み出す.

==============================================================================

$4b	_B_BADFMT	ハードディスクの破損トラックを使用不能にする

引数	d1.hb	PDA(2HD-FD:$90~$93 は指定できません)
	d2.l	レコード番号
	d3.b	インタリーブコード(1 または 6)

返値	ステータス(負数で異常終了)

	ハードディスクの破壊トラックを使用不能にする.

==============================================================================

$4c	_B_READDL	2HD からの破損データ読み込み

引数	d1.hb	PDA(SASI-HD:$80~$8f は指定出来ません)
	d1.b	モード
	d2.l	目的読み込み位置
	d3.l	読み込むバイト数
	a1.l	読み込むバッファのアドレス

返値	d2/d3/a1 は内容が保証されない.
	FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	ディスクから破損データを読み込む. 通常の読み込みでは使わない.

==============================================================================

$4d	_B_FORMAT	ディスクのフォーマット

引数	d1.hb	PDA
	d1.b	モード(SASI-HD の時は意味がありません)
	d2.l	目的フォーマット位置(SASI-HD の時はレコード番号)
		bit 31~24	セクタ長	0:128	1:256	2:512	3:1024(バイト)
		bit 23~16	トラック(0~76)
		bit 15~ 8	サイド(0/1)
		bit  7~ 0	各セクタのデータ部に書き込む値
	d3.l	SASI-HD	: インタリーブコード(1 または 6)
		2HD-FD	: ID データのバイト数
	a1.l	ID データのアドレス(SASI-HD の時は意味がありません)

返値	SASI-HD	: ステータス(負数で異常終了)
	2HD-FD	: FDC ステータス(-1 でパラメータが異常)
		bit 31~24	リザルトステータス 0(ST0)
		bit 23~16		〃	   1(ST1)
		bit 15~ 8		〃	   2(ST2)
		bit  7~ 0	シリンダ番号(C)

	ディスクの物理フォーマットを行なう.
	2HD-FD のフォーマット時に使用する ID データの内容は、以下のテーブルを
	セクタ数だけ繰り返したもの.

offset	size
0	1.b	トラック番号
1	1.b	サイド(0/1)
2	1.b	セクタ番号
3	1.b	セクタ長(128x2バイト)

	通常トラック番号は 0~76、セクタ番号は 1~8、セクタ長は 0~3 になる.

==============================================================================

$4e	_B_DRVCHK	2HD ドライブの状態設定

引数	d1.hb	PDA(SASI-HD:$80~$8f は指定出来ません)
	d2.w	機能番号
		d2.w =	0	状態検査
			1	排出(排出禁止状態では排出不可)
			2	排出禁止 1
			3	 〃 許可 1
			4	ディスクがセットされていない時 LED 点滅
			5			〃		   消灯
			6	排出禁止 2(OS 用なのでユーザーは使用禁止)
			7	 〃 許可 2(〃)
			8	排出検査  (〃)
			9	状態検査 2

返値	d2.w = 0~7,9 の時、ディスクの状態
		bit 7	LED 点滅
		bit 6	排出禁止
		bit 5	排出禁止 2(OS バッファ有り)
		bit 4	〃	 1(ユーザー指定)
		bit 3	書き込み禁止
		bit 2	ノットレディ
		bit 1	メディア挿入
		bit 0	メディア誤挿入
		ノットレディとライトプロテクトは d2.w = 0 の場合のみ有効.
		また、この時メディア未挿入なら両方のビットが 1 になる.
	d2.w = 8 の時、前回の検査後に排出したか(1:していない -1:した)

	2HD-FD の状態を参照/設定する.

==============================================================================

$4f	_B_EJECT	ディスクのイジェクト/シッピング

引数	d1.hb	PDA

返値	終了コード(負数なら異常終了)
	2HD-FD の時は意味がありません

	2HD-FD を排出若しくは SASI-HD をシッピングする.
	排出禁止状態でも排出できるが、OS のバッファリング処理とは無関係に動作
	するので、OS がバッファ中にデータを保持している場合排出を行うとディス
	クの内容が保証されなくなるため、排出してはいけない.

==============================================================================

$50	_DATEBCD	日付データのバイナリ→BCD 変換

引数	d1.l	日付データ(バイナリ)
		$0y_yy_mm_dd
		bit 27~16	年バイナリ(1980~2079)
		bit 15~ 8	月〃	  (1~12)
		bit  7~ 0	日〃	  (1~31)

返値	変換後の日付データ(BCD)
		$uw_yy_mm_dd
		bit 31~28	閏年カウンタ(0:今年が閏年 1:3年後 2:2年後 3:1年後)
		bit 27~24	曜日カウンタ(0:日曜日 1:月曜日 … 6:土曜日)
		bit 23~16	年 BCD 2 桁($00~$99)
		bit 15~ 8	月 〃	   ($01~$12)
		bit  7~ 0	日 〃	   ($01~$31)
	ただし、日付が異常な場合は -1 が返る.

	日付をバイナリから BCD に変換する.
	閏年カウンタは、年カウンタとともに加算される.

==============================================================================

$51	_DATESET	日付の設定

引数	日付データ(BCD)

返値	常に 0

	時計に日付を設定する. ただし、正しい日付の指定であるかは検査されない.
	X680x0 のクロック IC(RTC) は BCD 形式のデータを設定しなければならない
	ので、IOCS DATEBCD($50) でバイナリの日付を BCD に変換した後にこのコー
	ルで設定する.

==============================================================================

$52	_TIMEBCD	時刻データのバイナリ→BCD 変換

引数	d1.l	時刻データ(バイナリ)
		$00_hh_mm_ss
		bit 23~16	時バイナリ(0~23)
		bit 15~ 8	分〃	  (0~59)
		bit  7~ 0	秒〃	  (0~59)

返値	時刻データ(BCD)
		$0t_hh_mm_ss
		bit 27~24	1(システム規定:24時間計であることを表す)
		bit 23~16	時 BCD 2 桁(0~23)
		bit 15~ 8	分 〃	  (0~59)
		bit  7~ 0	秒 〃	  (0~59)
	ただし、時刻が異常な場合は -1 が返る.

	時刻をバイナリから BCD に変換する.

==============================================================================

$53	_TIMESET	時刻の設定

引数	時刻データ(BCD)

返値	常に 0

	時計に時刻を設定する. ただし、正しい時刻の指定であるかは検査されない.

==============================================================================

$54	_DATEGET	日付の読み込み

返値	日付データ(BCD)
		$0w_yy_mm_dd
		bit 27~24	曜日カウンタ
		bit 23~16	年 BCD 2 桁($00~$99)
		bit 15~ 8	月 〃	   ($01~$12)
		bit  7~ 0	日 〃	   ($01~$31)

	時計から日付を読み込む.

==============================================================================

$55	_DATEBIN	日付データの BCD→バイナリ変換

引数	日付データ(BCD)
		$0w_yy_mm_dd
		bit 27~24	曜日カウンタ
		bit 23~16	年 BCD 2 桁($00~$99)
		bit 15~ 8	月 〃	   ($01~$12)
		bit  7~ 0	日 〃	   ($01~$31)

返値	変換後の日付データ(バイナリ)
		$wy_yy_mm_dd
		bit 31~28	曜日カウンタ
		bit 27~16	年バイナリ(1980~2079)
		bit 15~ 8	月〃	  (1~12)
		bit  7~ 0	日〃	  (1~31)

	日付データを BCD からバイナリに変換する.

==============================================================================

$56	_TIMEGET	時刻の読み込み

返値	時刻データ(BCD)

	時計から時刻を読み込む.

==============================================================================

$57	_TIMEBIN	時刻データの BCD→バイナリ変換

引数	時刻データ(BCD)

返値	変換後の時刻データ(バイナリ)

	時刻データを BCD からバイナリに変換する.

==============================================================================

$58	_DATECNV	日付データの文字列→バイナリ変換

引数	a1.l	日付を表す文字列のアドレス(区切りは '/' と '-' のどちらでもよい)
		形式は 'yyyy/mm/dd',0 または 'yy-mm-dd',0

返値	d0.l	変換後の日付データ(バイナリ)
		ただし、日付を表す文字列が異常な場合は d0.l = -1 が返る.
	a1.l	文字列末尾(変換に失敗した場合、内容は保証されない)

	日付データを文字列からバイナリに変換する. ただし、正しい日付の指定であ
	るかは検査されない. 年が 80~99、0~79 である時は下二桁の指定と見なし
	てそれぞれ 1900、2000 を足した値を返す.
	数値の先頭にある空白と '0' は読み飛ばされる. 区切りは実際にはどの記号
	を使用しても正常に動作する.

==============================================================================

$59	_TIMECNV	時刻データの文字列→バイナリ変換

引数	a1.l	時刻を表す文字列のアドレス(区切りは ':' のみ)
		形式は 'hh:mm:ss',0

返値	d0.l	変換後のデータ(バイナリ)
		ただし、時刻を表す文字列が異常な場合は d0.l = -1 が返る.
	a1.l	文字列末尾(変換に失敗した場合、内容は保証されない)

	時刻データを文字列からバイナリに変換する.
	数値の先頭にある空白と '0' は読み飛ばされる. 区切りは実際にはどの記号
	を使用しても正常に動作する.

==============================================================================

$5a	_DATEASC	日付データのバイナリ→文字列変換

引数	d1.l	日付データ(バイナリ)
		$fy_yy_mm_dd
		bit 31~28	文字列形式
				0	'yyyy/mm/dd',0
				1	'yyyy-mm-dd',0
				2	'yy/mm/dd',0
				3	'yy-mm-dd',0
		bit 27~16	年バイナリ(1980~2079)
		bit 15~ 8	月〃	  (1~12)
		bit  7~ 0	日〃	  (1~31)
	a1.l	文字列バッファのアドレス

返値	d0.l =	0	正常終了
		-1	エラー
	a1.l	文字列終端の 0 のアドレス

	日付データをバイナリから文字列に変換する.
	文字列バッファは 9 または 11 バイト以上必要.

==============================================================================

$5b	_TIMEASC	時刻データのバイナリ→文字列変換

引数	d1.l	時刻データ(バイナリ)
		$00_hh_mm_ss
		bit 23~16	時バイナリ(0~23)
		bit 15~ 8	分〃	  (0~59)
		bit  7~ 0	秒〃	  (0~59)
	a1.l	文字列バッファのアドレス(形式は 'hh:mm:ss',0)

返値	d0.l =	0	正常終了
		-1	エラー
	a1.l	文字列終端の 0 のアドレス

	時刻データをバイナリから文字列に変換する.
	文字列バッファは 9 バイト以上必要.

==============================================================================

$5c	_DAYASC		曜日データのバイナリ→文字列変換

引数	d1.l	曜日データ(0:日曜日 1:月曜日 … 6:土曜日)
	a1.l	文字列バッファのアドレス(形式は '?',0)

返値	d0.l	常に 0
	a1.l	文字列終端の 0 のアドレス

	曜日データをバイナリから文字列に変換する.
	文字列バッファは 3 バイト以上必要.

==============================================================================

$5d	_ALARMMOD	アラーム許可/禁止

引数	d1.l	アラームの設定
		d1.l =	0	禁止
			1	許可
			2	現在の状態を調べる

返値	現在の状態(0/1)

	アラームの禁止/許可を設定する. 設定は SRAM に記録される.

==============================================================================

$5e	_ALARMSET	アラーム設定

引数	d1.l	アラーム時間
		$0wddhhmm
		bit 27~24	曜日(0:日曜日 1:月曜日 … 6:土曜日 $f:無指定)
		bit 23~16	日 BCD 2 桁($01~$31,$ff:無指定)
		bit 15~ 8	時 〃	   ($00~$23,	〃     )
		bit  7~ 0	分 〃	   ($00~$59,	〃     )
	d2.l	電源オフまでの時間(分)
	a1.l	テレビコントロールコード若しくは処理アドレス
		a1.l =	-1	ディスプレイ制御しない
			0	ディスプレイ電源オン/コンピュータモード
			1~$3f	指定の数値でテレビコントロール
			その他	処理アドレス(偶数アドレスかつ先頭が $60:bra であること)

返値	常に 0

	アラーム時間と処理内容を設定し、アラームを許可する. 設定は SRAM に記録
	される.
	曜日を $f、日/時/分を $ff にすると、それぞれが無指定になる. ただし、全
	てを無指定にしないこと.
	電源オフまでの時間に 0 を指定すると、電源オフしない.

==============================================================================

$5f	_ALARMGET	アラームの設定状態を収得

返値	d0.l	処理アドレス
	d1.l	アラーム時間
	d2.l	電源オフまでの時間(分)

	アラーム時間と処理内容を調べる.

==============================================================================

$60	_ADPCMOUT	ADPCM 出力

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	d2.l	再生データのバイト数
	a1.l	〃	    アドレス

返値	d0/d2/a1 は内容が保証されない.

	ADPCM を再生する. データが $ff00 バイト以下の場合はすぐに戻る.
	DMA が使用不可能であれば、使用可能になるまで待つ.

==============================================================================

$61	_ADPCMINP	ADPCM 入力

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	d2.l	録音バッファのバイト数
	a1.l	〃	      アドレス

返値	d0/d2/a1 は内容が保証されない.

	ADPCM を録音する. データが $ff00 バイト以下の場合はすぐに戻る.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	データ自体はモノラルで入力するが、モニタ出力を出力モードで指定出来る.

==============================================================================

$62	_ADPCMAOT	ADPCM 出力(アレイチェーン)

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	d2.l	チェーンテーブルの個数
	a1.l		〃	  アドレス

	アレイチェーンによって ADPCM を再生する.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.

offset	size
0	1.l	再生データのアドレス
4	1.w	〃	    バイト数(1~$ffff)

==============================================================================

$63	_ADPCMAIN	ADPCM 入力(アレイチェーン)

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	d2.l	チェーンテーブルの個数
	a1.l		〃	  アドレス

	アレイチェーンによって ADPCM を録音する.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.

offset	size
0	1.l	録音バッファのアドレス
4	1.w	〃	      バイト数(1~$ffff)

==============================================================================

$64	_ADPCMLOT	ADPCM 出力(リンクアレイチェーン)

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	a1.l	チェーンテーブルのアドレス

	リンクアレイチェーンによって ADPCM を再生する.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.

offset	size
0	1.l	再生データのアドレス
4	1.w	〃	    バイト数(1~$ffff)
6	1.l	次のテーブルのアドレス(0 でテーブルの終わり)

==============================================================================

$65	_ADPCMLIN	ADPCM 入力(リンクアレイチェーン)

引数	d1.w	ウェイトモード/周波数/出力モード
		bit     15	ウェイトモード(0:通常 1:ノーウェイト)
		bit 10~ 8	サンプリング周波数
				(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
		bit  1~ 0	出力モード(0:なし 1:左 2:右 3:左右)
	a1.l	チェーンテーブルのアドレス

	リンクアレイチェーンによって ADPCM を録音する.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.

offset	size
0	1.l	録音バッファのアドレス
4	1.w	〃	      バイト数(1~$ffff)
6	1.l	次のテーブルのアドレス(0 でテーブルの終わり)

==============================================================================

$66	_ADPCMSNS	ADPCM 状態検査

返値	実行状態
	d0.l =	$00	何も実行していない
		$02	IOCS ADPCMOUT($60) を実行中
		$04	IOCS ADPCMINP($61) 〃
		$12	IOCS ADPCMAOT($62) 〃
		$14	IOCS ADPCMAIN($63) 〃
		$22	IOCS ADPCMLOT($64) 〃
		$24	IOCS ADPCMLIN($65) 〃

	ADPCM の実行状態を調べる.

==============================================================================

$67	_ADPCMMOD	ADPCM 実行制御

引数	d1.l	制御内容(0:終了 1:中断 2:再開)

返値	d0.l =	0	正常終了
		-1	制御モードが不正

	ADPCM の実行を制御する.
	ROM IOCS では、ショートカットで呼び出すと割り込み禁止状態になったまま
	で帰るので注意すること.

==============================================================================

$68	_OPMSET		OPM レジスタ設定

引数	d1.b	レジスタ番号
	d2.b	データ

返値	d2.b は破壊される.

	OPM に書き込める状態になるまで待ってから、レジスタにデータを書き込む.
	レジスタ $1b に書き込む場合、汎用出力のモードは変更できない.

==============================================================================

$69	_OPMSNS		OPM 状態検査

返値	d0.b	ステータス
		bit 7	Busy フラグ(0 で書き込み可能)
		bit 1	タイマ A オーバーフロー(1 の時オーバーフローが発生)
		bit 0	  〃   B 〃

	OPM のステータスを読み込む.

==============================================================================

$6a	_OPMINTST	OPM 割り込み設定

引数	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定/禁止した
		その他	すでに使用中

	OPM による割り込みを設定する. MFP のみ制御するので、OPM に対しても設定
	する必要がある.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みの処理アドレスが $01000000 以上(最上位バイトが 0 以外)で割り込
	みが未使用と見なされるが、ROM IOCS version 1.3 で vbr が有効になってい
	る場合は処理アドレスが $00ff0770 の時のみ未使用と見なされる.

==============================================================================

$6b	_TIMERDST	Timer-D 割り込み設定

引数	d1.hb	単位時間(1:1.0 2:2.5 3:4.0 4:12.5 5:16.0 6:25.0 7:50.0 μ秒単位)
	d1.b	カウンタ(0 の時は 256 として扱う)
	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定/禁止した
		その他	すでに使用中

	Timer-D による割り込みを設定する. 割り込み周期は単位時間×カウンタ.
	CONFIG.SYS で PROCESS を設定している場合は、割り込みを変更出来ない.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みを未使用と見なす条件は _OPMINTST と同じ.

==============================================================================

$6c	_VDISPST	垂直同期割り込み設定

引数	d1.hb	割り込み期間(0:垂直帰線期間 1:垂直表示期間)
	d1.b	カウンタ(0 の時は 256 として扱う)
	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定/禁止した
		その他	すでに使用中

	垂直同期による割り込みを設定する.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みを未使用と見なす条件は _OPMINTST と同じ.

	実際には Timer-A に割り込みを設定している. 垂直表示回数は 31kHz で秒間
	約 55.4 回、24kHz で約 53.0 回、15kHz で約 61.3 回(実測値).
	電源投入後か以前に大きいカウンタ値で設定していた時は、最初の割り込みが
	発生するタイミングが遅くなる.	

==============================================================================

$6d	_CRTCRAS	ラスター割り込み設定

引数	d1.w	ラスタ番号
	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定した
		その他	すでに使用中

	ラスタ走査による割り込みを設定する.
	CRTC が指定のラスタを走査開始すると割り込みが発生する.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みを未使用と見なす条件は _OPMINTST と同じ.

==============================================================================

$6e	_HSYNCST	水平同期割り込み設定

引数	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定した
		その他	すでに使用中

	水平同期による割り込みを設定する.
	水平同期信号の立ち下がり時に割り込みが発生する.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みを未使用と見なす条件は _OPMINTST と同じ.

==============================================================================

$6f	_PRNINTST	プリンタ割り込み設定

引数	a1.l	処理アドレス(0 で割り込み禁止)

返値	d0.l =	0	割り込みを設定した
		その他	すでに使用中

	プリンタによる割り込みを設定する.
	プリンタがデータを受け取ることが可能になった時に割り込みが発生する.
	ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
	止された状態で帰るので注意すること.
	割り込みを未使用と見なす条件は _OPMINTST と同じ.

==============================================================================

$70	_MS_INIT	マウス初期化

	マウスを初期化する.

==============================================================================

$71	_MS_CURON	マウスカーソル表示

	マウスカーソルを表示する.

==============================================================================

$72	_MS_CUROF	マウスカーソル消去

	マウスカーソルを消去する.

==============================================================================

$73	_MS_STAT	マウスカーソルの表示状態を調べる

返値	d0.w =	0	マウスカーソルは表示されていない
		-1		〃	表示されている

	マウスカーソルの表示状態を調べる.

==============================================================================

$74	_MS_GETDT	マウス移動量/ボタン状態を調べる

返値	マウスの移動量及びボタンの状態
		bit 31~24	X 方向移動量
		bit 23~16	Y 〃
		bit 15~ 8	左ボタン(0:OFF -1:ON)
		bit  7~ 0	右〃	(〃	    )

	マウスの移動量及びボタンの状態を調べる.

==============================================================================

$75	_MS_CURGT	マウスカーソルの座標収得

返値	マウスカーソルの座標
	d0.hw	X 座標
	d0.w	Y 〃

	マウスカーソルの座標を調べる.

==============================================================================

$76	_MS_CURST	マウスカーソルの座標設定

引数	マウスカーソルの座標
	d1.hw	X 座標
	d1.w	Y 〃

返値	d0.l =	0	座標が指定出来た
		-1	座標が異常

	マウスカーソルの座標を設定する.

==============================================================================

$77	_MS_LIMIT	マウスカーソルの移動範囲設定

引数	マウスカーソルの座標
	d1.hw	左端 X 座標
	d1.w	上端 Y 〃
	d2.hw	右端 X 座標
	d2.w	下端 Y 〃

返値	d0.l =	0	座標が指定出来た
		-1	座標が異常

	マウスカーソルの移動範囲を設定する.

==============================================================================

$78	_MS_OFFTM	マウスのボタンを離すまでの時間を調べる

引数	d1.w	ボタンの指定(0:左ボタン -1:右ボタン)
	d2.w	待ち時間(0 の時は離すまで待つ)

返値	d0.w =	0	ドラッグ
		-1	待ち時間の最大値を超えた
		その他	待ち時間

	マウスのボタンを離すまでの時間を調べる.

==============================================================================

$79	_MS_ONTM	マウスのボタンを押すまでの時間を調べる

引数	d1.w	ボタンの指定(0:左ボタン -1:右ボタン)
	d2.w	待ち時間(0 の時は押すまで待つ)

返値	d0.w =	0	ドラッグ
		-1	待ち時間の最大値を超えた
		その他	待ち時間

	マウスのボタンを押すまでの時間を調べる.

==============================================================================

$7a	_MS_PATST	マウスカーソルのパターン定義

引数	d1.w	カーソル番号(0~15)
	a1.l	パターンデータのアドレス

	マウスカーソルのパターンを定義する.
	ROM IOCS version 1.1 では正常に動作しないので注意すること.
	マウスカーソルの大きさは 16 x 16 ドットで、1 ドットが 1 ビットに対応する.
	パターンデータの内容は以下の通り(カラーコード 8~15 は 4~7 より優先される).

offset	size
0	1.w	パターンの左端 X 座標からマウス X 座標までの距離
2	1.w	〃	  上端 Y	〃	Y	〃
4	16.w	マスクパターン(陰にするデータ)
36	16.w	マウスパターン(表示するデータ)

	パターンの左端/上端からマウス座標までの距離は、0(パターンの左隅/上隅を
	マウス座標にする)~15(パターンの右隅/下隅をマウス座標にする)で指定する.
	マスクパターンが 0 のドットはカラーコード 4~7 で表示され、1 のドット
	は無視される.
	マウスパターンが 1 のドットはカラーコード 8~15 で表示され、0 のドット
	は無視される. ただし、マスクパターンが 0 でマウスパターンが 1 の場合は
	カラーコード 8~15 が優先して表示される.

==============================================================================

$7b	_MS_SEL		マウスカーソルのパターン選択

引数	d1.w	カーソル番号(0~15)

	マウスカーソルのパターンを選択する.

==============================================================================

$7c	_MS_SEL2	マウスカーソルのアニメーション

引数	a1.l	カーソル番号テーブルのアドレス

	マウスパターンを複数個用いて、アニメーションで表示する.
	カーソル番号テーブルはカーソル番号をワードサイズで 6 個以下並べ、最後は
	-1 にする.

==============================================================================

$7d	_SKEY_MOD	ソフトキーボード制御

引数	d1.l	制御コード
		d1.l =	0	ソフトキーボード消去
			1		〃	表示
			2		〃	表示状態の検査
			-1		〃	自動制御
	d2.l	表示座標(d1.l = 1 の時)
		d2.hw	X 座標
		d2.w	Y 〃

返値	表示状態(0:消去 1:表示)

	ソフトキーボードを制御する.
	自動制御を指定すると、マウスの右ボタンを押すことにより状態が
	非表示→マウス表示→キーボード/マウス表示→マウス表示→非表示
	と変化する.

==============================================================================

$7e	_DENSNS		電卓制御

	電卓による入力を調べる. 結果はキー入力として返る.

==============================================================================

$7f	_ONTIME		起動後の経過時間を調べる

返値	d0.l	経過時間の時分秒(0~23:59:59"99=8639999,1/100秒単位)
	d1.l	〃	  日数  (0~65535)

	ROM が起動してからの時間を調べる.
	ROM IOCS では、ショートカットで呼び出すと割り込み禁止状態になったまま
	で帰るので注意すること.

==============================================================================

$80	_B_INTVCS	ベクタ設定

引数	d1.w	ベクタ番号($0000~$00ff:割り込み $0100~$01ff:IOCS コール)
	a1.l	処理アドレス

返値	変更前の処理アドレス

	ベクタの処理アドレスを設定する.
	設定したアドレスはスーパーバイザモードで呼び出される.
	割り込みからは rte で、IOCS コールは rts で戻る.
	ROM IOCS version 1.3 のみ、ベクタ番号が異常な場合に -1 を返す.

==============================================================================

$81	_B_SUPER	スーパーバイザ/ユーザモードの切り換え

引数	a1.l	ssp(0 の時ユーザモードからスーパーバイザモードに切り換え)

返値	d0.l	ユーザモードに切り換えた場合は常に 0 を返す.
		スーパバイザモードに切り換えた場合は、切り換え前の ssp の値を
		返す. ただし、既にスーパバイザモードになっていたら -1 を返す.
	a1.l	不定

	スーパーバイザ/ユーザモードを切り換える.
	スーパバイザモードに切り換えた場合、usp が ssp に設定される.
	ユーザモードに切り換えた場合、ssp は指定したアドレスになり、usp は以前
	のアドレスに戻る.

==============================================================================

$82	_B_BPEEK	指定アドレスから 1 バイト読み込み

引数	a1.l	読み込みアドレス

返値	d0.b	データ
	a1.l	次のアドレス

	指定アドレスから 1 バイトデータを読み込む.

==============================================================================

$83	_B_WPEEK	指定アドレスから 1 ワード読み込み

引数	a1.l	読み込みアドレス

返値	d0.w	データ
	a1.l	次のアドレス

	指定アドレスから 1 ワードデータを読み込む.

==============================================================================

$84	_B_LPEEK	指定アドレスから 1 ロングワード読み込み

引数	a1.l	読み込みアドレス

返値	d0.l	データ
	a1.l	次のアドレス

	指定アドレスから 1 ロングワードデータを読み込む.

==============================================================================

$85	_B_MEMSTR	指定アドレスから複数バイト読み込み

引数	d1.l	転送バイト数-1
	a1.l	転送元アドレス
	a2.l	転送先アドレス

返値	a1.l	次のアドレス
	a2.l	〃
	d1.l は破壊される.

	指定アドレスから複数バイトデータを転送する.
	IOCS _B_MEMSET とは転送の方向が違う(*a2++ = *a1++).

==============================================================================

$86	_B_BPOKE	指定アドレスヘ 1 バイト書き込み

引数	d1.b	データ
	a1.l	書き込みアドレス

返値	a1.l	次のアドレス

	指定アドレスに 1 バイトデータを書き込む.

==============================================================================

$87	_B_WPOKE	指定アドレスヘ 1 ワード書き込み

引数	d1.w	データ
	a1.l	書き込みアドレス

返値	a1.l	次のアドレス

	指定アドレスに 1 ワードデータを書き込む.

==============================================================================

$88	_B_LPOKE	指定アドレスヘ 1 ロングワード書き込み

引数	d1.l	データ
	a1.l	書き込みアドレス

返値	a1.l	次のアドレス

	指定アドレスに 1 ロングワードデータを書き込む.

==============================================================================

$89	_B_MEMSET	指定アドレスヘ複数バイト書き込み

引数	d1.l	転送バイト数-1
	a1.l	転送先アドレス
	a2.l	転送元アドレス

返値	a1.l	次のアドレス
	a2.l	〃
	d1.l は破壊される.

	指定アドレスに複数バイトデータを転送する.
	IOCS _B_MEMSTR とは転送の方向が違う(*a1++ = *a2++).

==============================================================================

$8a	_DMAMOVE	DMA 転送

引数	d1.b	モード
		bit    7	方向(0:a1からa2 1:a2からa1)
		bit 3~2	MAC(0:a1固定 1:a1++ 2:a1-- 3:指定禁止)
		bit 1~0	DAC(0:a2固定 1:a2++ 2:a2-- 3:指定禁止)
	d2.l	転送バイト数
	a1.l	転送元アドレス
	a2.l	転送先〃

返値	d0/d2/a1/a2 は内容が保証されない.

	バイト単位で DMA 転送を行なう.
	$ff00 バイト以上転送する場合はすぐに戻ってこない.
	DMA が使用不可能であれば、使用可能になるまで待つ.

==============================================================================

$8b	_DMAMOV_A	DMA 転送(アレイチェーン)

引数	d1.b	モード
	d2.l	チェーンテーブルの個数
	a1.l		〃	  アドレス
	a2.l	転送先アドレス

	アレイチェーンによってバイト単位で DMA 転送を行なう.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.

offset	size
0	1.l	転送元データのアドレス
4	1.w	転送バイト数(1~$ffff)

==============================================================================

$8c	_DMAMOV_L	DMA 転送(リンクアレイチェーン)

引数	d1.b	モード
	a1.l	チェーンテーブルのアドレス
	a2.l	転送先アドレス

	リンクアレイチェーンによってバイト単位で DMA 転送を行なう.
	DMA が使用不可能であれば、使用可能になるまで待つ.
	リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.

offset	size
0	1.l	転送元データのアドレス
4	1.w	転送バイト数(1~$ffff)
6	1.l	次のテーブルのアドレス(0 でテーブルの終わり)

==============================================================================

$8d	_DMAMODE	DMA 状態検査

返値	実行状態
	d0.l =	$00	何も実行していない
		$8a	IOCS DMAMOVE ($8a) を実行中
		$8b	IOCS DMAMOV_A($8b) 〃
		$8c	IOCS DMAMOV_L($8c) 〃

	DMA の実行状態を調べる.

==============================================================================

$8e	_BOOTINF	起動情報を得る

返値	起動状態
	bit 31~24	起動方法(0:パワースイッチ 1:外部スイッチ 2:タイマ)
	bit 23~ 0	ブート情報($80~$8f:SASI-HD 0~15   $90~$93:2HD-FD 0~3)
				  ($ed0000~$ed3ffe:SRAM    その他:ROM		)

	起動情報を調べる. ROM から起動した場合は起動アドレス(1.l)へのポインタ
	を返すが、SRAM から起動した場合は起動したアドレスそのものを返す.
	なお、SRAM/ROM から起動後、SRAM に設定されている起動アドレスを変更する
	と正しいアドレスを返さない.

==============================================================================

$8f	_ROMVER		ROM バージョンを得る

返値	バージョン/作成日(BCD)
		bit 31~24	バージョン
		bit 23~16	年
		bit 15~ 8	月
		bit  7~ 0	日

	ROM のバージョンと作成年月日を調べる.

==============================================================================

$90	_G_CLR_ON	グラフィック画面の初期化及び表示モードの設定

	グラフィック画面をクリアして表示する. パレットは標準に戻り、アクセスペ
	ージは 0 に設定される.

==============================================================================

$91	(未公開)	グラフィック画面モードの設定

引数	d1.b	グラフィック画面モード
		d1.b =	0	   16 色 4 画面(実画面 512)
			1	  256 〃 2  〃 (  〃   512)
			3	65536 〃 1  〃 (  〃   512)
			4	   16 〃 1  〃 (  〃  1024)
			-1	現在のモードを調べる

返値	変更前のグラフィック画面モード

	グラフィック画面モードを直接設定する.
	設定データは VC R0($e82400) の設定と同じ.

==============================================================================

$92	(未公開)	プライオリティ設定

引数	d1.w	プライオリティ設定(ただし d1.w = -1 の時は現在の設定を調べます)

返値	変更前の設定

	プライオリティを直接設定する.
	設定データは VC R1($e82500) の設定と同じ.

==============================================================================

$93	(未公開)	画面表示及び特殊モードの設定

引数	d1.w	画面表示及び特殊モード設定(ただし d1.w = -1 の時は現在の設定を調べます)

返値	変更前の設定

	画面表示及び特殊モードを直接設定する.
	設定データは VC R2($e82600) の設定と同じ.

==============================================================================

$94	GPALET		グラフィックパレット設定

引数	d1.w	パレットコード
	d2.l	カラーコード(d2.l = -1 の時カラーコードを調べます)

返値	d0.l =	0	正常終了
		-1	グラフィック画面が初期化されていないか、パレットコードが異常
	d2.l = -1 の時はカラーコードを返す(-1 ならエラー)

	グラフィックパレットを設定/収得する.
	ROM IOCS では65536色モードで正常に動作しないので注意すること.

==============================================================================

$95	(未公開)	カラーコード設定

引数	d1.w	パレットコード

	IOCS $9a,$9b,$9c で書き込まれるパレットコードを設定する.

==============================================================================

$96	(未公開)	アクセスページ設定

引数	d1.w	アクセスページ(0~3)

	グラフィック IOCS で操作されるページを直接設定する.
	IOCS APAGE($b1) とほぼ同じであるが、存在しないページを指定してもエラー
	にならないので注意すること.

==============================================================================

$97	(未公開)	グラフィック VRAM のドット単位読み込み

引数	d1.w	X 座標
	d2.w	Y 〃
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	(色数 $000f:16色 $00ff:256色 $ffff:65536色)
		(6,a1)	(パターンデータ)

	グラフィック画面からバッファにドット単位で読み込む.

==============================================================================

$98	(未公開)	グラフィック VRAM のドット単位書き込み(色マスクあり)

引数	d1.w	X 座標
	d2.w	Y 〃
	d3.w	マスクするカラーコード
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	色数($000f:16色 $00ff:256色 $ffff:65536色)
		(6,a1)	パターンデータ

返値	d0.l =	0	正常終了
		-1	エラー(指定された色数と実際の設定が異なる)

	バッファからグラフィック画面にドット単位で書き込む.
	マスクするカラーコードに指定した色のドットは書き込まれない.

==============================================================================

$99	(未公開)	グラフィック VRAM のドット単位書き込み

引数	d1.w	X 座標
	d2.w	Y 〃
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	色数($000f:16色 $00ff:256色 $ffff:65536色)
		(6,a1)	パターンデータ

返値	d0.l =	0	正常終了
		-1	エラー(指定された色数と実際の設定が異なる)

	バッファからグラフィック画面にドット単位で書き込む.

==============================================================================

$9a	(未公開)	グラフィック VRAM のビットパターン書き込み

引数	d1.w	X 座標
	d2.w	Y 〃
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	ビットパターン

	グラフィック画面にビットパターンを書き込む.
	ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
	0 のドットは何も書き込まれない.

==============================================================================

$9b	(未公開)	グラフィック VRAM のビットパターン書き込み(バックカラーあり)

引数	d1.w	X 座標
	d2.w	Y 〃
	d3.w	バックカラーコード
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	ビットパターン

	グラフィック画面にビットパターンを書き込む.
	ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
	0 のドットはバックカラーコードが書き込まれる.

==============================================================================

$9c	(未公開)	グラフィック VRAM のビットパターン拡大書き込み

引数	d1.w	X 座標
	d2.w	Y 〃
	d3.w	X 方向の拡大率
	d4.w	Y 〃
	a1.l	バッファのアドレス
		(0,a1)	X 方向のドット数
		(2,a1)	Y 〃
		(4,a1)	ビットパターン

	グラフィック画面にビットパターンを拡大して書き込む.
	ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
	0 のドットは何も書き込まれない.

==============================================================================

$a0	_SFTJIS		S-JIS→JIS コード変換

引数	d1.w	S-JIS 漢字コード

返値	d0.hw =	0	変換成功
		-1	エラー
	d0.w	JIS 漢字コード(エラーの場合通常 $2228:※)
	d1.l	〃

	S-JIS 漢字コードを JIS 漢字コードに変換する.

==============================================================================

$a1	_JISSFT		JIS→S-JIS コード変換

引数	d1.w	JIS 漢字コード

返値	d0.hw =	0	変換成功
		-1	エラー
	d0.w	S-JIS 漢字コード(エラーの場合通常 $81a6:※)
	d1.l	〃

	JIS 漢字コードを S-JIS 漢字コードに変換する.

==============================================================================

$a2	_AKCONV		ANK→S-JIS コード変換

引数	d1.hw	平仮名/片仮名の指定(0:平仮名に変換 1:片仮名に変換)
	d1.w	ANK コード($20~7e,$a1~df)

返値	d0.hw =	0	変換成功
		-1	エラー
	d0.w	S-JIS 漢字コード(エラーの場合通常 $81a6:※)

	ANK コードを 全角 S-JIS コードに変換する.

==============================================================================

$a3	_RMACNV		ローマ字→ANK カナ変換

引数	d1.b	アルファベット
	a1.l	作業領域のアドレス
	a2.l	変換結果を入れるバッファのアドレス

返値	ステータス
	d0.l =	0	変換途中で返せる仮名文字がない
			(作業領域に変換途中の文字が残っているので、それを破棄
			してはいけない)
		-1	変換不可能な文字が指定された
			(作業領域の先頭バイトは 0 になる)
		その他	変換文字数(作業領域に変換途中の文字が残っている可能性
			があるので、それを破棄してはいけない)

	ローマ字を仮名に変換する. ローマ字は通常大文字を使用し、促音や拗音など
	小さい仮名はローマ字の母音にアルファベットの小文字を用いる.
	最初の変換の前に、作業領域の先頭のバイトを 0 にしておく.

==============================================================================

$a4	_DAKJOB		濁点処理

引数	a1.l	全角文字列の終端(0)のアドレス

返値	d0.l	文字列の増加したバイト数
		d0.l =	0	最後の全角文字に濁点を付けた場合
			2	文字列の最後に濁点を加えた場合
	a1.l	処理後の全角文字列の終端のアドレス

	全角文字列の濁点処理を行なう.

==============================================================================

$a5	_HANJOB		半濁点処理

引数	a1.l	全角文字列の終端(0)のアドレス

返値	d0.l	文字列の増加したバイト数
		d0.l =	0	最後の全角文字に半濁点を付けた場合
			2	文字列の最後に半濁点を加えた場合
	a1.l	処理後の全角文字列の終端のアドレス

	全角文字列の半濁点処理を行なう.

==============================================================================

$ac	_SYS_STAT	システム状態の設定

引数	d1.l	モード
		d1.l =	0	MPU 状態の収得
			1	キャッシュ状態の収得
			2	キャッシュを SRAM の設定値に設定
			3	キャッシュの消去
			4	キャッシュの設定
	d2.l	キャッシュ有効/無効フラグ(d1.l = 4 の時のみ)
		bit	1	データキャッシュ(0:無効 1:有効)
		bit	0	命令	〃	(	〃    )

返値	d1.l = 0 の時、MPU ステータス
		bit 31~16	クロックスピード(0.1MHz単位)
		bit	15	浮動小数点演算コプロセッサ(0:なし 1:あり)
		bit	14	MMU(0:なし 1:あり)
		bit  7~ 0	MPU タイプ(0:68000 1:68010 2:68020 3:68030)
	d1.l = 1,2,4 の時、変更前のキャッシュ有効/無効フラグ

	システム状態の設定を行なう.
	この IOCS コールは ROM IOCS version 1.3 だけで使用可能.

==============================================================================

$ad	_B_CONMOD	カーソルおよびスクロールの設定

引数	d1.l	モード
		d1.w =	0	カーソル点滅許可
			1	カーソル点滅禁止
			2	カーソルパターン指定
			3	カーソルパターン定義
			16	スムーススクロールの指定
			17	ラスタコピースクロールの指定
			18	ソフト〃
	d2.l	d1.w = 2 の時、カーソルパターン
		d2.w =	0	内部バッファに定義されたパターンで描画する.
			その他	d2.hw をスタートラインと見なして、d2.b/d2.hb
				をプレーン 0/1 と排他論理和をとる.
		d1.w = 3 の時、パターンアドレス
		d1.w = 16 の時、スクロールの指定
		d2.l =	0	ジャンプスクロール
			1	 4 ドットスクロール
			2	 8 〃
			3	16 〃

	カーソルおよびスクロールを設定する.
	カーソルの点滅を禁止した場合、カーソルが表示されたままになる. 許可状態
	ならば一定時間ごとに反転する.

	カーソルパターンの指定は、d2.b でプレーン 0 の反転パターン、d2.hb でプ
	レーン 1 の反転パターンを設定し、d2.hw で指定したライン位置から一番下
	のラインまで排他的論理和がとられる. $0000_ffffで従来のパターンと同じに
	なる. d2.w が 0 の場合は d1.w = 3 で設定したパターンが使用される.

	カーソルパターンの定義は、d2.l をカーソルのパターンアドレスと見なして
	内部バッファにコピーする. パターンはプレーン 0/1 の順に 16 バイトずつ
	並べる.

	スムーススクロールを使用する場合は、文字を連続的に出力しなければスクロ
	ール時に画面が乱れる. 垂直同期(16ms)の間に 1 ライン出力を終了すること.
	また、広範囲でのソフトコピースクロールは、表示速度が遅くなる.

	この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X 常駐時のみ使用
	可能. ただし、前者の場合は d1.w = 2 のカーソルパターン指定で d2.l = 0
	の場合は標準のカーソルが表示される. また d2.w = 3 のカーソルパターン定
	義は使用できないので注意すること.

==============================================================================

$ae	_OS_CURON	カーソル表示

	カーソル表示をする. コンソールに対して ESC[>5l を出力した時に使用される.
	IOCS $20~$2f に対して有効.

==============================================================================

$af	_OS_CUROF	カーソル消去

	カーソル表示しない. コンソールに対して ESC[>5h を出力した時に使用される.
	IOCS $20~$2f に対して有効.

==============================================================================

$b0	_DRAWMODE	グラフィック描画モードの設定

引数	d1.w	描画モード(0:通常 1:反転 -1:現在のモードを調べる)

返値	変更前のモード

	グラフィック描画の際の描画モードを設定する.
	反転モードで描画した場合、書き込まれるドットの色の NOT 値で描画する.
	このモードで 2 回描画すると、画面が元に戻る. 使用後は通常の描画モード
	に戻すこと.
	反転モードが有効な IOCS コールは _LINE、_BOX、_FILL、_SYMBOL だけで、
	他のコールは常に通常のモードで描画される.
	この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X、HIOCS.X 常駐
	時のみ使用可能だが、前の二つでは正常に動作しない.

==============================================================================

$b1	_APAGE		グラフィック描画ページの設定

引数	d1.b	書き込みページ(0~3,-1 の時は現在の設定を調べます)

返値	d1.b = -1 の時、現在の書き込みページ
	それ以外の時、ステータス
		d0.l =	0	正常終了
			-1	グラフィック使用不可
			-2	ページが指定外(4 以上)
			-3	指定ページは現在のモードでは使用不可

	グラフィック画面の書き込みページを設定する.

==============================================================================

$b2	_VPAGE		グラフィック画面表示ページの設定

引数	d1.b	表示ページ(bit 0~3 がページ 0~3 に対応)

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	ページが指定外
		-3	指定ページは現在のモードでは使用不可

	グラフィック画面の表示ページを設定する.

==============================================================================

$b3	_HOME		グラフィック画面の表示位置設定

引数	d1.b	表示位置を設定するページ(bit 0~3 がページ 0~3 に対応,0 で全てのページ)
	d2.w	X 座標
	d3.w	Y 〃

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	ページ若しくは座標が指定外
		-3	指定ページ若しくは座標は現在のモードでは使用不可

	グラフィック画面の表示位置を設定する.
	d1.b = 0 の時、有効なページが全て変更される.

==============================================================================

$b4	_WINDOW		グラフィック描画ウィンドウの設定

引数	d1.w	左端 X 座標
	d2.w	上端 Y 〃
	d3.w	右端 X 〃
	d4.w	下端 Y 〃

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	座標指定が異常
		-3	指定座標は現在のモードでは使用不可

	グラフィック画面のクリッピング範囲を設定する. IOCS $b5~$bf に対して有効.
	d1.w ≦ d3.w かつ d2.w ≦ d4.w でなければならない.

==============================================================================

$b5	_WIPE		グラフィック画面のクリア

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可

	グラフィック画面をクリアする.

==============================================================================

$b6	_PSET		グラフィック画面のポイントセット

引数	a1.l	パラメータバッファのアドレス
		(0,a1)	X 座標
		(2,a1)	Y 〃
		(4,a1)	パレットコード

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に点を描画する.

==============================================================================

$b7	_POINT		グラフィック画面のポイントゲット

引数	a1.l	パラメータバッファのアドレス
		(0,a1)	X 座標
		(2,a1)	Y 〃
		(4,a1)	(パレットコード)

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可

	グラフィック画面の指定の点のパレットコードを調べる.
	指定座標がクリッピング範囲外であった場合、パレットコードは常に 0 が返る.

==============================================================================

$b8	_LINE		グラフィック画面のライン

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	始点 X 座標
		 (2,a1)	〃   Y 〃
		 (4,a1)	終点 X 〃
		 (6,a1)	〃   Y 〃
		 (8,a1)	パレットコード
		(10,a1)	ラインスタイル

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に線を描画する.

==============================================================================

$b9	_BOX		グラフィック画面のボックス

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	始点 X 座標
		 (2,a1)	〃   Y 〃
		 (4,a1)	終点 X 〃
		 (6,a1)	〃   Y 〃
		 (8,a1)	パレットコード
		(10,a1)	ラインスタイル

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に長方形を描画する.

==============================================================================

$ba	_FILL		グラフィック画面のボックスフィル

引数	a1.l	パラメータバッファのアドレス
		(0,a1)	始点 X 座標
		(2,a1)	〃   Y 〃
		(4,a1)	終点 X 〃
		(6,a1)	〃   Y 〃
		(8,a1)	パレットコード

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に塗り潰した長方形を描画する.

==============================================================================

$bb	_CIRCLE		グラフィック画面のサークル

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	中心 X 座標
		 (2,a1)	〃   Y 〃
		 (4,a1)	半径
		 (6,a1)	パレットコード
		 (8,a1)	円弧開始角度(負数で扇形を描画)
		(10,a1)	〃  終了〃  (	    〃	     )
		(12,a1)	比率

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に楕円を描画する.
	円弧開始/終了角度は 0~360 で、負数を指定すると扇形(角度は値の絶対値)
	を描画する.
	比率(以下 P)は 0~$ff00 で、描画する楕円の形は以下の通り.

	  0 ≦ P <   256	横長楕円 Rx = R ; Ry = R*P/256
	256 < P ≦ $ff00	縦長楕円 Ry = R ; Rx = R*P/$ff00(P は 256 単位で切捨て)
	       P =   256	    真円 Rx = Ry = R

==============================================================================

$bc	_PAINT		グラフィック画面のペイント

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	X 座標
		 (2,a1)	Y 〃
		 (4,a1)	パレットコード
		 (6,a1)	作業領域開始アドレス
		(10,a1)	〃	終了〃

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面を塗り潰す.
	作業領域は偶数番地から始まる必要があり、不足した場合はペイント途中で戻る.

==============================================================================

$bd	_SYMBOL		グラフィック画面のシンボル

引数	a1.l	パラメータバッファのアドレス

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	指定パレットコードは現在のモードでは使用不可

	グラフィック画面に文字列を拡大して描画する.
	座標は、回転角度が 0,90,180,270 の時それぞれ左上/左下/右下/右上隅を指定する.
	パラメータバッファの内容は以下の通り.

offset	size
 0	1.w	X 座標
 2	1.w	Y 〃
 4	1.l	文字列のアドレス
 8	1.b	X 方向倍率
 9	1.b	Y 〃
10	1.w	パレットコード
12	1.b	文字パターンの大きさ(0:12 ドット系 1:16〃 2:24〃)
13	1.b	回転角度(0:0°1:90°2:180°3:270°)

==============================================================================

$be	_GETGRM		グラフィック画面のドット単位読み込み

引数	a1.l	パラメータバッファのアドレス

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	座標指定が異常
		-3	バッファの容量が小さすぎる

	グラフィック画面からバッファにドット単位で読み込む.
	パラメータバッファの内容は以下の通り.

offset	size
 0	1.w	始点 X 座標
 2	1.w	〃   Y 〃
 4	1.w	終点 X 〃
 6	1.w	〃   Y 〃
 8	1.l	バッファ開始アドレス
12	1.l	〃	終了〃

==============================================================================

$bf	_PUTGRM		グラフィック画面のドット単位書き込み

引数	a1.l	パラメータバッファのアドレス

返値	d0.l =	0	正常終了
		-1	グラフィック使用不可
		-2	座標指定が異常
		-3	バッファの容量が小さすぎる

	バッファからグラフィック画面にドット単位で書き込む.
	パラメータバッファの内容は以下の通り.

offset	size
 0	1.w	始点 X 座標
 2	1.w	〃   Y 〃
 4	1.w	終点 X 〃
 6	1.w	〃   Y 〃
 8	1.l	バッファ開始アドレス
12	1.l	〃	終了〃

==============================================================================

$c0	_SP_INIT	スプライト初期化

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	スプライト画面を初期化する.

==============================================================================

$c1	_SP_ON		スプライト表示

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	スプライト画面を表示する.

==============================================================================

$c2	_SP_OFF		スプライト消去

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	スプライト画面を表示しない.

==============================================================================

$c3	_SP_CGCLR	スプライトパターンのクリア

引数	d1.l	パターンコード(0~255)

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	指定した PCG をクリアする. クリアするパターンの大きさは 128 バイト.

==============================================================================

$c4	_SP_DEFCG	スプライトパターンの定義

引数	d1.l	パターンコード(0~255)
	d2.l	パターンの大きさ(0:8x8 1:16x16)
	a1.l	パターンデータのアドレス

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	指定した PCG のパターンを定義する.
	パターンの大きさは d2.l = 0 の時 32 バイト、d2.l = 1 の時 128 バイト.

==============================================================================

$c5	_SP_GTPCG	スプライトパターンの読み込み

引数	d1.l	パターンコード(0~255)
	d2.l	パターンの大きさ(0:8x8 1:16x16)
	a1.l	バッファのアドレス

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	指定した PCG のパターンを読み込む.
	バッファは d2.l = 0 の時 32 バイト、d2.l = 1 の時 128 バイト必要.

==============================================================================

$c6	_SP_REGST	スプライトレジスタの設定

引数	d1.l	垂直帰線期間検出/スプライト番号
		bit   31	0:垂直帰線期間検出後設定 1:検出しない
		bit 6~0	スプライト番号(0~127)
	d2.l	X 座標(0~1023	16 で左端に表示される)
	d3.l	Y 〃  (〃	〃   上端〃	     )
	d4.l	パターンコード
		bit	15	縦方向反転指定(0:反転しない 1:する)
		bit	14	横〃	      (		〃	  )
		bit 11~ 8	パレットブロック指定(0~15)
		bit  7~ 0	パターンコード(0~255)
	d5.l	プライオリティ
		d5.l =	0	スプライトを表示しない
			1	BG0 < BG1 < SP
			2	BG0 < SP  < BG1
			3	SP  < BG0 < BG1

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	スプライトレジスタを設定する.
	d2.l/d3.l/d4.l/d5.l を -1 にすると設定を変更しないが、始めての設定時に
	は -1 を指定してはいけない.

==============================================================================

$c7	_SP_REGGT	スプライトレジスタの読み出し

引数	d1.l	スプライト番号(0~127)

返値	d0.l =	0	正常終了
		-1	画面モードが不正
	d2.l	X 座標
	d3.l	Y 〃
	d4.l	パターンコード
	d5.l	プライオリティ

	スプライトレジスタを読み出す.

==============================================================================

$c8	_BGSCRLST	バックグラウンドスクロールレジスタの設定

引数	d1.l	垂直帰線期間検出/バックグラウンドの指定
		bit 31	0:垂直帰線期間検出後設定 1:検出しない
		bit  0	BG 番号(0/1)
	d2.l	X 座標(0~1023)
	d3.l	Y 〃  (〃     )

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	バックグラウンドスクロールレジスタを設定する. d2.l/d3.lを -1 にすると
	設定を変更しないが、始めての設定時には -1 を指定してはいけない.

==============================================================================

$c9	_BGSCRLGT	バックグラウンドスクロールレジスタの読み出し

引数	d1.l	バックグラウンドの指定(0/1)

返値	d0.l =	0	正常終了
		-1	画面モードが不正
	d2.l	X 座標
	d3.l	Y 〃

	バックグラウンドスクロールレジスタを読み出す.

==============================================================================

$ca	_BGCTRLST	バックグラウンドコントロールレジスタの設定

引数	d1.l	バックグラウンドの指定(0/1)
	d2.l	テキストページの指定(0/1)
	d3.l	表示/非表示指定(0:非表示 1:表示)

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	バックグラウンドコントロールレジスタを設定する. d2.l/d3.lを -1 にする
	と設定を変更しないが、始めての設定時には -1 を指定してはいけない.

==============================================================================

$cb	_BGCTRLGT	バックグラウンドコントロールレジスタの読み出し

引数	d1.l	バックグラウンドの指定(0/1)

返値	d0.l =	0	テキストページ 0、非表示
		1	〃	       0、  表示
		2	〃	       1、非表示
		3	〃	       1、  表示
		-1	画面モードが不正

	バックグラウンドコントロールレジスタを読み出す.

==============================================================================

$cc	_BGTEXTCL	バックグラウンドテキストのクリア

引数	d1.l	テキストページの指定(0/1)
	d2.l	パターンコード

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	バックグラウンド画面の指定したテキストページをパターンコードで埋める.

==============================================================================

$cd	_BGTEXTST	バックグラウンドテキストの設定

引数	d1.l	テキストページの指定(0/1)
	d2.l	X 座標(0~63)
	d3.l	Y 〃  (  〃 )
	d4.l	パターンコード

返値	d0.l =	0	正常終了
		-1	画面モードが不正

	バックグラウンド画面のテキストページにパターンコードを設定する.

==============================================================================

$ce	_BGTEXTGT	バックグラウンドテキストの読み出し

引数	d1.l	テキストページの指定(0/1)
	d2.l	X 座標(0~63)
	d3.l	Y 〃  (  〃 )

返値	d0.l =	-1	画面モードが不正
		その他	パターンコード

	バックグラウンド画面のテキストページからパターンコードを読み出す.

==============================================================================

$cf	_SPALET		スプライトパレットの設定

引数	d1.l	垂直帰線期間検出/パレットコード
		bit    31	0:垂直帰線期間検出後設定 1:検出しない
		bit 3~ 0	パレットコード(0~15 若しくは 16~255)
	d2.l	パレットブロック(1~15 若しくは 0)
	d3.l	カラーコード(d3.l = -1 の時カラーコードを調べる)

返値	d0.l =	-1	画面モードが不正
		-2	パレットブロック 0 を設定/収得しようとした
		その他	変更前の設定

	スプライトパレットを設定する.
	パレットブロックに 0 を指定した場合は、パレットコードをパレット先頭か
	らの通し番号で指定する事が出来る. ただし、パレットブロック 0 は指定で
	きないので、パレットコードは 16 以上に限る.
	垂直帰線期間を検出せずにパレットを設定すると、画面がちらつく.

==============================================================================

$d3	_TXXLINE	テキスト画面の水平ライン

引数	a1.l	パラメータバッファのアドレス
		(0,a1)	テキストプレーン(0~3)
		(2,a1)	X 座標
		(4,a1)	Y 〃
		(6,a1)	X 方向の長さ
		(8,a1)	ラインスタイル(下位バイトのみ有効)

	テキスト画面に垂直線を描画する.
	ROM IOCS version 1.3 若しくは IOCS.X 常駐時は、テキストプレーンの指定
	において最上位ビットを 1 にすることにより、複数プレーンに同時に描画す
	る事が出来る. bit 0~3 がプレーン0~3に対応する. また、呼び出された時
	にテキスト同時アクセス機能が有効になっていれば、テキストプレーンの指定
	は無視され、設定されていたプレーンに描画される.

==============================================================================

$d4	_TXYLINE	テキスト画面の垂直ライン

引数	a1.l	パラメータバッファのアドレス
		(0,a1)	テキストプレーン(0~3)
		(2,a1)	X 座標
		(4,a1)	Y 〃
		(6,a1)	Y 方向の長さ
		(8,a1)	ラインスタイル(下位バイトのみ有効)

	テキスト画面に水平線を描画する.
	テキストプレーンの指定は _TXXLINE と同じ.

==============================================================================

$d5	_TXLINE		テキスト画面のライン

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	テキストプレーン(0~3)
		 (2,a1)	始点 X 座標
		 (4,a1)	〃   Y 〃
		 (6,a1)	X 方向の長さ
		 (8,a1)	Y 〃
		(10,a1)	ラインスタイル(下位バイトのみ有効)

	テキスト画面に線を描画する.
	テキストプレーンの指定は _TXXLINE と同じ.
	CRTC のビットマスク機能を使用しているので、マウスカーソルはオフにして
	このコールを呼び出ること.
	この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X 常駐時のみ使用
	可能.

==============================================================================

$d6	_TXBOX		テキスト画面のボックス

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	テキストプレーン(0~3)
		 (2,a1)	X 座標
		 (4,a1)	Y 〃
		 (6,a1)	X 方向の長さ
		 (8,a1)	Y 〃
		(10,a1)	ラインスタイル(下位バイトのみ有効)

	テキスト画面に長方形を描画する.
	テキストプレーンの指定は _TXXLINE と同じ.

==============================================================================

$d7	_TXFILL		テキスト画面のボックスフィル

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	テキストプレーン(0~3)
		 (2,a1)	X 座標
		 (4,a1)	Y 〃
		 (6,a1)	X 方向の長さ
		 (8,a1)	Y 〃
		(10,a1)	ラインスタイル

	テキスト画面に塗り潰した長方形を描画する.
	テキストプレーンの指定は _TXXLINE と同じ.
	ラインスタイルは、上位・下位バイトでそれぞれ偶数ライン目・奇数ライン目
	の水平方向のラインスタイルを指定する.

==============================================================================

$d8	_TXREV		テキスト画面の反転

引数	a1.l	パラメータバッファのアドレス
		 (0,a1)	テキストプレーン(0~3)
		 (2,a1)	X 座標
		 (4,a1)	Y 〃
		 (6,a1)	X 方向の長さ
		 (8,a1)	Y 〃

	テキスト画面の指定範囲を反転する.
	ROM IOCS version 1.3 若しくは IOCS.X 常駐時、呼び出された時にテキスト
	同時アクセス機能が有効になっていれば、テキストプレーンの指定は無視され、
	設定されていたプレーンに描画される.

==============================================================================

$df	_TXRASCPY	テキスト画面のラスターコピー

引数	d1.hb	コピー元ラスタ番号
	d1.b	コピー先〃
	d2.w	コピーラスタ数
	d3.hb	ポインタ移動方向(0:下方向 -1:上方向)
	d3.b	テキストプレーン(bit 0~3 がプレーン 0~3 に対応する)

	テキスト画面の指定範囲をラスタコピーする.

==============================================================================

$f0	_OPMDRV		OPMDRV 制御

引数	d1.l	機能番号

	音源ドライバ OPMDRV.X で追加されたファンクションコールを呼び出す.
	引数/返値は機能番号によって異なる.

==============================================================================

$f1	_RSDRV		拡張 RS-232C 制御

引数	d2.hb	AUX 番号(0~5)
	d2.b	機能番号($30~$39)
		d2.b =	$30~$35	指定したポートで直接 IOCS $30~$35 の
					機能を実行する.
			$36,$37		d1.l = バッファサイズ
					a1.l = バッファアドレス
					指定ポートの受信バッファを設定する.
			$38,$39		未解析.

返値
	d2.b = $36,$37 の時
		d1.w = 変更前のバッファサイズ
		a1.l = 変更前のバッファアドレス

	RSDRV.SYS で追加されたファンクションコールを呼び出す.
	詳細不明.

==============================================================================

$f2	_A_JOYGET	アナログジョイスティック制御

引数	d1.l	機能番号
	d2.w	モード(d1.l = 1 の時)
		d2.w =	0	デジタル
			1	アナログ
			-1	現在の設定を調べる
	d2.w	通信速度(d1.l = 2 の時)
		d2.w =	0	最高速度
			1	最高速度の1/2
			2	〃	  1/3
			3	〃	  1/4
			-1	現在の速度を調べる
	a1.l	バッファアドレス(d1.l = 0 の時のみ)

返値	d1.l =	0 の時、ステータス(-1 でエラー)
		1 の時、変更前のモード
		2 の時、変更前の速度

	アナログジョイスティックドライバ AJOY.X で追加されたファンクション
	コールを呼び出す.

	d1.l = 0 の時、a1.l で指定したバッファにアナログジョイスティックのデー
	タを読み込む. ジョイスティックデータの内容は以下の通り.

offset	size
0	1.w	スティック上下(0:上~255:下)
2	1.w	〃	  左右(0:左~255:右)
4	1.w	スロットル
6	1.w	オプション
8	1.w	トリガ(押し下げ状態でビットが0になる)
		bit 11	A
		bit 10	B
		bit  9	A'
		bit  8	B'
		bit  7	A or A'(どちらかを押していれば0)
		bit  6	B or B'(	〃	       )
		bit  5	C
		bit  4	D
		bit  3	E1
		bit  2	E2
		bit  1	スタート
		bit  0	セレクト

	d1.l = 1 の時、ジョイスティックのモードを変更する.

	d1.l = 2 の時、ジョイスティックの通信速度を変更する. 最高速度に設定し
	た場合、ジョイスティックをリセットしない限り他の速度に変更出来なくなる.

==============================================================================

$f3	_MUSICDRV	MUSICDRV 制御

引数	d1.l	機能番号

	音源ドライバ MUSICDRV.X で追加されたファンクションコールを呼び出す.
	引数/返値は機能番号によって異なる.

==============================================================================

$f5	_SCSIDRV	SCSI IOCS

引数	d1.l	機能番号

	SCSI IOCS で追加されたファンクションコールを呼び出す.
	引数/返値は機能番号によって異なる.

==============================================================================

$fd	_ABORTRST	アボートする為に環境を再設定する

	アボートするための環境を再設定する. OS で使用する.

==============================================================================

$fe	_IPLERR		再起動する

	起動時のエラーで再起動する時に使用する. 通常は使用しない.

==============================================================================

$ff	_ABORTJOB	アボート

	アボートする. OS で使用する.

==============================================================================