*******************************************************************************
IOCSの関数 << M E N U >> IOCS番号順
CTRL + HOME Menu:B_KEYINP 入出力関係
@ 0 B_CURON カーソル・エスケープ関係
@ 1 SET232C RS232C関係
@ 2 B_SEEK ディスク操作関係
@ 3 DATEBCD 日付・時間 関係
@ 4 ADPCMOUT ADPCM 関係
@ 5 OPMSET OPM・マウス・その他の関係
@ 6 APAGE グラフィック関係
@ 7 SP_INIT スプライト関係
@ 8 TXXLINE テキスト画面 描画関係
@ 9 key code キーコード表
*******************************************************************************
B_KEYINP:
書式 #INCLUDE <IOCSLIB.H>
int B_KEYINP();
戻り値 スキャンコード*256+内部コード
機能 キーデータの読み出し
電卓が処理されます
*256はスキャンコードが上位1バイト
B_KEYSNS:
書式 #INCLUDE <IOCSLIB.H>
int B_KEYSNS();
戻り値 0の場合 ,KEYは押されていない。
$010000+スキャンコード*256+内部コード
機能 キーデータバッファ状態のセンス
電卓が処理されます
*256はスキャンコードが上位1バイト
B_SFTSNS:
書式 #INCLUDE <IOCSLIB.H>
int SFTSNS(KEYGRP);
戻り値 BIT 15-8 (B15 B14 B13 B12 B11 B10 B9 B8)
0 全角 ひらがな INS CAPS コード入力 ローマ字 かな
BIT 7-0 (B7 B6 B5 B4 B3 B2 B1 B0)
CAPS コード ローマ字 かな OPT2 OPT1 CTRL SHIFT
機能 シフトキーの状態が押されているか押されていないかを調べる
ビットが1なら押されている(ONモード)
BITSNS:
書式 #INCLUDE <IOCSLIB.H>
int B_BITSNS(KEYGRP);
int KEYGRP;
戻り値
b7,b6,b5,b4,b3,b2,b1,b0
BITの中に指定グループ内の状態がはいる
機能 KEYGRPに$00〜$0Fまでのキ−コ−ドグル−プを入力する。
キーの状態が押されているか押されていないかを調べる
ビットが1なら押されている(ONモード)
SKEYSET:
書式
int SKEYSET(KEYCODE);
int KEYCODE;
戻り値
なし
機能
KEYCODEにキ−コ−ドを入力する。
キーコードの値のキーが押されたり離される、とゆう処理をする。
OFFの場合は、ONに$80をたした値。
TVCTRL:
書式
int TVCTRL(CODE);
int CODE;
戻り値
なし
機能
CODEにTVコントロールコードを入力する。(6ビット)
CODEの値によりTV操作をする。
TVコントロールコード表
$00
$01 ボリュームをあげる
$02 ボリュームをさげる
$03 ボリュームを普通にする
$04 チャンネルコール
$05 テレビ画面(初期化・リセット)
$06 音声ミュート
$07 電源ON
$08 テレビ/コンピュータ
$09 テレビ/外部,コンピュータノーマル/オーバー
$0a コントラストノーマル
$0b チャンネル アップ
$0c チャンネル ダウン
$0d 電源OFF
$0e 電源ON/OFF
$0f スーパー1
$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 スーパー1($05+$0f)
$1f スーパー2($05+$0f+$0a)
$20~$3f 電源をONして上のファンクションを実行する
LEDMOD:
書式
#INCLUDE <IOCSLIB.H>
int LEDMOD(KEYMODE,ONOFF);
int KEYMODE;
int ONOFF;
戻り値 なし
機能 KEYCODE: 6 5 4 3 2 1 0
全角 ひらがな INS CAPS コード入力 ローマ字 かな
ONOFF: 0...OFF 1...ON
D1にKEYCODEの番号を入力する。 D2にONOFFを入力する。
LEDキーのモードを指定する。
TGUSEMD:
書式 #INCLUDE <IOCSLIB.H>
int TGUSEMD(TEXT_GR,MODE);
int TEXT_GR;
int MODE;
戻り値 TEXT_GRで指定した画面のモード(0〜3)
機能 TEXT_GR=0..グラフィック($c00000〜$dfffff)
1..テキスト($e40000〜$e7ffff)
MODE=0..誰も使用していない
1..システムで使用している(ソフトキー/電卓/RAMディスク)
2..アプリケ−ションで使用している
3..アプリケ−ションで使用したあとで壊れたままである
-1..どのモードかを読み取る
TEXT_GRで画面を設定。
MODEで使用状況を設定。
DEFCHR:
書式 #INCLUDE <IOCSLIB.H>
int DEFCHR(TYPE,CODE,ADDRESS);
int TYPE;
int CODE;
ptr ADDRESS;
戻り値 0..OK
−1..ERROR(外字でない)
機能 TYPEに8か12で文字の大きさを指定。(0なら8と同じ)
CODEにsftjis codeを指定する。
JIS漢字コード($2121〜$7E7E)も可
ADDRESS=データの先頭アドレス(先頭からデータ)
ADDRESSのBYTE単位でパターンデータを格納しておく。
CRTMOD:
書式 #INCLUDE <IOCSLIB.H>
int CRTMOD(CRTMODE);
int CRTMODE;
戻り値
CRTMODが−1の時は現在のモ−ド,それ以外の時は壊れる
機能 CRTのモードを指定します。
テキスト画面をクリアして、表示モードにします。
テキストパレットは標準に戻ります。
グラフィック画面はクリアせず、無表示モードにします。
スプライト・BGもクリアせず、無表示モードにします。
CRTMODが−1なら現在のモードを返します
CRTMODが$100以上なら下位8ビットでモード切り換えのみ行います
(画面クリア、パレット・コントラスト・表示モードの初期化はしません)
********** CRTMODの値 *************
0 = high 512*512 16/16 1024 1 = low 512*512 16/16 1024
2 = high 256*256 16/16 1024 3 = low 256*256 16/16 1024
4 = high 512*512 16/16 512 5 = low 512*512 16/16 512
6 = high 256*256 16/16 512 7 = low 256*256 16/16 512
8 = high 512*512 16/256 512 9 = low 512*512 16/256 512
10 = high 256*256 16/256 512 11 = low 256*256 16/256 512
12 = high 512*512 16/65536 512 13 = low 512*512 16/65536 512
14 = high 256*256 16/65536 512 15 = low 256*256 16/65536 512
16 = high 768*512 16/16 1024 17 = high 1024*400 16/16 1024
18 = high 1024*800 16/16 1024
CONTRAST:
書式
#INCLUDE <IOCSLIB.H>
int CONTRAST(MODE);
int MODE;
戻り値
前のコントラスト
機能
コントラストを指定します。
MODEが0から15までならコントラストの設定
−1ならコントラストを調べるだけ
−2ならシステムの既定値に戻す
HSVTORGB:
書式
#INCLUDE <IOCSLIB.H>
int HSVTORGB(H,S,V);
int H;
int S;
int V;
戻り値
00000000 00000000 GGGGGRRR RRBBBBB0
機能
HSV方式から、RGB方式に、変換します。
H:
III=000 赤〜黄色
III=001 黄色〜緑
III=010 緑〜シアン
III=011 シアン〜青
III=100 青〜マゼンダ
III=101 マゼンダ〜赤
III=11? 禁止
FFFFFFはIIIの間の色合い
H:
SSSSSSは白レベル(0で白、$1Fで原色)
S:
VVVVVVは黒レベル(0で黒)
RGB パレットで指定するデータ形式になります。
(緑・赤・青、各5ビットずつ、最下位ビットは0)
TPALET:
書式 #INCLUDE <IOCSLIB.H>
int TPALET(PALETNO,COLORCODE);
int PALETNO;
int COLORCODE;
戻り値 COLORCODEが—1の時、前のパレット番号。
機能 テキストのパレットを指定する。(1)
PALETNOが4〜7の場合は、4〜7に同じパレットをセットします。
PALETNOが8〜15の場合は、8〜15に同じパレットをセットします。
COLORCODEが—1ならパレットの読みだしのみ行います。
COLORCODEが—2ならパレットをシステムの既定値に戻します
PALETNOは(0~3,4,8)。
COLORCODEは0から65535まで。
TPALET2:
書式 #INCLUDE <IOCSLIB.H>
int TPALET2(PALETNO,COLORCODE);
int PALETNO;
int COLORCODE;
戻り値 COLORCODEが—1の時、前のパレット番号。
機能 テキストのパレットを指定する。(2)
COLORCODEが—2ならパレットをシステムの既定値に戻します
PALETNOは(0~3,4,8)。
COLORCODEは0から65535まで。
TCOLOR:
書式
#INCLUDE <IOCSLIB.H>
int TCOLOR(TEXTCOLOR);
int TEXTCOLOR;
戻り値
なし
機能
テキストのカラーを指定する。
原則として(1,2,4,8の値のみとする。)
TEXTCOLORは、0から15まで。
FNTGET:
書式 #INCLUDE <IOCSLIB.H>
int FNTGET(TYPE,CODE,BUF);
int TYPE; int CODE; ptr BUF;
戻り値 なし
機能 指定の漢字パターンを指定アドレスへ読み込む
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
TYPEに8,12で文字の大きさを指定。(0なら8と同じ)
CODEにsftjis codeをしてい。
JIS漢字コード($2121〜$7E7E)も可
BUFにデータバッファの先頭アドレスを指定。(4+フォント分のバイト要)
アドレスの内容は、文字パターンのX方向のドット数
文字パターンのY方向のドット数
パターンデータ
TEXTGET:
書式 #INCLUDE <IOCSLIB.H>
int TEXTGET(XDOT,YDOT,BUF);
int XDOT; int YDOT; ptr BUF;
戻り値 なし
機能
指定のドット座標から指定アドレスへパターンを読み込む
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
XDOTにXドット座標
YDOTにYドット座標
BUFにデータバッファの先頭アドレスを指定。
アドレスの内容は、文字パターンのX方向のドット数
文字パターンのY方向のドット数
パターンデータ
TEXTPUT:
書式 #INCLUDE <IOCSLIB.H>
int TEXTPUT(XDOT,YDOT,ADDRESS):
int XDOT; int YDOT; ptr ADDRESS;
戻り値 なし
機能
指定のドット座標から指定アドレスへパターンを読み込む
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
XDOTにXドット座標
YDOTにYドット座標
ADDRESSにデータバッファの先頭アドレスを指定。
アドレスの内容は、書きたいパターンのX方向のドット数
書きたいパターンのY方向のドット数
パターンデータ
CLIPPUT:
書式
#INCLUDE <IOCSLIB.H>
int CLIPPUT(XDOT,YDOT,ADDRESS,CLIPXY);
int XDOT;
int YDOT;
ptr ADDRESS;
ptr CLIPXY;
戻り値
なし
機能
指定アドレスのパターンを指定ドット座標に書き込む
指定したクリップ座標に従いクリッピング処理する
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
XDOTにXドット座標
YDOTにXドット座標
ADDRESSにデータバッファの先頭アドレスをそれぞれ指定する。
アドレスの内容は、書きたいパターンのX方向のドット数
書きたいパターンのY方向のドット数
パターンデータ
CLIPXYにクリップ座標バッファの先頭アドレスを指定
アドレスの内容は、表示領域のX座標先頭
表示領域のY座標先頭
表示領域のX座標END
表示領域のY座標END
SCROLL:
書式
#INCLUDE <IOCSLIB.H>
int SCROLL(MODE,XDOT,YDOT);
int MODE;
int XDOT;
int YDOT;
戻り値
(high16)=前のXドット座標
(low 16)=前のYドット座標
機能
テキスト/グラフィックの表示座標を設定/調べる
MODEに0から9までの値を指定
0=グラフィックスクリーン0設定
1=グラフィックスクリーン1設定
2=グラフィックスクリーン2設定
3=グラフィックスクリーン3設定
4=グラフィックスクリーン0調べる
5=グラフィックスクリーン1調べる
6=グラフィックスクリーン2調べる
7=グラフィックスクリーン3調べる
8=テキスト設定
9=テキスト調べる
XDOTにXドット座標を指定
YDOTにYドット座標を指定
@B_CURON:
書式
#INCLUDE <IOCSLIB.H>
int B_CURON()
戻り値
なし
機能
カーソルをONする。
17,$18,$1A,$1CのBIOSコールの前に必ず行うようにする。
B_CUROFF:
書式
#INCLUDE <IOCSLIB.H>
int B_CUROFF();
戻り値
なし
機能
カーソルをOFFする。
17,$18,$1A,$1CのBIOSコールの前に必ず行うようにする。
B_PUTC:
書式
#INCLUDE <IOCSLIB.H>
int B_PUTC(CODE);
int CODE;
戻り値
(high16)=前のXドット座標
(low 16)=前のYドット座標
機能
指定した1バイトデータを表示する。
B_PRINT:
書式
#INCLUDE <IOCSLIB.H>
int B_PRINT(MESPTR);
int MESPTR;
戻り値
(high16)=X座標
(low 16)=Y座標
機能
指定した文字列データを表示する。(end=0)
ADDRESSに文字列先頭アドレス指定。
B_COLOR:
書式 #INCLUDE <IOCSLIB.H>
int B_COLOR(COLOR);
int COLOR;
戻り値 前の属性 -1=オーバーエラー
機能 指定した属性をセットする
COLORに属性を指定
0=黒 1=水色 2=黄色 3=白
4=黒 5 6 7 それぞれの強調
8=黒 9 10 11 それぞれのリバース
12=黒 13 14 15 それぞれの強調リバース
-1=前の属性を返すだけ
B_LOCATE:
書式
#INCLUDE <IOCSLIB.H>
int B_LOCATE(X,Y)
int X;
int Y;
戻り値
(high16)=前のX座標
(low16)=前のY座標
機能
指定したカーソル位置に設定する。
XにX座標を指定。(-1 = 前の座標を返すだけ)
YにY座標を指定。
B_DOWN_S:
書式
#INCLUDE <IOCSLIB.H>
int B_DOWN_S();
戻り値
なし
機能
1行下へ、最下行ではスクロールアップ
B_UP_S
書式
#INCLUDE <IOCSLIB.H>
int B_UP_S();
戻り値
なし
機能
1行上へ、先頭行ではスクロールダウン
B_UP:
書式
#INCLUDE <IOCSLIB.H>
int B_UP(N);
int N;
戻り値
なし
機能
Nにスクロールさせる行を指定。
N行上へ、スクロールなし、0は1と同じ
B_DOWN:
書式
#INCLUDE <IOCSLIB.H>
int B_DOWN(N);
int N;
戻り値
なし
機能
Nにスクロールさせる行を指定。
N行下へ、スクロールなし、0は1と同じ
B_RIGHT:
書式
#INCLUDE <IOCSLIB.H>
int B_RIGHT(N);
int N;
戻り値
なし
機能
Nに移動させる行を指定。
N行右へ、スクロールなし、0は1と同じ
B_LEFT:
書式
#INCLUDE <IOCSLIB.H>
int B_LEFT(N);
int N;
戻り値
なし
機能
Nに移動させる行を指定。
N行左へ、スクロールなし、0は1と同じ
B_CLR_ED:
書式
#INCLUDE <IOCSLIB.H>
int B_CLR_ED();
戻り値
なし
機能
カーソル位置から最終行右端まで画面をクリアする。
B_CLR_ST:
書式
#INCLUDE <IOCSLIB.H>
int B_CLR_ST();
戻り値
なし
機能
先頭行左端からカーソル位置まで画面をクリアする。
B_CLR_AL:
書式
#INCLUDE <IOCSLIB.H>
int B_CLR_AL();
戻り値
なし
機能
画面全体をクリアする。
カーソルはホームに移動
B_ERA_ED:
書式
#INCLUDE <IOCSLIB.H>
int B_ERA_ED();
戻り値
なし
機能
カーソル位置から行の右端まで現在行のクリアする。
B_ERA_ST:
書式
#INCLUDE <IOCSLIB.H>
int B_ERA_ST;
戻り値
なし
機能
左端からカーソル位置まで現在行をクリアする。
B_ERA_AL:
書式
#INCLUDE <IOCSLIB.H>
int B_ERA_AL(N);
int N;
戻り値
なし
機能
画面全体をクリア
カーソルはホームに移動
B_INS:
書式
#INCLUDE <IOCSLIB.H>
int B_INS(N);
int N;
戻り値
なし
機能
カーソル行にN行挿入、0は1と同じ
カーソルのX座標は0になります
B_DEL:
書式
#INCLUDE <IOCSLIB.H>
int B_DEL(N);
int N;
戻り値
なし
機能
表示範囲を指定します。
カーソルはホーム位置に移動します
B_CONSOL:
書式
#INCLUDE <IOCSLIB.H>
int B_CONSOL(XS,YS,XL,YL);
int XS;
int YS;
int XL;
int YL;
戻り値
XSにX先頭座標が格納される。(16ドットごと<0~1023 step 16>)
YSにY先頭座標が格納される。(4ドットごと<0~1023 step 4>)
XLにX最終座標が格納される。(8ドット単位<0~127>)
YLにY最終座標が格納される。(16ドット単位<0~63>)
機能
表示範囲を指定します。
カーソルはホーム位置に移動します
XSにX先頭座標を指定。(16ドットごと<0~1023 step 16>)
YSにY先頭座標を指定。(4ドットごと<0~1023 step 4>)
XS,YS両方が-1だったら前のまま
XLにX最終座標を指定。(8ドット単位<0~127>)
YLにY最終座標を指定。(16ドット単位<0~63>)
XL,YL両方が-1だったら前のまま
B_PUTMES:
書式
#INCLUDE <IOCSLIB.H>
int B_PUTMES(COLOR,X,Y,MAX,ADDRESS);
int COLOR;
int X;
int Y;
int MAX;
ptr MESPTR;
戻り値
Xに次のX座標
MESPTRに次の文字列先頭アドレス
機能
カーソル位置(絶対座標)その他指定文字列表示
指定文字数以上は表示しません。
途中で0になったら、後はスペースで埋めます。
ファンクション行表示用
($2eファンクションに左右されません)
COLOLRに属性を指定。
XにX座標(絶対座標)を指定。
YにY座標(絶対座標)を指定。
MAXにX文字数-1(半角単位で)を指定。
MESPTRに文字列先頭アドレス(end=0)を指定。
@SET232C:
書式
#INCLUDE <IOCSLIB.H>
int SET232C(MODE);
int MODE;
戻り値
MODEが−1の時は前のモードを返すだけ
前のモード
機能
MODEに76 54 32 1 0|76543210設定する。
st pp bb x s|00000bau
(st)ストップビット 01=1
10=1.5
11=2
00=2
(pp)パリティ 01=奇数
11=偶数
?0=パリティなし
(bb)ビット長 00=5ビット以下
01=6ビット
10=7ビット
11=8ビット
(x)XON処理の有無 0=処理しない
1=処理する
(s)SISO処理の有無 0=処理しない
1=処理する
(bau)ボーレート指定 000=75 001=150 010=300 011=600
100=1200 101=2400 110=4800 111=9600
LOF232C:
書式
#INCLUDE <IOCSLIB.H>
int LOF232C();
戻り値
232C受信バッファ内データ数
機能
232C受信バッファ内データ数を求める
INP232C:
書式
#INCLUDE <IOCSLIB.H>
int INP232C();
戻り値
下位8ビットに232C受信データが格納される。
機能
232C受信データを求める
ISNS232C:
書式
#INCLUDE <IOCSLIB.H>
int ISNS232C();
戻り値
$010000+受信データ
戻り値が$000000の場合受信データはない
機能
232C受信データをチェックする
OSNS232C:
書式
#INCLUDE <IOCSLIB.H>
int OSNS232C();
戻り値
戻り値が$000000の場合、送信できない
戻り値が$000004の場合、送信できる(バッファは空で、XONでもない)
機能
232C送信が可能かどうかチェックする
OUT232C
書式
#INCLUDE <IOCSLIB.H>
int OUT232C(DATA);
int DATA;
戻り値
なし
機能
232C送信を行う
DATAに送信データを指定。
JOYGET:
書式
#INCLUDE <IOCSLIB.H>
int JOYGET(STICK_NO);
int STICK_NO;
戻り値
1|s2|s1|1|R|L|D|U
機能
ジョイスティックのデータ読み込み
ビットが0ならON/1ならOFFです
STICK_NOでJOY STICKを指定。
0..JOY STICK1 1..JOY STICK2
INIT_PRN:
書式
#INCLUDE <IOCSLIB.H>
int INIT_PRN(LINE,WIDTH);
int LINE;
int DIDTH;
戻り値
$000000なら出力できない
$000020なら出力できる
機能
プリンターポートを初期化する。
LINEに1ページの行数-1を指定。($3fファンクション用$ffでページ指定なし)
WIDTHに1行の文字数-1を指定。($3fファンクション用$ffで行指定なし)
SNSPRN
書式
#INCLUDE <IOCSLIB.H>
int SNSPRN();
戻り値
$000000なら出力できない
$000020なら出力できる
機能
プリンター出力が可能かどうかチェックする
OUTLPT:
書式
#INCLUDE <IOCSLIB.H>
int OUTLPT(DATA);
int DATA;
戻り値
なし
機能
プリンター出力を行う(データ直接)
DATAに出力データ設定。
OUTPRN:
書式
#INCLUDE <IOCSLIB.H>
int OUTPRN(DATA);
int DATA;
戻り値
なし
機能
プリンター出力を行う(シフトJISで漢字処理あり)
DATAに出力データを設定。
@B_SEEK:
書式 #INCLUDE <IOCSLIB.H>
int B_SEEK(DRIVE,RECNO);
int DRIVE,RECNO;
戻り値 st0+pcn+?+? /errcode
機能 d0.l=$40 指定トラック(レコード)までシークします。
DRIVEにpda+modeを指定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
pda= 80~83 hard disk
(RECNO は256バイト単位のレコード番号となる)
90~93 2HD
(RECNO はセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_VERIFY:
書式
#INCLUDE <IOCSLIB.H>
int B_VERIFY(DRIVE,RECNO,LENGTH,ADDRESS);
int DRIVE;
int RECNO;
int LENGTH;
ptr ADDRESS;
戻り値
st0+st1+st2+c /errcode
機能
データの比較チェックをします。
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを指定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
LENGTHにバイト数を指定。
ADDRESSに先頭アドレスを指定。
pda= 80~83 hard disk
(RECNO は256バイト単位のレコード番号となる)
90~93 2HD
(RECNO はセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_READDI:
書式 #INCLUDE <IOCSLIB.H>
int B_READDI(DRIVE,RECNO,LENGTH,ADDRESS);
int DRIVE; int RECNO; int LENGTH;
ptr ADDRESS;
戻り値 st0+st1+st2+c
機能 診断のための読みだし。(2HDのみ)
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを指定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
LENGTHにバイト数を指定。
ADDRESSに先頭アドレスを指定。
pda= 90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_DSKINI:
***** 2HDの場合。*****
書式 #INCLUDE <IOCSLIB.H>
int B_DSKINI(DRIVE,DATAADDRESS,OFFTIME);
int DRIVE; int OFFTIME;
ptr DATADDRESS;
戻り値
st3+?+?+? /errcode
機能
DRIVEにpda+0を設定。
ADDRESSにSPECIFYコマンドのデータアドレスを設定。
0の場合デフォルト($03,$d0,$10)
OFFTIMEにモーターオフまでの時間(n/100秒)を設定。
0の場合デフォルト(200..2秒)
pda= 90~93 2HD
(DATADDRESSはセクタ長+トラック+サイド+セクタ)
***** HDの場合。*****
書式
#INCLUDE <IOCSLIB.H>
int B_DSKINI(DRIVE,DATAADDRESS);
int DRIVE;
ptr DATADDRESS;
戻り値 st3+?+?+? /errcode
機能 DRIVEにpda+0を設定。
DATADDRESSにドライブパラメータのデータアドレスを設定。
0の場合デフォルト($01,$01,$00,$03,$01,$35,$80,$00,$00,$00)
pda= 80~83 hard disk
(DATADDRESSは256バイト単位のレコード番号となる)
B_DRVSNS:
書式
#INCLUDE <IOCSLIB.H>
int B_DRVSNS(DRIVE);
int DRIVE;
戻り値
st3+?+?+? /errcode
機能
ディスクステータスの調査
DRIVEにpda+0を設定。
pda= 80~83 hard disk
90~93 2HD
B_WRITE:
書式
#INCLUDE <IOCSLIB.H>
int B_WRITE(DRIVE,RECNO,LENGTH,ADDRESS);
int DRIVE;
int RECNO;
int LENGTH;
ptr ADDRESS;
戻り値
st0+st1+st2+c /errcode
機能
ディスクにデータを書き込む
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを設定。
RECNOにセクタ長+トラック+サイド+セクタを設定。
LENGTHにバイト数を設定。
ADDRESSに先頭アドレスを設定。
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_READ:
書式
#INCLUDE <IOCSLIB.H>
int B_READ(DRIVE,RECNO,LENGTH,ADDRESS);
int DRIVE;
int RECNO;
int LENGTH;
ptr ADDRESS;
戻り値
st0+st1+st2+c /errcode
機能
ディスクからデータを読み込む
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを設定。
RECNOにセクタ長+トラック+サイド+セクタを設定。
LENGTHにバイト数を設定。
ADDRESSに先頭アドレスを設定。
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_RECALI:
書式 #INCLUDE <IOCSLIB.H>
int B_RECALI(DRIVE);
int DRIVE;
戻り値 st0+pcn+?+? /errcode
機能 トラック0へのシーク
DRIVEにpda+0を設定。 normal
=pda+$ff 強制レディ状態での調査(2HDのみ)
pda= 80~83 hard disk
90~93 2HD
B_ASSIGN:
書式
#INCLUDE <IOCSLIB.H>
int B_ASSIGN(DRIVE,RECORDNO,MODE,ADDRESS);
int DRIVE;
int RECORDNO;
int MODE;
ptr ADDRESS;
戻り値
errcode
機能
assign alternate track(HDのみ)
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを設定。
RECORDNOに256バイト単位のレコード番号を指定。
MODEにインターリブコード(6,1)を指定。
ADDRESSに代替えトラック用データ先頭アドレスを設定。
pda= 80~83 hard disk
(RECORDNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECORDNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_WRITED:
書式
#INCLUDE <IOCSLIB.H>
int B_WRITED(DRIVE,RECNO,LENGTH,ADDRESS);
int DRIVE;
int RECNO;
int LENGTH;
ptr ADDRESS;
戻り値
st0+st1+st2+c
機能
write deleted data(2HDのみ)
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
DRIVEにpda+modeを設定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
LENGTHにバイト数を指定。
ADDRESSに先頭アドレスを設定。
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_READID:
書式
#INCLUDE <IOCSLIB.H>
int B_READID(DRIVE,RECNO,BUF);
int DRIVE;
int RECNO;
char * BUF
戻り値
st0+st1+st2+c
読み込んだIDが指定したBUFに格納される。(セクタ長+トラック+サイド+セクタ)
機能
ID情報を読む(2HDのみ)
-more-
DRIVEにpda+modeを設定。
RECNOに0+トラック+サイド+0を設定。
IDが格納されるBUFを指定する。
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_BADFMT:
書式
#INCLUDE <IOCSLIB.H>
int B_BADFMT(DRIVE,RECORDNO,MODE);
int DRIVE;
int RECORDNO;
int MODE;
戻り値
errcode
機能
バッドトラックを使用不能にします。(HDのみ)
DRIVEにpda+modeを設定。
RECORDNOに256バイト単位のレコード番号を指定。
MODEにインターリブコード(6,1)を指定。
-more-
pda= 80~83 hard disk
(RECORDNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECORDNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_READDL:
書式
#INCLUDE <IOCSLIB.H>
int B_READDL(DRIVE,RECNO,LENGTH,ADDRESS)
int DRIVE;
int RECNO;
int LENGTH;
ptr ADDRESS;
戻り値
st0+st1+st2+c
機能
read deleted data(2HDのみ)
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
-more-
DRIVEにpda+modeを設定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
LENGTHにバイト数を指定。
ADDRESSに先頭アドレスを設定。
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_FORMAT:
書式
#INCLUDE <IOCSLIB.H>
int B_FORMAT(DRIVE,SECTER,LENGTH,IDADDRESS)
int DRIVE;
int RECNO;
int LENGTH;
ptr IDADDRESS;
戻り値
st0+st1+st2+c /errcode
機能
物理フォーマットします
(注)スーパーバイザー領域のアドレスも指定出来ます。
-more- おかしなアドレスを指定しないように!!
DRIVEにpda+modeを設定。
RECNOにセクタ長+トラック+サイド+セクタを指定。
LENGTHにバイト数を指定。 HDはインターリブコード(6,1)
IDADDRESSにIDデータ先頭アドレスを指定。 HDは不要
pda= 80~83 hard disk
(RECNOは256バイト単位のレコード番号となる)
90~93 2HD
(RECNOはセクタ長+トラック+サイド+セクタ)
mode=0:fm/mfm:retry:seek:0:0:0:0
B_DRVCHK:
書式
#INCLUDE <IOCSLIB.H>
int B_DRVCHK(DRIVE,MODE)
int DRIVE;
int MODE;
戻り値 MD=0~7の時
LED点滅|EJECT禁止|BUFFER有り|USER禁止|PRO|RDY|メディア挿入|誤挿入
PRO(プロテクト=1)|RDY(ノットレディ=1)|はMD=0の時でメディア挿入の時
のみ返されます
MD=8の時
DRIVEが1の時 イジェクトしていない
DRIVEが-1の時 イジェクトした
-more-
機能
指定ドライブの状態を見たり、設定したりします。
(2HDのみ)
DRIVEにpda+0を設定。
MODEにMDを設定。
*MD=0 状態を見るだけ(戻り値のビット7〜ビット0)
*LED点滅|EJECT禁止|BUFFER有り|USER禁止|PRO|RDY|メディア挿入|誤挿入
*MD=1 イジェクトする(イジェクト禁止状態では出来ません)
*MD=2 イジェクト禁止1(MD=1のイジェクトも禁止する。)
*MD=3 イジェクト許可1
*MD=4 ディスクがセットされていないとき、LED点滅
*MD=5 ディスクがセットされていないとき、LED消灯
*MD=6 イジェクト禁止2(MD=1のイジェクトも禁止する。)
(OSで使用するので、ユーザー使用禁止)
-more-
*MD=7 イジェクト許可2
(OSで使用するので、ユーザー使用禁止)
*MD=8 前回のチェックから後イジェクトしたかどうかのチェック
(OSで使用するので、ユーザー使用禁止)
pda= 90~93 2HD
(MODEはセクタ長+トラック+サイド+セクタ)
B_EJECT:
書式
#INCLUDE <IOCSLIB.H>
int B_EJECT(DRIVE)
int DRIVE;
戻り値
errcode
機能
イジェクトします。(イジェクト禁止状態でも実行)
HDの場合は、未使用シリンダへシークします。
DRIVEにpda+0を設定。
pda= 80~83 hard disk
90~93 2HD
@DATEBCD:
書式 #INCLUDE <IOCSLIB.H>
int DATEBCD(BINDATE);
int BINDATE;
戻り値 WwYYMMDD /−1ならエラー(うるう年・大小の月判定をする)
W =うるう年カウンタ0〜3
w =曜日カウンタ 0〜6
YY=年(BCD2桁)00〜99(1980〜2079)
MM=月(BCD2桁)01〜12
DD=日(BCD2桁)01〜31
機能 日付を時計にセットできる形式に変更します
BINDATEに0yyymmddを設定。
0yyy=年バイナリ(1980〜2079)
mm =月バイナリ(01〜12)
dd =日バイナリ(01〜31)
DATESET:
書式 #INCLUDE <IOCSLIB.H>
int DATESET(BCDDATE);
int BCDDATE;
戻り値 なし
機能 時計に日付を設定します
BCDDATEにWwYYMMDDを設定。
W =うるう年カウンタ0〜3
w =曜日カウンタ 0〜6
YY=年(BCD2桁)00〜99(1980〜2079)
MM=月(BCD2桁)01〜12
DD=日(BCD2桁)01〜31
TIMEBCD:
書式 #INCLUDE <IOCSLIB.H>
int TIMEBCD(BINTIME);
int BINTIME;
戻り値 0THHMMSS /−1ならエラー
T =1..24時間計
HH=時(BCD2桁)(00〜23)
MM=分(BCD2桁)(00〜59)
SS=秒(BCD2桁)(00〜59)
機能 時間を時計にセットできる形式に変更します
BINTIMEに00hhmmssを設定。
hh=時バイナリ(00〜23)
mm=分バイナリ(00〜59)
ss=秒バイナリ(00〜59)
TIMESET:
書式
#INCLUDE <IOCSLIB.H>
int TIMESET(BCDTIME);
int BCDTIME;
戻り値
なし
機能
時計に時間を設定します
BCDTIMEに0THHMMSSを設定。
T =0..12時間計 1..24時間計
HH=時(BCD2桁)(00〜23)
MM=分(BCD2桁)(00〜59)
SS=秒(BCD2桁)(00〜59)
DATEGET:
書式
#INCLUDE <IOCSLIB.H>
int DATEGET();
戻り値
0wYYMMDD
w =曜日カウンタ 0〜6
YY=年(BCD2桁)00〜99(1980〜2079)
MM=月(BCD2桁)01〜12
DD=日(BCD2桁)01〜31
機能
時計から日付を読み込みます
DATEBIN:
書式 #INCLUDE <IOCSLIB.H>
int DATEBIN(BCDTIME);
int BCDTIME;
戻り値 wyyyymmdd
w =曜日(0〜6)
yyy=年バイナリ(1980〜2079)
mm =月バイナリ(01〜12)
dd =日バイナリ(01〜31)
機能 日付をBCD表現からバイナリ表現に変換します。
BCDTIMEに0wYYMMDDを設定。
w =曜日カウンタ 0〜6
YY=年(BCD2桁)00〜99(1980〜2079)
MM=月(BCD2桁)01〜12
DD=日(BCD2桁)01〜31
TIMEGET:
書式
#INCLUDE <IOCSLIB.H>
int TIMEGET();
戻り値
00HHMMSS
HH=時(BCD2桁)(00〜23/00〜11,20〜31)
MM=分(BCD2桁)(00〜59)
SS=秒(BCD2桁)(00〜59)
機能
時計から時間を読み込みます
TIMEBIN:
書式 #INCLUDE <IOCSLIB.H>
int TIMEBIN(BCDTIME);
int BCDTIME;
戻り値 00hhmmss
hh=時バイナリ(00〜23)
mm=分バイナリ(00〜59)
ss=秒バイナリ(00〜59)
機能 時間をBCD表現からバイナリ表現に変換します。
24時間計として変換します。
BCDTIMEに00HHMMSSを設定。
HH=時(BCD2桁)(00〜23)
MM=分(BCD2桁)(00〜59)
SS=秒(BCD2桁)(00〜59)
DATECNV:
書式 #INCLUDE <IOCSLIB.H>
int DATECNV(ADDRESS);
int ADDRESS;
戻り値 0yyymmdd /−1でエラ−(うるう年・大小の月判定はしない)
0yyy=年バイナリ(1980〜2079)(80〜79)
mm =月バイナリ(01〜12)
dd =日バイナリ(01〜31)
機能 日付を表わす文字列をバイナリデータに変換します。
区切り記号は/でも—でも何でもよい
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
ADDRESSに日付を表わす文字列の先頭アドレスを設定。
(例)ADDRESSの内容'1985/07/07',0
TIMECNV:
書式 #INCLUDE <IOCSLIB.H>
int TIMECNV(ADDRESS);
int ADDRESS;
戻り値 00hhmmss /−1でエラ−
hh=時バイナリ(00〜23)
mm=分バイナリ(00〜59)
ss=秒バイナリ(00〜59)
機能 時間を表わす文字列をバイナリデータに変換します。
区切り記号は:でも何でもよい(省略は0を表わす)
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
ADDRESSに時間を表わす文字列の先頭アドレスを指定。
(例)='12:05:30',0
DATEASC:
書式
#INCLUDE <IOCSLIB.H>
int DATEASC(BINDATE,BUF)
int BINDATE;
CHAR * BUF;
戻り値
−1でエラ−
BUFの内容 '1985/07/07',0
BUFに指定した日付を表わす文字列の
最後のアドレスが格納される。(0のアドレス)
-more-
機能
バイナリデータを、日付を表わす文字列に変換します。
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
BINDATEにFyyymmddを指定。
F =文字列フォーマット
0..1985/07/07
1..1985-07-07
2..85/07/07
3..85-07-07
yyy=年バイナリ(1980〜2079)
mm =月バイナリ(01〜12)
dd =日バイナリ(01〜31)
BUFに日付を表わす文字列の先頭アドレスを指定。(11バイト以上確保)
TIMEASC:
書式 #INCLUDE <IOCSLIB.H>
int TIMEASC(BINTIME,BUF);
int BINTIME;
CHAR * BUF;
戻り値 −1でエラ−
機能 バイナリデータを時間を表わす文字列に変換します。
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
BUFに時間を表わす文字列の先頭アドレスを指定。(9バイト以上確保)
BINTIMEに00hhmmssを指定。
hh=時バイナリ(00〜23)
mm=分バイナリ(00〜59)
ss=秒バイナリ(00〜59)
DAYASC:
書式
#INCLUDE <IOCSLIB.H>
int DAYASC(BINDAY,BUF);
int BINDAY;
CHAR * BUF;
戻り値
アドレスの内容 '月',0
機能
バイナリデータを、曜日を表わす文字列に変換します。
(注)スーパーバイザー領域のアドレスも指定出来ます。
おかしなアドレスを指定しないように!!
BINDAYに曜日曜日を指定。(0〜6)
BUFに曜日を表わす文字列の先頭アドレスを指定。(3バイト以上確保)
ALARMMOD:
書式
#INCLUDE <IOCSLIB.H>
int ALARMMOD(MODE);
int MODE;
戻り値
戻り値の状態(0..禁止 1..許可)
機能
アラームの禁止/許可
MODE=0..禁止 1..許可 2..状態を見る
ALARMSET:
書式
#INCLUDE <IOCSLIB.H>
int ALARMSET(DATETIME,OFFTIME,MODE);
int DATETIME;
int OFFTIME;
ptr MODE;
戻り値 −1でエラ−
機能 アラームの時間と処理アドレスを設定します
MODEに処理アドレスを指定。
(MODE=0 パワーONのみ、テレビオン&コンピュータモード)
(MODE=-1 パワーONのみ、テレビコントロールしない)
(MODE=1~$3f テレビコントロール $0cコール参照)
(MODE=$40~$fffffffe 処理アドレス、先頭は$60であること)
DATETIMEに0WDDHHMMを設定。
0W=0~6 曜日
DD=01~31(BCD) 日付
HH=00~23(BCD) 時
MM=00~59(BCD) 分
OFFTIMEにテレビあるいはコンピュータがOFFされるまでの時間を設定。
=0.....いつまでもOFFしない
=??....1分単位でOFFするまでの時間指定
ALARMGET:
書式 #INCLUDE <IOCSLIB.H>
int ALARMGET(TIME,OFFTIME,JOB);
int TIME;
int OFFTIME;
int JOB;
戻り値
JOB に処理アドレスが設定される。
TIME に0WDDHHMMが設定される。
0W=0~6 曜日
DD=01~31(BCD) 日付
HH=00~23(BCD) 時
MM=00~59(BCD) 分
OFFTIME にテレビあるいはコンピュータがOFFされるまでの時間が設定される。
機能 アラームの時間と処理アドレスを読み込みます
@ADPCMOUT:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMOUT(ADDRESS,MODE,LENGHT);
ptr ADDRESS;
int MODE;
int LENGHT;
戻り値
0
機能
ADPCMへデータを出力します
長さが$FF00以上の場合は内部で$FF00単位で
処理しますので、すぐリターンできません。
-more-
ADDRESSに出力データアドレスを指定。
MODEにサンプリング周波数*256+出力モードを指定。
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
=04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
LENGHTに出力データの長さを指定。
ADPCMINP(ADDRESS,MODE,DATAL)
書式
#INCLUDE <IOCSLIB.H>
int ADPCMINP(ADDRESS,MODE,LENGHT)
ptr ADDRESS;
int MODE;
int LENGHT;
戻り値
0
機能
ADPCMからデータを入力します。
長さが$FF00以上の場合は内部で$FF00単位で
処理しますので、すぐリターンできません。
-more-
ADDRESSに入力データアドレスを設定。
MODEにサンプリング周波数*256+出力モードを指定。
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
=04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
LENGHTに出力データの長さを指定。
ADPCMAOT:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMAOT(TBLADDRESS,MODE,TBLCNT)
ptr TBLADDRESS;
int MODE;
int TBLCNT;
戻り値
0
機能
ADPCMへデータを出力します
長さは$0001〜$FFFFの値です
-more-
TBLADDRESSに入力データチェーンテーブルアドレスを指定。
アドレスの内容は 先頭アドレス
長さ
.
.
.
先頭アドレス
長さ
の順番で定義しておく。
MODEにサンプリング周波数*256+出力モードを指定。
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
-more- =04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
TBLCNTに入力データチェーンテーブルの個数を指定。
ADPCMAIN:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMAIN(TBLADDRESS,MODE,TBLCNT);
ptr TBLADDRESS;
int MODE;
int TBLCNT;
戻り値
0
機能
ADPCMからデータを入力します。
長さは$0001〜$FFFFの値です
-more-
TBLADDRESSに入力データチェーンテーブルアドレスを設定。
アドレスの内容は 先頭アドレス
長さ
.
.
.
先頭アドレス
長さ
の順番で定義しておく。
MODEにサンプリング周波数*256+出力モードを指定。
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
-more- =04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
TBLCNTに入力データチェーンテーブルの個数を指定。
ADPCMLOT:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMLOT(TBLADDRESS,MODE);
ptr TBLADDRESS;
int MODE;
戻り値
0
機能
ADPCMへデータを出力します
長さは$0001〜$FFFFの値です
-more-
TBLADDRESSに入力データアレイチェーンテーブル先頭アドレスを設定。
アドレスの内容 先頭アドレス
長さ
次のテーブルアドレス
........
次のアドレスの内容 先頭アドレス
長さ
次のテーブルアドレス
........
最後のアドレスの内容 先頭アドレス
長さ
0 テーブル終わり
........
MODEにサンプリング周波数*256+出力モードを設定。
-more-
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
=04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
ADPCMLIN:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMLIN(TBLADDRESS,MODE);
ptr TBLADDRESS;
int MODE;
戻り値
0
機能
ADPCMからデータを入力します。
長さは$0001〜$FFFFの値です
-more-
TBLADDRESSに入力データアレイチェーンテーブル先頭アドレスを設定。
アドレスの内容 先頭アドレス
長さ
次のテーブルアドレス
........
次のアドレスの内容 先頭アドレス
長さ
次のテーブルアドレス
........
最後のアドレスの内容 先頭アドレス
長さ
0 テーブル終わり
........
MODEにサンプリング周波数*256+出力モード指定する。
-more-
サンプリング周波数 =00..3.9KHz(1950byts/sec)
=01..5.2KHz(2600byts/sec)
=02..7.8KHz(3900byts/sec)
=03.10.4KHz(5200byts/sec)
=04.15.6KHz(7800byts/sec)
出力モード =00..音声出力カット
=01..音声出力左
=02..音声出力右
=03..音声出力両方
ADPCMSNS:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMSNS();
戻り値
00 何もしていない
02 出力中($60実行中)
04 入力中($61実行中)
12 出力中($62実行中)
14 入力中($63実行中)
22 出力中($64実行中)
24 入力中($65実行中)
機能
ADPCMの実行モードをセンスします。
ADPCMMOD:
書式
#INCLUDE <IOCSLIB.H>
int ADPCMMOD(MODE);
int MODE;
戻り値
0
機能
ADPCMの実行を制御します
MODE=00 終了
MODE=01 中止
MODE=02 再開
@OPMSET:
書式
#INCLUDE <IOCSLIB.H>
int OPMSET(ADDRESS,DATA);
itr ADDRESS;
int DATA
戻り値
なし
機能
FM音源(YM2151)にデータを書き込みます
内部でビジーフラグを見て書き込みます
ADDRESSにアドレスを指定する。
DATAにデータを指定する。
OPMSNS:
書式
#INCLUDE <IOCSLIB.H>
int OPMSNS();
戻り値
bit7..write busy flag(0..ok/1..wait)
bit1..timer a overflow
bit0..timer b overflow
機能
FM音源(YM2151)のステータスを読み込みます
OPMINTST:
書式
#INCLUDE <IOCSLIB.H>
int OPMINTST(ADDRESS);
ptr ADDRESS;
戻り値
0...ok
?...すでに使用中
機能
FM音源ICによる割り込み(MFPのみ制御します)
ADDRESSに割り込み処理アドレスを指定する。(0なら割り込み禁止)
TIMERDST:
書式
#INCLUDE <IOCSLIB.H>
int TIMERDST(ADDRESS,MODE,COUNTER);
ptr ADDRESS;
int MODE;
int COUNTER;
戻り値
0...ok
?...すでに使用中
機能
MFPのTIMER−Dによる割り込み
-more-
ADDRESSに割り込み処理アドレスを指定する。(0なら割り込み禁止)
MODE
=1..*1us
=2..*2.5us
=3..*4us
=4..*12.5us
=5..*16us
=6..*25us
=7..*50us
COUNTERに0から255までの値をしていする。
MODEの値にCOUNTERの値を掛けた値の単位で割り込みする。
VDISPST:
書式 #INCLUDE <IOCSLIB.H>
int VDISPST(ADDRESS,MODE,COUNTER);
ptr ADDRESS;
int MODE;
int COUNTER;
戻り値 0...ok
?...すでに使用中
機能 V−DISP(約1/60秒?)を指定カウンタ後の割り込み
ADDRESSに割り込み処理アドレスをしていする。(0なら割り込み禁止)
MODE=0 垂直帰線期間をカウント
=1 垂直表示期間をカウント
COUNTERに0から255までの値をしていする。
CRTCRAS:
書式
#INCLUDE <IOCSLIB.H>
int CRTCRAS(ADDRESS,RASTER);
ptr ADDRESS;
int RASTER;
戻り値
0...ok
?...すでに使用中
機能
CRTCに設定した割り込みラスターになったときの割り込み
ADDRESSに割り込み処理アドレスを指定する。(0なら割り込み禁止)
RASTERにラスターを指定する。
HSYNCST:
書式
#INCLUDE <IOCSLIB.H>
int HSYNCST(ADDRESS);
ptr ADDRESS;
戻り値
0...ok
?...すでに使用中
機能
H−SYNCの立ち下がりによる割り込み
ADDRESSに割り込み処理アドレスを指定する。(0なら割り込み禁止)
PRNINTST:
書式
#INCLUDE <IOCSLIB.H>
int PRNINTST(ADDRESS);
ptr ADDRESS;
戻り値
0...ok
?...すでに使用中
機能
プリンターの割り込み
ADDRESSに割り込み処理アドレスを指定する。(0なら割り込み禁止)
MS_INIT:
書式
#INCLUDE <IOCSLIB.H>
int MS_INIT();
戻り値
なし
機能
マウス初期化
MS_CURON:
書式
#INCLUDE <IOCSLIB.H>
int MS_CURON();
戻り値
なし
機能
マウスカーソル表示
MS_CUROF:
書式
#INCLUDE <IOCSLIB.H>
int MS_CUROF();
戻り値
なし
機能
マウスカーソルを消す
MS_STAT:
書式
#INCLUDE <IOCSLIB.H>
int MS_STAT();
戻り値
0...消去 -1...表示
機能
マウスカーソルの表示モードを調べる
MS_GETDT:
書式
#INCLUDE <IOCSLIB.H>
int MS_GETDT();
戻り値
XXYYLLRR
XX X方向移動量
YY Y方向移動量
LL 左ボタンの状態($ff=on,$00=off)
RR 右ボタンの状態($ff=on,$00=off)
機能
マウスの移動量/ボタンのON・OFFを調べる
MS_CURGT:
書式
#INCLUDE <IOCSLIB.H>
int MS_CURGT();
戻り値
XXXXYYYY
XXXX X座標
YYYY Y座標
機能
マウスカーソルの座標を調べる
MS_CURST:
書式
#INCLUDE <IOCSLIB.H>
int MS_CURST(X,Y);
int X;
int Y;
戻り値
0 ..OK
-1 ..error
機能
マウスカーソルの座標を指定する
XにX座標を指定する。
YにY座標を指定する。
MS_LIMIT:
書式 #INCLUDE <IOCSLIB.H>
int MS_LIMIT(XS,YS,XE,YE);
int XS;
int YS;
int XE;
int YE;
戻り値 0 ..OK
-1 ..error
機能 マウスカーソルの移動範囲を指定する
XSに先頭X座標を指定する。
YSに先頭Y座標を指定する。
XEに最終X座標を指定する。
YEに最終Y座標を指定する。
MS_OFFTM:
書式 #INCLUDE <IOCSLIB.H>
int MS_OFFTM(MODE,MAXTIME);
int MODE;
int MAXTIME;
戻り値 待ち時間(1~65534)
0 ドラッグ
-1 待ち時間の最大値を越えた
機能 マウスボタンを離すまでの時間を調べる
MODEを指定。
0...左 -1...右
MAXTIMEに待ち時間の最大値を指定する。(0 でいつまでも待つ)
MS_ONTM:
書式 #INCLUDE <IOCSLIB.H>
int MS_ONTM(MODE,MAXTIME);
int MODE;
int MAXTIME;
戻り値 待ち時間(1~65534)
0 ドラッグ
-1 待ち時間の最大値を越えた
機能 マウスボタンを押すまでの時間を調べる
MODEを指定。
0...左 -1...右
MAXTIMEに待ち時間の最大値を指定する。(0 でいつまでも待つ)
MS_PATST:
書式 #INCLUDE <IOCSLIB.H>
int MS_PATST(CURSOLNO,ADDRESS);
int CURSOLNO;
ptr ADDRESS;
DATA struct PATST{ short OFFSET_X;
short OFFSET_Y;
short SHADOW[16];
short PATTERN[16]; }
戻り値 なし
機能 マウスカーソルのパターンを定義する。
CURSOLNOにカーソルの番号を設定する。
ADDRESSにパターンのデータ格納アドレスを指定する。
MS_SEL:
書式
#INCLUDE <IOCSLIB.H>
int MS_SEL(CUSOLNO);
int CUSOLNO;
戻り値
なし
機能
マウスカーソルを選ぶ
CUSOLNOにカーソルの番号を指定する。
MS_SEL2:
書式
#INCLUDE <IOCSLIB.H>
int MS_SEL2(TBLADDRESS);
ptr TBLADDRESS;
戻り値
機能
マウスカーソルを何個か指定してアニメーションを指定する
TBLADDRESSにカーソルの番号テーブルアドレスを指定する。
テーブル:
dc.w 番号1,番号2,・・・,-1
SSEY_MOD:
書式 #INCLUDE <IOCSLIB.H>
int SSEY_MOD(MODE,X,Y);
int MODE;
int X;
int Y;
戻り値 0 消去状態
1 表示状態
機能 ソフトキーボード制御
MODEを指定する。
MODE=0..ソフトキーボード消去
=1..ソフトキーボード表示(表示状態では無効)
=2..ソフトキーボード表示状態のチェック
=-1..ソフトキーボード自動制御(右ボタンで、表示/消去)
XにX座標を指定。
YにY座標を指定。
DENSNS:
書式
#INCLUDE <IOCSLIB.H>
int DENSNS();
戻り値
なし
機能
電卓のセンス(答はキーに返る)
ONTIME:
書式
#INCLUDE <IOCSLIB.H>
int ONTIME();
戻り値
0秒から23時間59分59秒99までの値(0〜8639999)
1日以上になるとRESETされる。
機能
BIOSが起動してからの時間を返します
B_INTVCS:
書式
#INCLUDE <IOCSLIB.H>
int B_INTVCS(VECTOR,ADDRESS);
int VECTOR;
ptr ADDRESS;
戻り値
前の処理アドレス
機能
ベクターのセット
VECTORベクターの番号指定する。(0~$ff=割り込み/$100~$1ff=バイオス)
ADDRESSに処理アドレスを指定する。
B_SUPER:
書式
#INCLUDE <IOCSLIB.H>
int B_SUPER(SSP);
ptr SSP;
戻り値
前のSSP:0:-1でスーパーなのにスーパーにしようとしたエラー
SSPは壊れる
機能
スーパーバイザーモードへの切り換え
SSP=0 ユーザー >> スーパー
=前のSSP スーパー >> ユーザー
B_BPEEK:
書式
#INCLUDE <IOCSLIB.H>
int B_BPEEK(ADDRESS);
ptr ADDRESS;
戻り値
データ
ADDRESSに次のアドレスが格納される。
機能
指定アドレスからデータを読み込む(バイト単位)
ADDRESSにアドレスを指定。
B_WPEEK
書式
#INCLUDE <IOCSLIB.H>
int B_WPEEK(ADDRESS);
ptr ADDRESS;
戻り値
データ
ADDRESSに次のアドレスが格納される。
機能
指定アドレスからデータを読み込む(ワード単位)
ADDRESSにアドレスを指定。(かならず偶数アドレスであること)
B_LPEEK:
書式
#INCLUDE <IOCSLIB.H>
int B_LPEEK(ADDRESS);
ptr ADDRESS;
戻り値
データ
ADDRESSに次のアドレスが格納される。
機能
指定アドレスからデータを読み込む(ロング単位)
ADDRESSにアドレスを指定。(かならず偶数アドレスであること)
B_MEMSTR:
書式 #INCLUDE <IOCSLIB.H>
int B_MEMSTR(ADDRESS,DATABUF,DATABYTE);
ptr ADDRESS;
ptr DATABUF;
int DATABYTE;
戻り値 ADDRESSに次のアドレスが格納される。
DATABUFに次のバッファアドレスが格納される。
機能 指定アドレスからデータを読み込む(バイト数指定)
バイト転送します
ADDRESSにアドレスを指定。
DATABUFに読み込むデータバッファを指定。
DATABYTEに=読み込むデータのバイト数−1を指定。
B_BPOKE:
書式
#INCLUDE <IOCSLIB.H>
int B_BPOKE(ADDRESS,DATA);
ptr ADDRESS;
int DATA;
戻り値
DATAは壊れる
ADDRESSは次のアドレス
機能
指定アドレスへデータを書き込む(バイト単位)
ADDRESSにアドレスを指定。
DATAにデータを指定。
B_WPOKE:
書式
#INCLUDE <IOCSLIB.H>
int B_WPOKE(ADDRESS,DATA);
ptr ADDRESS;
int DATA;
戻り値
DATAは壊れる
ADDRESSは次のアドレス
機能
指定アドレスへデータを書き込む(ワード単位)
ADDRESSにアドレスを指定。(かならず偶数アドレスであること)
DATAにデータを指定。
B_LPOKE:
書式
#INCLUDE <IOCSLIB.H>
int B_LPOKE(ADDRESS,DATA);
ptr ADDRESS;
int DATA;
戻り値
DATAは壊れる
ADDRESSは次のアドレス
機能
指定アドレスへデータを書き込む(ロング単位)
ADDRESSにアドレスを指定。(かならず偶数アドレスであること)
DATAにデータを指定。
B_MEMSET:
書式 #INCLUDE <IOCSLIB.H>
int B_MEMSET(ADDRESS,DATABUF,DATABYTE);
ptr ADDRESS;
ptr DATABUF;
int DATABYTE;
戻り値 ADDRESSは次のアドレス
DATABYTEは次のバッファアドレス
機能 指定アドレスへデータを書き込む(バイト数指定)
バイト転送します
ADDRESSにアドレスを指定。
DATABUFに書き込むデータバッファを指定いする。
DATABYTEに書き込むデータのバイト数−1を指定する。
DMAMOVE:
書式
#INCLUDE <IOCSLIB.H>
int DMAMOVE(ADDRESS,ADDRESS,MODE,BYTE);
ptr ADDRESS;
ptr ADDRESS;
int MODE;
int BYTE;
戻り値
non
-more-
機能
DMA転送
長さが$FF00以上の場合は内部で$FF00単位で
処理しますので、すぐリターンできません。
ADDRESS1に転送元アドレスを指定する。
BYTE転送にデータのバイト数を指定する。
ADDRESS2に転送先アドレスを指定する。
MODEにDIR|0|00|MAC|DACを指定。
DIR..... 0=ADDRESS1からADDRESS2へ
1=ADDRESS2からADDRESS1へ
MAC(ADDRESS1)/DAC(ADDRESS2)のモード
00= カウントしない
01= inc
10= dec
11= 禁止
DMAMOV_A:
書式
#INCLUDE <IOCSLIB.H>
int DMAMOV_A(TBLADDRESS,TBLCNT,ADDRESS,MODE);
ptr TBLADDRESS;
ptr ADDRESS;
int TBLCNT;
int MODE;
戻り値
non
機能
DMA転送(アレイチェーンによる)
長さは$0001〜$FFFFの値です
-more-
ADDRESSに転送元データチェーンテーブルアドレスを指定する。
アドレスの内容は先頭アドレス
長さ
先頭アドレス
長さ
の順番で格納する。
TBLCNTに転送データチェーンテーブルの個数を指定する。
ADDRESSに転送先アドレスを指定する。
MODEにDIR|0|00|MAC|DACを指定する。
DIR..... 0=(TBLADDRESS)からADDRESSへ
1=ADDRESSから(TBLADDRESS)へ
MAC(TBLADDRESS)/DAC(ADDRESS)のモード
00= カウントしない
01= inc
10= dec
11= 禁止
DMAMOV_L:
書式
#INCLUDE <IOCSLIB.H>
int DMAMOV_L(TBLADDRESS,ADDRESS,MODE);
ptr TBLADDRESS;
ptr ADDRESS;
int MODE;
戻り値
non
機能
DMA転送(リンクアレイチェーンによる)
長さは$0001〜$FFFFの値です
-more-
TBLADDRESSに転送元データチェーンテーブルアドレスを設定する。
アドレスの内容=先頭アドレス
=長さ
=次のテーブルアドレス
........
次のアドレスの内容=先頭アドレス
=長さ
=次のテーブルアドレス
........
最後のアドレスの内容=先頭アドレス
=長さ
=0 テーブル終わり
........
ADDRESSに転送先アドレスを指定する。
MODEにDIR|0|00|MAC|DACを指定する。
-more-
DIR..... 0=(TBLADDRESS)からADDRESSへ
1=ADDRESSから(TBLADDRESS)へ
MAC(TBLADDRESS)/DAC(ADDRESS)のモード
00= カウントしない
01= inc
10= dec
11= 禁止
DMAMOE:
書式
#INCLUDE <IOCSLIB.H>
int DMAMOE();
戻り値
00 何もしていない
8a 転送中($8a実行中)
8b 転送中($8b実行中)
8c 転送中($8c実行中)
機能
DMAの実行モードをセンスします。
BOOTINF:
書式
#INCLUDE <IOCSLIB.H>
int BOOTINF();
戻り値
$80~$83 ハードディスクからブート
$90~$93 2HDディスクからブート
$ed0000~ed4000 SRAMからブート
上記以外 ROMからブート
最上位8ビットで次のモード
$00=パワースィッチにより起動した(リセットにより起動した)
$01=外部スィッチにより起動した(リセットにより起動した)
$02=タイマーにより起動した
機能 ブート情報を返します
ROMVER:
書式
#INCLUDE <IOCSLIB.H>
int ROMVER();
戻り値
VVYYMMDD BCD表現
VV=バージョン($10)
YY=年($87)
MM=月($02)
DD=日($10)
機能
ROMのバーションと作成年月日を返します。
G_CLR_ON:
書式
#INCLUDE <IOCSLIB.H>
int G_CLR_ON()
戻り値
なし
機能
グラフィック画面をクリアして、表示モードにします。
パレットは標準に戻ります。
GPALET:
書式
#INCLUDE <IOCSLIB.H>
int GPALET(PALET_NO,COLOR_CODE);
int PALET_NO;
int COLOR_CODE;
戻り値
前のパレット番号(COLOR_CODEが—1の時)
機能
グラフィックのパレットを指定する。
COLOR_CODEが—1ならパレット番号の読みだしのみ行います。
PALET_NOにpalet no(0~15)/(0~255)/(0~65535)を指定する。
COLOR_CODEにcolor code(0~65535)を指定する。
SFTJIS:
書式
#INCLUDE <IOCSLIB.H>
int SFTJIS(CODE);
int CODE;
戻り値
JIS漢字コード(上位16ビットが$FFFFならエラー)
機能
SFTJISコードをJIS漢字コードに変換する
CODEにSFTJISコードを指定する。
JISSFT:
書式
#INCLUDE <IOCSLIB.H>
int JISSFT(CODE);
int CODE;
戻り値
SFTJISコード(上位16ビットが$FFFFならエラー)
機能
JIS漢字コードをSFTJISコードに変換する
CODEにJIS漢字コードを指定する。
AKCONV:
書式
#INCLUDE <IOCSLIB.H>
int AKCONV(MODE,CODE);
int MODE;
int CODE;
戻り値
SFTJISコード(上位16ビットが$FFFFならエラー)
機能
ANKコードを全角SFTJISコードに変換する
MODE...0=ひらがな 1=カタカナ
CODEにANKコードを指定する。($20~$7e,$a1~$df)
RMACNV:
書式 #INCLUDE <IOCSLIB.H>
int RMACNV(CODE,W_POINTER,A_POINTER);
int CODE;
ptr W_POINTER;
ptr A_POINTER;
戻り値 stats 0ならば変換途中
-1ならば変換不可能
その他は変換文字数(work pointerに変換途中の文字が
残っている可能性有り)
機能 ローマ字変換
CODEにcharcter codeを指定する。
W_POINTERにwork pointerを指定する。
A_POINTERにanswer pointerを指定する。
DAKJOB:
書式
#INCLUDE <IOCSLIB.H>
int DAKJOB(BUF_END);
ptr BUF_END;
戻り値
0..最後の全角文字に濁点処理をした
2..(゛)を追加した(BUF_ENDは2バイト進む)
濁点処理をします
機能
BUF_ENDに全角文字列のバッファの最後を指定する。($00のアドレス)
HANJOB:
書式
#INCLUDE <IOCSLIB.H>
int HANJOB(BUF_END);
ptr BUF_END;
戻り値
0..最後の全角文字に半濁点処理をした
2..(゜)を追加した(BUF_ENDは2バイト進む)
機能
半濁点処理をします
BUF_ENDに全角文字列のバッファの最後を指定する。($00のアドレス)
OS_CURON:
書式
#INCLUDE <IOCSLIB.H>
int OS_CURON();
戻り値
なし
機能
カーソルON(esc[>5l) $20~$2fのBIOSコ−ルに対して有効
OS_CUROF:
書式
#INCLUDE <IOCSLIB.H>
int OS_CUROF();
戻り値
なし
機能
カーソルOFF(esc[>5h) $20~$2fのBIOSコ−ルに対して有効
@APAGE:
書式 #INCLUDE <IOCSLIB.H>
int APAGE(MODE);
int MODE;
戻り値 0 正常終了
-1 グラフィックは使用不可
-2 ページ引数が指定通りになっていない
-3 指定されたページは現在のモードでは設定不可
MODEが-1の場合は0〜3の値が返る
機能 グラフィック画面の書き込みページの設定
MODE=0 書き込みページに0ページを設定
1 書き込みページに1ページを設定
2 書き込みページに2ページを設定
3 書き込みページに3ページを設定
-1 現在の書き込みページを調べる
VPAGE:
書式
#INCLUDE <IOCSLIB.H>
int VPAGE(MODE);
int MODE;
戻り値
0 正常終了
-1 グラフィックは使用不可
-2 ページ引数が指定通りになっていない
-3 指定されたページは現在のモードで