******************************************************************************* 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 指定されたページは現在のモードでは設定不可 機能 グラフィック画面の表示ページの設定 -more- MODEに表示ページのON/OFFを指定する。 bit0: 0 0ページは表示しない 1 0ページを表示する bit1: 0 1ページは表示しない 1 1ページを表示する bit2: 0 2ページは表示しない 1 2ページを表示する bit3: 0 3ページは表示しない 1 3ページを表示する HOME: 書式 #INCLUDE <IOCSLIB.H> int HOME(PAGE,X,Y); int PAGE; int X; int Y; 戻り値 0 正常終了 -1 グラフィックは使用不可 -2 引数が指定通りになっていない -3 現在のモードでは設定不可 機能 -more- グラフィック画面の表示位置の設定 PAGEにページ指定を設定する。 bit0からbit3で設定するページを指定する bit0からbit3がすべて0ならば現在のモードで有効な ページがすべて指定される Xにx座標を設定する。 Yにy座標を設定する。 ただし、x,yの値は0から1023の範囲 WINDOW: 書式 #INCLUDE <IOCSLIB.H> int WINDOW(SX,SY,EX,EY); int SX; int SY; int EX; int EY; 戻り値 0 正常終了 -1 グラフィックは使用不可 -2 引数が指定通りになっていない 機能 -more- グラフィック画面のウィンドゥの設定 SX ウィンドウ左上x座標 SY ウィンドウ左上y座標 EX ウィンドウ右下x座標 EY ウィンドウ右下y座標 ただし、SX≦EX,SY≦EYで値は0から1023の範囲 WIPE: 書式 #INCLUDE <IOCSLIB.H> int WIPE() 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のクリア PSET: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *PSET{ short X; short Y; short COLOR; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のポイントセット xにX座標を設定。 yにY座標を設定。 colorに パレットコードを設定。 POINT: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *POINT{ short X; short Y; short COLOR; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 パレットコードがCOLORに格納される。 機能 グラフィック画面のポイントゲット xにX座標を設定。 yにY座標を設定。 COLORに戻り値の格納場所を設定。 LINE: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *LINE{ short X1; short Y1; short X2; short Y2; short COLOR; short LINESTILE; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のライン LINEにパラメータポインタ X1に始点X座標を指定。 Y1に始点Y座標を指定。 X2に終点X座標を指定。 Y2に終点Y座標を指定。 COLORにパレットコードを指定。 LINESTILEをラインスタイルを指定。 BOX: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *BOX{ short X1; short Y1; short X2; short Y2; short COLOR; short LINESTILE; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のボックス BOX=パラメータポインタ X1に始点X座標を指定。 Y1に始点Y座標を指定。 X2に終点X座標を指定。 Y2に終点Y座標を指定。 COLORにパレットコードを指定。 LINESTILEをラインスタイルを指定。 FILL: 書式 #INCLUDE <IOCSLIB.H> short STRUCT *FILL{ short X1; short Y1; short X2; sfort Y2; short COLOR; short LINESTILE; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のボックスフィル X1に始点X座標を指定。 Y1に始点Y座標を指定。 X2に終点X座標を指定。 Y2に終点Y座標を指定。 COLORにパレットコードを指定。 LINESTILEをラインスタイルを指定。 CIRCLE: 書式 #INCLUDE <IOCSLIB.H> short STRUCT *CIRCLE{ short X; short Y; short RADIUS; short COLOR; short START_ANGLE; short END_ANGLE; short RATIO; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のサークル CIRCLE=パラメータポインタ Xに中心X座標を指定。 Yに中心Y座標を指定。 RADIUSに半径を指定。 COLORにパレットコードを指定。 START_ANGLEに円弧開始角度を指定。 END_ANGLEに円弧終了角度を指定。 RATIOに比率を指定。 円弧開始角度/円弧終了角度(符号付き2バイト整数) 0から360までの値をとり円弧を描く これ以外の値は360の剰余をとったものが使用される 負の値を指定すると扇型を描く(角度は値の絶対値) -more- 比率(符号無し2バイト整数) 0から65535までの値をとる 0から255のとき半径は横方向の半径を意味し 縦方向の半径との比率はx:256 256から65535のとき半径は縦方向の半径を意味し 横方向の半径との比率はx:256 PAINT: 書式 #INCLUDE <IOCSLIB.H> int STURCT *PAINT{ short X; short Y; short COLOR; int BUF_START; int BUF_END; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のペイント PAINT=パラメータポインタ XにX座標を指定。 YにY座標を指定。 COLORにパレットコードを指定。 BUF_STARTに作業領域先頭番地を指定。 BUF_ENDに作業領域終了番地を指定。 SYMBOL: 書式 #INCLUDE <IOCSLIB.H> int SYMBOL(POINTER) int STRUCT *SYMBOL{ short x; short y; int string_address; char mag_x; char mag_y; short color; char font_type; char angle; } 戻り値 0 正常終了 -1 グラフィックは使用不可 機能 グラフィック画面のシンボル SYMBOL=パラメータポインタ 引数 xにX座標を指定。 yにY座標を指定。 string addressに文字列アドレスを指定。 mag_xに横倍率を指定。 mag_yに縦倍率を指定。 colorにパレットコードを指定。 font typeに文字フォントのタイプを指定。 angleに角度コードを指定。 角度コード 0 通常 1 90度回転 2 180度回転 3 270度回転 GETGRM: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *GETGRM{ short X1; short Y1; short X2; short Y2; int BUF_START; int BUF_END; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 -more- 機能 グラフィック画面の読み込み バッファにはパックされた形でデータそのものがはいる GETGRAM=パラメータポインタ X1に始点X座標を指定。 Y1に始点Y座標を指定。 X2に終点X座標を指定。 Y2に終点Y座標を指定。 BUF_STARTにバッファ先頭アドレスを指定。 BUF_ENDにバッファ終了アドレスを指定。 PUTGRM: 書式 #INCLUDE <IOCSLIB.H> int STRUCT *PUTGRM{ short X1; short Y1; short X2; short Y2; int BUF_START; int BUF_END; }; 戻り値 0 正常終了 -1 グラフィックは使用不可 -more- 機能 グラフィック画面の書き込み バッファにはパックされた形でデータそのものがはいっているものとする GETGRAM=パラメータポインタ X1に始点X座標を指定。 Y1に始点Y座標を指定。 X2に終点X座標を指定。 Y2に終点Y座標を指定。 BUF_STARTにバッファ先頭アドレスを指定。 BUF_ENDにバッファ終了アドレスを指定。 @SP_INIT: 書式 #INCLUDE <IOCSLIB.H> int SP_INIT(); 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 スプライト面の初期化 SP_ON: 書式 #INCLUDE <IOCSLIB.H> int SP_ON(); 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 スプライト面の表示 ON SP_OFF: 書式 #INCLUDE <IOCSLIB.H> int SP_OFF(); 戻り値 なし 機能 スプライト面の表示 OFF SP_CGCLR: 書式 #INCLUDE <IOCSLIB.H> int SP_CGCLR(CODE); CODE; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 PCGのクリア CODEにパターンコードを指定。 <0~255> (16x16 ドット パターン) SP_DEFCG: 書式 #INCLUDE <IOCSLIB.H> int SP_DEFCG(CODE,SIZE,ADDRESS); int CODE; int SIZE; ptr ADDRESS; 戻り値 機能 PCGの設定 CODEにパターンコードを指定。 <0~255> SIZEにパターンサイズを指定。 0 : 8x8 ドット パターン 1 : 16x16 ドット パターン ADDRESSにパターンデータを指定。32byte(d2=0)/128byte(d2=1) SP_GTPCG: 書式 #INCLUDE <IOCSLIB.H> int SP_GTPCG(CODE,SIZE,ADDRESS); int CODE; int SIZE; ptr ADDRESS; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) アドレスのなかにパターンデータが格納される。 32byte(d2=0)/128byte(d2=1) 機能 PCGの読み出し CODEにパターンコードを指定する。 <0~255> SIZEにパターンサイズを指定する。 0 : 8x8 ドット パターン 1 : 16x16 ドット パターン ADDRESSにパターンデータバッファのアドレス設定する。 SP_REGST: 書式 #INCLUDE <IOCSLIB.H> int SP_REGST(SPRITENO,MODE,X,Y,CODE,PRW); int SPRITENO; int MODE; int X; int Y; int CODE; int PRW; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 スプライト・レジスタの設定 SPRITENOにスプライト番号を指定。 <0~127> MODEに垂直帰線期間の検出の有無を指定。 : MSB 0 = 検出後 設定 1 = 検出無し XにX座標を指定。 <0~1023> (if -1 then ignore) YにY座標を指定。 <0~1023> (if -1 then ignore) CODEにパターンコードを指定。 (V,H,COLOR,CODE : if -1 then ignore) PRWにプライオリティを指定。<0~3> (if -1 then ignore) SP_REGGT: 書式 #INCLUDE <IOCSLIB.H> struct REGBUF *SP_REGGT(SPR_NO); int SPR_NO; struct REGBUF{ int X; int Y; int PATERN_CODE; int PRW; }; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) -more- XにX座標が格納される。 YにY座標が格納される。 PATERN_CODEにパターンコードが格納される。(V,H,COLOR,CODE) PRWにプライオリティが格納される。 機能 スプライト・レジスタの読み出し SPR_NOにスプライト番号を指定。 <0~127> BGSCROLL: 書式 #INCLUDE <IOCSLIB.H> int BGSCROLL(MODE,X,Y); int MODE; int X; int Y; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 BGスクロ−ル・レジスタの設定 MODE BG0/1 : LSB 垂直帰線期間の検出の有無 : MSB 0 = 検出後 設定 1 = 検出無し XにX座標を指定。 <0~1023> (if -1 then ignore) YにY座標を指定。 <0~1023> (if -1 then ignore) BGSCRLGT: 書式 #INCLUDE <IOCSLIB.H> struct REGBUF *BGSCRLGT(MODE); int MODE; struct REGBUF{ int X; int Y; }; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) XにX座標が格納される。 YにY座標が格納される。 機能 MODE BG0/1 BGCTRLST: 書式 #INCLUDE <IOCSLIB.H> int BGCTRLST(MODE,PSGE,ONOFF); int MODE; int PSGE; int ONOFF; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) PSGEにX座標が格納される。 ONOFFにY座標が格納される。 機能 BGスクロ−ル・レジスタの読み出し MODE BG0/1 BGCTRLGT: 書式 #INCLUDE <IOCSLIB.H> int BGCTRLGT(MODE); int MODE; int PAGE; int SWICH; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 BGコントロール・レジスタの設定 MODEを指定。 BG0/1 PAGEを指定する。 テキストページ <0~1> (if -1 then ignore) SWICHを指定。 0:表示OFF/1:表示ON (if -1 then ignore) BGTEXTCL: 書式 #INCLUDE <IOCSLIB.H> int BGTEXTCL(PAGE,CODE); int PAGE; int CODE; 戻り値 out 0(正常終了)/ -1(画面モードエラー : 768x512) BGコントロール・レジスタの読み出し PAGEにBG0/1が格納される。 機能 BGテキストのクリア PAGEにテキストページを指定する。<0~1> CODEにパターンコードを指定する。(V,H,COLOR,CODE) ; write data BGTEXTST: 書式 #INCLUDE <IOCSLIB.H> int BGTEXTST(PAGE,X,Y,CODE); int PAGE; int X; int Y; int CODE; 戻り値 0(正常終了)/ -1(画面モードエラー : 768x512) 機能 BGテキストの設定 PAGEにテキストページを指定。 <0~1> XにテキストX座標を指定。 <0~63> YにテキストY座標を指定。 <0~63> CODEにパターンコードを指定。 (V,H,COLOR,CODE) BGTEXTGT: 書式 #INCLUDE <IOCSLIB.H> int BGTEXTGT(PAGE,X,Y); int PAGE; int X; int Y; 戻り値 パターンコード (V,H,COLOR,CODE) 又は エラーコード -1(画面モードエラー : 768x512) 機能 BGテキストの読み出し PAGEにテキストページを指定。 <0~1> XにテキストX座標を指定。 <0~63> YにテキストY座標を指定。 <0~63> SPALET: 書式 #INCLUDE <IOCSLIB.H> int SPALET(CODE,BULOCK,COLORCODE); int CODE; int BULOCK; int COLORCODE; 戻り値 設定前のカラーコード 又は エラーコード -2(パラメーターエラー : パレットブロック 0 をアクセス) 機能 スプライト・パレットの設定/読み出し CODEにパレットコードを指定。 <$0X00~$0X0F> 検出後 設定 <$0X80~$0XSF> 検出無し BULOCKにパレットブロックを指定。 <1~15> COLORCODEにカラーコードを指定。 <0~65535> (if -1 then read only) @TXXLINE: 書式 #INCLUDE <IOCSLIB.H> struct TXXLINE{ short VRAM_PAGE; short X; short Y; short X1; short LINE_STILE; }; 戻り値 なし 機能 テキスト画面のX方向ライン Xに始点X座標を指定。 Yに始点Y座標を指定。 X1に終点X座標を指定。 LINE_STILEにラインスタイルを指定。 TXYLINE: 書式 #INCLUDE <IOCSLIB.H> struct TXYLINE{ short VRAM_PAGE; short X; short Y; short Y1; short LINE_STILE; }; 戻り値 なし 機能 テキスト画面のY方向ライン Xに始点X座標を指定。 Yに始点Y座標を指定。 Y1に終点Y座標を指定。 LINE_STILEにラインスタイルを指定。 TXBOX: 書式 #INCLUDE <IOCSLIB.H> struct TXBOX{ short VRAM_PAGE; short X; short Y; short X1; short Y1; short LINE_STILE; }; 戻り値 なし 機能 テキスト画面のボックス Xに始点X座標を指定。 Yに始点Y座標を指定。 X1に終点X座標を指定。 Y1に終点Y座標を指定。 LINE_STILEにラインスタイルを指定。 TXFILL: 書式 #INCLUDE <IOCSLIB.H> int TXFILL(POINTER) struct TXFILLX{ short VRAM_PAGE; short X; short Y; short X1; short Y1; short LINE_STILE; }; 戻り値 なし -more- 機能 テキスト画面のボックスフィル Xに始点X座標を指定。 Yに始点Y座標を指定。 X1に終点X座標を指定。 Y1に終点Y座標を指定。 LINE_STILEにラインスタイルを指定。 TXREV: 書式 #INCLUDE <IOCSLIB.H> struct TXREN{ short VRAM_PAGE; short X; short Y; short X1; short Y1; short LINE_STILE; }; 戻り値 なし -more- 機能 テキスト画面のリバース Xに始点X座標を指定。 Yに始点Y座標を指定。 X1に終点X座標を指定。 Y1に終点Y座標を指定。 LINE_STILEにラインスタイルを指定。 TXRASCPY: 書式 #INCLUDE <IOCSLIB.H> int TXRASCPY(SORSH_DISTNATION,COPY,MODE); int SORSH_DISTNATION; int COPY; int MODE; 戻り値 なし 機能 テキスト画面のラスターコピー -more- SORSH_DISTNATIONにソース*256+ディスティネーションを設定する。 各8ビットは4ラスタ単位の値 COPYにコピーする個数を指定する。(4ラスタを1とした個数) MODEにコピーする画面を指定する。(同時に4面が可能)と方向 bit 0=テキスト0 bit 1=テキスト1 bit 2=テキスト2 bit 3=テキスト3 bit 15=0 inc =1 dec ABORTRST: 書式 #INCLUDE <IOCSLIB.H> int ABORTRST(); 戻り値 なし 機能 アボートするためのフラグのリセット OSで使用 IPLERR: 書式 #INCLUDE <IOCSLIB.H> int IPLERR(); 戻り値 リターンしない。 機能 ディスクエラー IPLプログラム中でエラー出た場合に使用。 ABORTJOB: 書式 #INCLUDE <IOCSLIB.H> int ABORTJOB(); 戻り値 リターンしない。 機能 アボート OSで使用 @****************************************************************************** * キーコド表 * ******************************************************************************* スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 ESC 01 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1 ! 02 31 1 21 ! 31 1 21 ! C7 ヌ C7 ヌ 31 1 21 ! 31 1 00 2 " 03 32 2 22 " 32 2 22 " CC フ CC フ 32 2 22 " 32 2 00 3 # 04 33 3 23 # 33 3 23 # B1 ア A7 ァ 33 3 23 # 33 3 00 4 $ 05 34 4 24 $ 34 4 24 $ B3 ウ A9 ゥ 34 4 24 $ 34 4 00 5 % 06 35 5 25 % 35 5 25 % B4 エ AA ェ 35 5 25 % 35 5 00 6 & 07 36 6 26 & 36 6 26 & B5 オ AB ォ 36 6 26 & 36 6 00 7 ' 08 37 7 27 ' 37 7 27 ' D4 ヤ AC ャ 37 7 27 ' 37 7 00 8 ( 09 38 8 28 ( 38 8 28 ( D5 ユ AD ュ 38 8 28 ( 38 8 00 9 ) 0A 39 9 29 ) 39 9 29 ) D6 ヨ AE ョ 39 9 29 ) 39 9 00 スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 0 0B 30 0 00 30 0 00 DC ワ A6 ヲ 30 0 00 30 0 00 - = 0C 2D - 3D = 2D - 3D = CE ホ CE ホ 2D - 3D = 2D - 00 ^ ~ 0D 5E ^ 7E ~ 5E ^ 7E ~ CD ヘ CD ヘ 5E ^ 7E ~ 5E ^ 1E \ | 0E 5C \ 7C | 5C \ 7C | B0 ー B0 ー 5C \ 7C | 5C \ 1C BS 0F 08 08 08 08 08 08 08 08 08 08 TAB 10 09 09 09 09 09 09 09 09 09 09 Q 11 71 q 51 Q 51 Q 71 q C0 タ C0 タ 51 Q 71 q 51 Q 11 W 12 77 w 57 W 57 W 77 w C3 テ C3 テ 57 W 77 w 57 W 17 E 13 65 e 45 E 45 E 65 e B2 イ A8 ィ 45 E 65 e 45 E 05 R 14 72 r 52 R 52 R 72 r BD ス BD ス 52 R 72 r 52 R 12 T 15 74 t 54 T 54 T 74 t B6 カ B6 カ 54 T 74 t 54 T 14 Y 16 79 y 59 Y 59 Y 79 y DD ン DD ン 59 Y 79 y 59 Y 19 U 17 75 u 55 U 55 U 75 u C5 ナ C5 ナ 55 U 75 u 55 U 15 I 18 69 i 49 I 49 I 69 i C6 ニ C6 ニ 49 I 69 i 49 I 09 スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 O 19 6F o 4F O 4F O 6F o D7 ラ D7 ラ 4F O 6F o 4F O 0F P 1A 70 p 50 P 50 P 70 p BE セ BE セ 50 P 70 p 50 P 10 @ ` 1B 40 @ 60 ` 40 @ 60 ` DE ゙ DE ゙ 40 @ 60 ` 40 @ 00 [ { 1C 5B [ 7B { 5B [ 7B { DF ゚ A2 「 5B [ 7B { 5B [ 1B CR 1D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D A 1E 61 a 41 A 41 A 61 a C1 チ C1 チ 41 A 61 a 41 A 01 S 1F 73 s 53 S 53 S 73 s C4 ト C4 ト 53 S 73 s 53 S 13 D 20 64 d 44 D 44 D 64 d BC シ BC シ 44 D 64 d 44 D 04 F 21 66 f 46 F 46 F 66 f CA ハ CA ハ 46 F 66 f 46 F 06 G 22 67 g 47 G 47 G 67 g B7 キ B7 キ 47 G 67 g 47 G 07 H 23 68 h 48 H 48 H 68 h B8 ク B8 ク 48 H 68 h 48 H 08 J 24 6A j 4A J 4A J 6A j CF マ CF マ 4A J 6A j 4A J 0A K 25 6B k 4B K 4B K 6B k C9 ノ C9 ノ 4B K 6B k 4B K 0B L 26 6C l 4C L 4C L 6C l D8 リ D8 リ 4C L 6C l 4C L 0C スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 ; + 27 3B ; 2B + 3B ; 2B + DA レ DA レ 3B ; 2B + 3B ; 00 : * 28 3A : 2A * 3A : 2A * B9 ケ B9 ケ 3A : 2A * 3A : 00 ] } 29 5D ] 7D } 5D ] 7D } D1 ム A3 」 5D ] 7D } 5D ] 1D Z 2A 7A z 5A Z 5A Z 7A z C2 ツ AF ッ 5A Z 7A z 5A Z 1A X 2B 78 x 58 X 58 X 78 x BB サ BB サ 58 X 78 x 58 X 18 C 2C 63 c 43 C 43 C 63 c BF ソ BF ソ 43 C 63 c 43 C 03 V 2D 76 v 56 V 56 V 76 v CB ヒ CB ヒ 56 V 76 v 56 V 16 B 2E 62 b 42 B 42 B 62 b BA コ BA コ 42 B 62 b 42 B 02 N 2F 6E n 4E N 4E N 6E n D0 ミ D0 ミ 4E N 6E n 4E N 0E M 30 6D m 4D M 4D M 6D m D3 モ D3 モ 4D M 6D m 4D M 0D , < 31 2C , 3C < 2C , 3C < C8 ネ A4 、 2C , 3C < 2C , 00 . > 32 2E . 3E > 2E . 3E > D9 ル A1 。 2E . 3E > 2E . 00 / / 33 2F / 3F ? 2F / 3F ? D2 メ A5 ・ 2F / 3F ? 2F / 00 _ 34 00 5F _ 00 5F _ DB ロ A0 00 5F _ 00 1F スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 SP 35 20 20 20 20 20 20 20 20 20 20 MOME 36 00 00 00 00 00 00 00 00 00 00 DEL 37 00 00 00 00 00 00 00 00 00 00 ROLLup 38 00 00 00 00 00 00 00 00 00 00 ROLLdw 39 00 00 00 00 00 00 00 00 00 00 UNDO 3A 00 00 00 00 00 00 00 00 00 00 3B 00 00 00 00 00 00 00 00 00 00 3C 00 00 00 00 00 00 00 00 00 00 3D 00 00 00 00 00 00 00 00 00 00 3E 00 00 00 00 00 00 00 00 00 00 CLR 3F 00 00 00 00 00 00 00 00 00 00 / 40 2F / 00 2F / 00 2F / 00 2F / 00 2F / 2F / * 41 2A * 00 2A * 00 2A * 00 2A * 00 2A * 2A * - 42 2D - 00 2D - 00 2D - 00 2D - 00 2D - 2D - スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 7 43 37 7 00 37 7 00 37 7 00 37 7 00 37 7 37 7 8 44 38 8 00 38 8 00 38 8 00 38 8 00 38 8 38 8 9 45 39 9 00 39 9 00 39 9 00 39 9 00 39 9 39 9 + 46 2B + 00 2B + 00 2B + 00 2B + 00 2B + 2B + 4 47 34 4 00 34 4 00 34 4 00 34 4 00 34 4 34 4 5 48 35 5 00 35 5 00 35 5 00 35 5 00 35 5 35 5 6 49 36 6 00 36 6 00 36 6 00 36 6 00 36 6 36 6 = 4A 3D = 00 3D = 00 3D = 00 3D = 00 3D = 3D = 1 4B 31 1 00 31 1 00 31 1 00 31 1 00 31 1 31 1 2 4C 32 2 00 32 2 00 32 2 00 32 2 00 32 2 32 2 3 4D 33 3 00 33 3 00 33 3 00 33 3 00 33 3 33 3 ENTER 4E 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0 4F 30 0 00 30 0 00 30 0 00 30 0 00 30 0 30 0 , 50 2C , 00 2C , 00 2C , 00 2C , 00 2C , 2C , スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 . 51 2E . 00 2E . 00 2E . 00 2E . 00 2E . 2E . 記号 52 00 00 00 00 00 00 00 00 00 00 登録 53 00 00 00 00 00 00 00 00 00 00 HELP 54 00 00 00 00 00 00 00 00 00 00 XF1 55 00 00 00 00 00 00 00 00 00 00 XF2 56 00 00 00 00 00 00 00 00 00 00 XF3 57 00 00 00 00 00 00 00 00 00 00 XF4 58 00 00 00 00 00 00 00 00 00 00 XF5 59 00 00 00 00 00 00 00 00 00 00 かな 5A 00 00 00 00 00 00 00 00 00 00 ローマ字 5B 00 00 00 00 00 00 00 00 00 00 コード 5C 00 00 00 00 00 00 00 00 00 00 CAPS 5D 00 00 00 00 00 00 00 00 00 00 INS 5E 00 00 00 00 00 00 00 00 00 00 スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 ひらガナ 5F 00 00 00 00 00 00 00 00 00 00 全角 60 00 00 00 00 00 00 00 00 00 00 BREAK 61 00 00 00 00 00 00 00 00 00 00 COPY 62 00 00 00 00 00 00 00 00 00 00 F.1 63 00 00 00 00 00 00 00 00 00 00 F.2 64 00 00 00 00 00 00 00 00 00 00 F.3 65 00 00 00 00 00 00 00 00 00 00 F.4 66 00 00 00 00 00 00 00 00 00 00 F.5 67 00 00 00 00 00 00 00 00 00 00 F.6 68 00 00 00 00 00 00 00 00 00 00 F.7 69 00 00 00 00 00 00 00 00 00 00 F.8 6A 00 00 00 00 00 00 00 00 00 00 F.9 6B 00 00 00 00 00 00 00 00 00 00 F.10 6C 00 00 00 00 00 00 00 00 00 00 スキャン ノーマル shift caps caps かな かな ローマ字 ローマ字 コード ctrl コード shift shift shift 入力 SHIFT 70 00 00 00 00 00 00 00 00 00 00 CTRL 71 00 00 00 00 00 00 00 00 00 00 OPT.1 72 00 00 00 00 00 00 00 00 00 00 PT.2 73 00 00 00 00 00 00 00 00 00 00

