Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
******************************************************************************* 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 指定されたページは現在のモードで
This paste will be private.
From the Design Piracy series on my blog: