Kの開発メモ #0005
- (by K, 2013.05.29)
- ここは川合の開発の進捗などをレポートするところです。
2013.05.31 Fri
2013.06.03 Mon
- 今日はASKAでも世界最小helloとか世界最小charsを記述できるようにツールを強化した。
#include "osecpu_ask.h"
%include "osecpu_asm.h"
OSECPU_HEADER();
junkApi_putConstString('hello, world!');
#include "osecpu_ask.h"
%include "osecpu_asm.h"
OSECPU_HEADER();
for (R00 = 0x20; R00 != 0x7f; R00++) {
junkApi_putcharRxx(R00);
}
2013.06.04 Tue
- fillRectとfillOvalを書いてみた。サンプルとして日本の国旗を書いてみたら、21バイトで書けた。おお、なかなか小さい!
#include "osecpu_ask.h"
%include "osecpu_asm.h"
OSECPU_HEADER();
junkApi_fillRect(4, 640, 480, 0, 0, 7);
junkApi_fillOval(4, 300, 300, 170, 90, 1);

#include "osecpu_ask.h"
%include "osecpu_asm.h"
OSECPU_HEADER();
for (R00 = 0; R00 != 128; R00++) {
R01 = 144 - R00;
R01 *= 2;
R02 = (320 - 144) + R00;
R03 = (240 - 144) + R00;
R04 = R00 * 0x020201;
junkApi_fillOval(0, R01, R01, R02, R03, R04);
}

2013.06.05 Wed
- いろいろアプリを作っていて、これってもしかしてMS-DOSだともっと小さくなるのかなって作り比べたくなる時があったんだけど、いつもOSECPUが負けることは全くなくて、ついに作り比べようという気すら起きなくなった。
- 近いうちにやらなければいけないと思っていること:
- int32s i:R00; みたいな構文のサポート
- drawStringのサポート
- JIT on JIT
- intro
- 各種セキュリティ機能
- ちょっと最近のアプリをまとめてみるか・・・
- *が付いているのはまあまあマシなもの
app0025 - 18バイト - exitのテスト
app0026 - 9バイト - 9バイトのchars
app0027 - 16バイト - 16バイトの hello, world!
app0028 - 17バイト - 17バイトの hello, world!
app0029 - 8バイト - 8バイトのchars
app0030 - 15バイト - 15バイトの hello, world!
app0031 - 100バイト - 16進数の羅列のテキストファイルをバイナリファイルに変換
app0032 - 82バイト - app0031のエンジン部分のバイト数を計算
app0033 - - フロントエンドコードの研究用に書いただけ
app0034 - 9バイト - 6.5バイトで5バイト出力できることを確認
* app0035 - 15バイト - 15バイトのhelloがASKAで書けることを確認
* app0036 - 8バイト - 8バイトのcharsがASKAで書けることを確認
* app0037 - 33バイト - アセンブラ短歌に挑戦、難なく22BPTを達成
* app0038 - 21バイト - 日本の国旗
* app0039 - 31バイト - メタリックなボール
* app0040 - 122バイト - OS自作入門の4日目の画面、100バイト以上になったのは少しくやしい
app0041 - 130バイト - app0040を別の書き方で書き直してみたけど小さくならず
- putConstStringの中で、\n,\r,\tを使えるようにしてみた。
2013.06.06 Thu
- 現在LivaさんにASKAはちょっと難しすぎるのでは?と指摘され中・・・。
- やっとASKAにint32s構文を追加した!これでプログラムが書きやすくなる。
#include "osecpu_ask.h"
int32s xsiz:R00, ysiz:R01, x0:R02, y0:R03, col:R04, i:R05;
for (i = 0; i != 128; i++) {
xsiz = (144 - i) * 2;
ysiz = xsiz;
x0 = (320 - 144) + i;
y0 = (240 - 144) + i;
col = i * 0x020201;
junkApi_fillOval(0, xsiz, ysiz, x0, y0, col);
}
- 今日の成果:
2013.06.07 Fri
- 忘れそうなのでメモ(intro):
- if文も説明しなきゃいけないな
- sleepとinkeyも必要だな
- exitも一応説明しておくべきだな
- putConstStringとputcharRxxも
2013.06.09 Sun
- osecpu.cを改良して描画速度を改善した。月曜の夜にリリース予定。
2013.06.10 Mon
- app0020までソースを確認。・・・実はver0.46ではリリースを急いだせいで、多くのサンプルアプリのソースがmake出来なくなっておりました。
- 一応全部確認完了。
- 今日の成果:
2013.06.12 Wed
- うーん、なんかバグっている・・・。
- (数時間経過)
- なるほど、どういうバグなのか分かったぞ!ラベル番号が狂ってしまうバグだな。
- (1時間経過)
- とりあえず直った!
2013.06.13 Thu
- 文字列定数の処理を一般化しています。
- これができると、drawStringのサポートに一歩近づきます。
- ver.0.47までは、putStringにしか文字列定数を指定できませんでした。
- (数時間経過)
- とりあえず一般化はできた気がします。
2013.06.14 Fri
- drawStringのためのフォントデータを準備したところ(「はりぼてOS」で使ったものを流用)
- [速報] Livaさんがグラフィックス部分のMacOSへの移植に成功した模様。ver.0.48かver.0.49でマージ予定です。
2013.06.18 Tue
こめんと欄