hikarupsp_ELCHNOS
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*ELCHNOS
-https://sourceforge.jp/projects/chnosproject/scm/git/AI0...
もともとはCHNOSProjectのために構想していた(Elements Langu...
その言語仕様を利用して、OSECPUのためのコンパイラならすぐ...
*現在の状況
**できること
-app0023相当のコードをコンパイル、実行できる。
-定数式の計算
-インライン関数展開
-変数のレジスタ割り付け
-バックエンドバイナリを生成し、保存できる。
**できないこと
-文法上のいろいろ(まだ全然完成していない)
-レジスタに割り付けられない変数の処理(spill処理)
-レジスタ退避を伴う関数呼び出し
-ソースファイル分割
-プリプロセッサ(#define等)
-文字列処理
*どんな言語?
-ASKAよりもうすこしC言語っぽい…と思う。
-ちなみに一行目のUUIDは、コンパイラを起動させるためのコー...
-2013-10-25現在、まだ演算子は以下のソースに出ている分しか...
#17ddde48-7d4c-498f-98d8-3e73f8845028
unsigned char table[32] = {
196, 100, 187, 61, 164, 29, 129, 9,
90, 5, 53, 17, 23, 44, 7, 81,
7, 119, 23, 156, 53, 183, 90, 195,
129, 191, 164, 171, 187, 139, 196, 100,
};
procedure inline drawLine(int mode, x0, y0, x1, y1, col){
@asm OSECPU
REMARK 05 0100000003;
R30 = 0xff45;
R31 = mode;
R32 = x0;
R33 = y0;
R34 = x1;
R35 = y1;
R36 = col;
CALL P28;
REMARK 01 00;
@end
}
procedure main()
{
int x0, y0, x1, y1, col, i, j;
unsigned char *p, *q;
p = table;
for (i = 0; i != 15; i++) {
x0 = *p;
p++;
y0 = *p;
p++;
q = table;
for (j = -8; j != 8; j++) {
x1 = *q;
q++;
y1 = *q;
q++;
col = i - j;
if (col <= 0){
col = 1 - col;
}
if (col <= 7) {
drawLine(1 + 4, x0, y0, x1, y1, col);
}
}
}
}
*コンパイルのしかた
HTML5, FileAPI対応のブラウザを利用する必要があります。
**ローカルでコンパイル
+リンク先からAI004のファイルを一通り落とす。
+index.htmlを起動
+下の方のInputのボックス内に、ソースファイルをドラッグ&ド...
+エラーなく終了した場合は、ダウンロードリンクがDownloads...
+お好きな実行環境で実行する
*コメント、不具合報告などがあればどうぞ…
-hikarupspさんすごい! -- ''K'' SIZE(10){2013-10-25 (金) ...
#comment();
終了行:
*ELCHNOS
-https://sourceforge.jp/projects/chnosproject/scm/git/AI0...
もともとはCHNOSProjectのために構想していた(Elements Langu...
その言語仕様を利用して、OSECPUのためのコンパイラならすぐ...
*現在の状況
**できること
-app0023相当のコードをコンパイル、実行できる。
-定数式の計算
-インライン関数展開
-変数のレジスタ割り付け
-バックエンドバイナリを生成し、保存できる。
**できないこと
-文法上のいろいろ(まだ全然完成していない)
-レジスタに割り付けられない変数の処理(spill処理)
-レジスタ退避を伴う関数呼び出し
-ソースファイル分割
-プリプロセッサ(#define等)
-文字列処理
*どんな言語?
-ASKAよりもうすこしC言語っぽい…と思う。
-ちなみに一行目のUUIDは、コンパイラを起動させるためのコー...
-2013-10-25現在、まだ演算子は以下のソースに出ている分しか...
#17ddde48-7d4c-498f-98d8-3e73f8845028
unsigned char table[32] = {
196, 100, 187, 61, 164, 29, 129, 9,
90, 5, 53, 17, 23, 44, 7, 81,
7, 119, 23, 156, 53, 183, 90, 195,
129, 191, 164, 171, 187, 139, 196, 100,
};
procedure inline drawLine(int mode, x0, y0, x1, y1, col){
@asm OSECPU
REMARK 05 0100000003;
R30 = 0xff45;
R31 = mode;
R32 = x0;
R33 = y0;
R34 = x1;
R35 = y1;
R36 = col;
CALL P28;
REMARK 01 00;
@end
}
procedure main()
{
int x0, y0, x1, y1, col, i, j;
unsigned char *p, *q;
p = table;
for (i = 0; i != 15; i++) {
x0 = *p;
p++;
y0 = *p;
p++;
q = table;
for (j = -8; j != 8; j++) {
x1 = *q;
q++;
y1 = *q;
q++;
col = i - j;
if (col <= 0){
col = 1 - col;
}
if (col <= 7) {
drawLine(1 + 4, x0, y0, x1, y1, col);
}
}
}
}
*コンパイルのしかた
HTML5, FileAPI対応のブラウザを利用する必要があります。
**ローカルでコンパイル
+リンク先からAI004のファイルを一通り落とす。
+index.htmlを起動
+下の方のInputのボックス内に、ソースファイルをドラッグ&ド...
+エラーなく終了した場合は、ダウンロードリンクがDownloads...
+お好きな実行環境で実行する
*コメント、不具合報告などがあればどうぞ…
-hikarupspさんすごい! -- ''K'' SIZE(10){2013-10-25 (金) ...
#comment();
ページ名: