page0088
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* OSECPU-ASKA入門 #0011
-(by [[K]], 2013.06.20)
** (0) はじめに
-以下の記事はosecpu111dのWindows版を前提にしています。他...
--ちなみに[[page0074]]を読めばrev2の最新版が見つかります。
~
-もくじ
--[[page0087]]: #0010
--[[page0088]]: #0011
** (1) drawPointとfillOvalとdrawLine(ついでにmodeについ...
-api_drawPoint(mode, color, x, y); :
--画面に点を打ちます。xとyは座標です。colorは色です。mode...
--点の大きさを指定するパラメータはありません。大きな点を...
-api_fillOval(mode, color, xsiz, ysiz, x0, y0); :
--画面に円もしくは楕円(だえん)を描きます。このパラメー...
--ということで、 x0, y0 は円の中心ではなく、円の端(はし...
-api_drawLine(mode, color, x0, y0, x1, y1); :
--画面に線を引きます。 x0, y0 が始点で、 x1, y1 が終点で...
--線の太さなどを指定するパラメータはありません。太い線が...
-modeについて:
--グラフィックス系命令の最初にいつも付いてくるmodeパラメ...
--MODE_PSET: PSET描画モード: もとの画素の色が何色であるか...
--MODE_OR: OR描画モード: たとえば赤の上に緑で描画すると、...
--MODE_XOR: XOR描画モード
--MODE_AND: AND描画モード
--MODE_COL3: 色指定方法を8色モードに
--MODE_COL24: 色指定方法をフルカラーモードに
--16: 画面外への描画をエラーにしないで無視させる(2014.06...
** (2) とりあえずここまでで
-とりあえずここまでで、日本の国旗を描いたこのプログラムに...
api_fillRect(MODE_COL3, 7, 640, 480, 0, 0);
api_fillOval(MODE_COL3, 1, 300, 0, 320-150, 240-150);
-ちなみに引き算しているのは、円の中心を(320,240)にしたく...
-ここまでの説明だけで、この絵の色を変えることも中心の丸の...
-さらには円を何個も重ねてダーツの的(まと)みたいな絵も描...
-点も描けますし線も引けます。
-分からないのは変数の使い方だけです。
~
-どのプログラムに共通している最初の行の #include "osecpu_...
** (3) 整数型変数
-C言語やそのほかの言語では整数型にたくさんの種類がありま...
-OSECPU-ASKAでは原則として変数をメモリに割り当てることは...
-以下のような構文で変数を宣言することができます。
Int32s i:R00;
-これはiという変数を宣言しており、R00というレジスタに割り...
-変数名は大文字小文字を区別しますので、iとIを使い分けるこ...
-レジスタ名はR00~R3Fまでが有効ですが(後ろの2桁は16進数...
--でもx86のアセンブラの32bitモードとかだと8個しかなかった...
--はい、そこの人、少ないとか嘆いていてはいけませんよ。[[p...
--もちろんもっとたくさん使う方法はちゃんとありますが、い...
-レジスタ名は必ず大文字でお願いします。r00では未定義の変...
-変数宣言ですが、コンマで区切って一文で複数を宣言すること...
Int32s i:R00, j:R01, xyz:R02;
-なお、同じレジスタを割り当ててしまうというひどい(?)こ...
Int32s i:R00, j:R00, k:R00;
-この場合、iに代入したらjやkの値も変わってしまうことにな...
~
-変数には整数を代入することができます。簡単な計算もできま...
i = 10;
i = j + k;
i *= -1;
-基本的にC言語でかかれるような演算式はたいてい受け付けま...
-関数の値を代入する、ということは現状ではできません。
i = api_openWin(...); // こういうことはできない.
--(将来的にはできるようにしたいと思っていて構文も設計し...
-なお変数を使わずにいきなりレジスタ名を書いてしまうことも...
R04++;
R03 = i + 1;
-まあなんというか、いろいろやっていると、あれ?これがうま...
--なお報告の際は、長いプログラムを見せられても困ってしま...
~
-そうやって変数に狙った値が入れられるようになったら、それ...
api_drawPoint(MODE_COL24, c, x, y);
-ええとここで注意なのですが、APIの呼び出しの際に変数を使...
api_drawPoint(0, x - 1, y, c); // こういうのはつらい.
-なんかもしかしたら数式入れても平気だったりするかもしれま...
** つづく
-[[page0089]]につづく
* こめんと欄
#comment
終了行:
* OSECPU-ASKA入門 #0011
-(by [[K]], 2013.06.20)
** (0) はじめに
-以下の記事はosecpu111dのWindows版を前提にしています。他...
--ちなみに[[page0074]]を読めばrev2の最新版が見つかります。
~
-もくじ
--[[page0087]]: #0010
--[[page0088]]: #0011
** (1) drawPointとfillOvalとdrawLine(ついでにmodeについ...
-api_drawPoint(mode, color, x, y); :
--画面に点を打ちます。xとyは座標です。colorは色です。mode...
--点の大きさを指定するパラメータはありません。大きな点を...
-api_fillOval(mode, color, xsiz, ysiz, x0, y0); :
--画面に円もしくは楕円(だえん)を描きます。このパラメー...
--ということで、 x0, y0 は円の中心ではなく、円の端(はし...
-api_drawLine(mode, color, x0, y0, x1, y1); :
--画面に線を引きます。 x0, y0 が始点で、 x1, y1 が終点で...
--線の太さなどを指定するパラメータはありません。太い線が...
-modeについて:
--グラフィックス系命令の最初にいつも付いてくるmodeパラメ...
--MODE_PSET: PSET描画モード: もとの画素の色が何色であるか...
--MODE_OR: OR描画モード: たとえば赤の上に緑で描画すると、...
--MODE_XOR: XOR描画モード
--MODE_AND: AND描画モード
--MODE_COL3: 色指定方法を8色モードに
--MODE_COL24: 色指定方法をフルカラーモードに
--16: 画面外への描画をエラーにしないで無視させる(2014.06...
** (2) とりあえずここまでで
-とりあえずここまでで、日本の国旗を描いたこのプログラムに...
api_fillRect(MODE_COL3, 7, 640, 480, 0, 0);
api_fillOval(MODE_COL3, 1, 300, 0, 320-150, 240-150);
-ちなみに引き算しているのは、円の中心を(320,240)にしたく...
-ここまでの説明だけで、この絵の色を変えることも中心の丸の...
-さらには円を何個も重ねてダーツの的(まと)みたいな絵も描...
-点も描けますし線も引けます。
-分からないのは変数の使い方だけです。
~
-どのプログラムに共通している最初の行の #include "osecpu_...
** (3) 整数型変数
-C言語やそのほかの言語では整数型にたくさんの種類がありま...
-OSECPU-ASKAでは原則として変数をメモリに割り当てることは...
-以下のような構文で変数を宣言することができます。
Int32s i:R00;
-これはiという変数を宣言しており、R00というレジスタに割り...
-変数名は大文字小文字を区別しますので、iとIを使い分けるこ...
-レジスタ名はR00~R3Fまでが有効ですが(後ろの2桁は16進数...
--でもx86のアセンブラの32bitモードとかだと8個しかなかった...
--はい、そこの人、少ないとか嘆いていてはいけませんよ。[[p...
--もちろんもっとたくさん使う方法はちゃんとありますが、い...
-レジスタ名は必ず大文字でお願いします。r00では未定義の変...
-変数宣言ですが、コンマで区切って一文で複数を宣言すること...
Int32s i:R00, j:R01, xyz:R02;
-なお、同じレジスタを割り当ててしまうというひどい(?)こ...
Int32s i:R00, j:R00, k:R00;
-この場合、iに代入したらjやkの値も変わってしまうことにな...
~
-変数には整数を代入することができます。簡単な計算もできま...
i = 10;
i = j + k;
i *= -1;
-基本的にC言語でかかれるような演算式はたいてい受け付けま...
-関数の値を代入する、ということは現状ではできません。
i = api_openWin(...); // こういうことはできない.
--(将来的にはできるようにしたいと思っていて構文も設計し...
-なお変数を使わずにいきなりレジスタ名を書いてしまうことも...
R04++;
R03 = i + 1;
-まあなんというか、いろいろやっていると、あれ?これがうま...
--なお報告の際は、長いプログラムを見せられても困ってしま...
~
-そうやって変数に狙った値が入れられるようになったら、それ...
api_drawPoint(MODE_COL24, c, x, y);
-ええとここで注意なのですが、APIの呼び出しの際に変数を使...
api_drawPoint(0, x - 1, y, c); // こういうのはつらい.
-なんかもしかしたら数式入れても平気だったりするかもしれま...
** つづく
-[[page0089]]につづく
* こめんと欄
#comment
ページ名: