a23_usm003
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* a23_useSelfMade #3
-(by [[K]], 2023.01.23)
--親ページ: [[a23_useSelfMade]]
** 2023.01.24 Tue #1
-私は小学4年生の時に、中古のFM-8を使ってプログラミングを...
-中学に入ってFM-NEW7を中古で買いました(当時でも相当に型...
-しかし今私がC言語でプログラミングをすると、音は全く鳴ら...
-いや、Windows上でMinGWを使う環境でも、音を出す手段があり...
-さてeasy-Cにはワンライナーがあります。そしてグラフィック...
-まあこんな説明を書く必要はなかったのですが、なんというか...
-ということで daiku.c[13行] です。これはベートーベンの交...
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T110 @1 f+f+ga agf+e ddef+ f+.e8e2");
APlay_mml(p, 0, "f+f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "eef+d ef+8g8f+d ef+8g8f+e de<a>");
APlay_mml(p, 0, "f+2 f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "> f+f+ga agf+e ddef+ f+.e8e2");
APlay_mml(p, 0, "f+f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "eef+d ef+8g8f+d ef+8g8f+e de<a>");
APlay_mml(p, 0, "f+2 f+ga agf+e ddef+ e.d8d2");
APlay_run(p);
-気づいた人はほとんどいないと思うので書いておきますが、こ...
~
** 2023.01.24 Tue #2
-ついでなので、他もどんどんやります。以下もすべて「30日で...
-kirakira.c[11行] : 「きらきら星」
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T120 @1 ccggaag2 ffeeddc2");
APlay_mml(p, 0, "ggffeed2 ggffeed2");
APlay_mml(p, 0, "ccggaag2 ffeeddc2 r1");
APlay_mml(p, 0, "ccggaag2 ffeeddc2");
APlay_mml(p, 0, "ggffeed2 ggffeed2");
APlay_mml(p, 0, "ccggaag2 ffeeddc2");
APlay_run(p);
-fujisan.c[13行] : 「富士山」
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T120 @1 g.g8agec8d8e2 d.g8gf8e8d2.r");
APlay_mml(p, 0, "g.g8eca.b8>c<a g.a8g8f8e8d8c2.r");
APlay_mml(p, 0, "d.d8ddc8d8e8f8g2 a.b8>c<ag2.r");
APlay_mml(p, 0, ">c2<age.e8ag fed.c8c2.r");
APlay_mml(p, 0, "g.g8agec8d8e2 d.g8gf8e8d2.r");
APlay_mml(p, 0, "g.g8eca.b8>c<a g.a8g8f8e8d8c2.r");
APlay_mml(p, 0, "d.d8ddc8d8e8f8g2 a.b8>c<ag2.r");
APlay_mml(p, 0, ">c2<age.e8ag fed.c8c2.r");
APlay_run(p);
-うーん、OS自作入門を見ていたら、自作入門のmmlplay.cみた...
~
** 2023.01.25 Wed #1
-今日もまずはOS自作入門から1曲。ベートーベンの交響曲第5番...
-daigo.c[30行]
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T155 @1 l8");
APlay_mml(p, 0, "rggge-2.rfffd1");
APlay_mml(p, 0, "rggge-a-a-a-g>e-e-e-c2r8<ggg");
APlay_mml(p, 0, "da-a-a-g>fffd2r8ggf");
APlay_mml(p, 0, "e-<e-e-fg>ggfe-<e-e-f");
APlay_mml(p, 0, "g>ggfl4e-rcrg2.l8r<a-a-a-f1r4");
APlay_mml(p, 0, " r a-a-a-fddd<ba-a-a-g<ggg");
APlay_mml(p, 0, ">>e-a-a-a-fddd<ba-a-a-g<ggg");
APlay_mml(p, 0, ">>e-g>ccc2<bbb>dd2ccce-e-ddf");
APlay_mml(p, 0, "feeggffa-a-ggb-b-a-a->c");
APlay_mml(p, 0, "c<bb>dce-e-e-c<ggge-c<gge-ccc<b>>>fdd");
APlay_mml(p, 0, "<bgffd<bgfd<b>ccc>>e-e-e-");
APlay_mml(p, 0, "c<aaag-e-e-e-c<aaaa4r2r4b-4r4");
APlay_mml(p, 0, "rb-b-b-e-2f2<b-2>l4b->e-de-fcc<b-");
APlay_mml(p, 0, "b->e-de-fcc<b->b->e-de-fcc<b-");
APlay_mml(p, 0, "<b->cd-c<b->c<b-a->d-e-fe-");
APlay_mml(p, 0, "d-e-d-ce-fg-fe-fg-fe-fg-f");
APlay_mml(p, 0, "e-fg-fe-fg-fg-al8b-2r8>c<b-a-");
APlay_mml(p, 0, "a-gfe-e-dcdfe-<b-g");
APlay_mml(p, 0, ">dc<a-f>c<b-ge-<b->>ab-a");
APlay_mml(p, 0, "b-ab-ab->c<b-a-a-gfe-e-dcd");
APlay_mml(p, 0, "fe-<b-g>dc<a-f>c<b-ge-");
APlay_mml(p, 0, "<b->b->b-b-e-ggge-<b-b-b-ge-e-e-");
APlay_mml(p, 0, "<b->ddde->ggge-<b-b-b-ge-e-e-");
APlay_mml(p, 0, "<b->b-b-b-b-4r4.b-b-b-b-4r4.>ddde-4r2");
APlay_run(p);
~
** 2023.01.25 Wed #2
-ずっとAPlayばかりですみません。でも本当にやっとできたの...
-単音ばかりでは面白くないので、和音が必要なバッハの小フー...
-fuga.c[28行]
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T74 @20 g>d<b-.a8 g8b-8a8g8f+8a8d g8d8a...
APlay_mml(p, 1, "@20 r1 r1 r1 r1");
APlay_mml(p, 2, "@20 r1 r1 r1 r1");
APlay_mml(p, 3, "@20 r1 r1 r1 r1");
APlay_mml(p, 0, "<b-16a16g16b-16a16g16f+16a16g16d16g16a1...
APlay_mml(p, 1, "r1 daf.e8 d8f8e8d8c+8e8<a");
APlay_mml(p, 2, "r1 r1 r1");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "f16a16g16a16c+16a16g16a16d16a16g16a16c+...
APlay_mml(p, 1, ">d8<a8>e8<a8>f8e16d16e8<a8 >d8<a16>d16e...
APlay_mml(p, 2, "r1 r1 r1");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "e-8a8r8e-8d8g8r8d8 c16<b-16>c16d16c16a1...
APlay_mml(p, 1, ">c16<b-16>c16d16c16<b-16a16>c16<b-16a16...
APlay_mml(p, 2, "r1 r2<g4>d4 <b-4.a8g8b-8a8g8");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "r2<d8r8c8r8 d8r8c8r8b-4>c4 d4c4r8<b-8r8...
APlay_mml(p, 1, "d16c16d16e-16d16c16<b-16a16b-16>d16c16d...
APlay_mml(p, 2, "f+8a8d4g8d8a8d8 b-8a16g16a8d8g8d16g16a8...
APlay_mml(p, 3, "r1 r1 r1");
APlay_run(p);
~
** 2023.01.25 Wed #3
-今日はまたワンライナーでいろいろ試して、win32でのウィン...
~
** 2023.01.26 Thu #1
-なぜこんなにMML演奏が楽しいのかを考えてみました。
-そもそもMMLによる演奏は、音がすごくいいかというとそんな...
-でも私のように現実の楽器はほとんど演奏できなくて、でも音...
~
** 2023.01.26 Thu #2
-ここまでのツールのダウンロード: https://essen.osask.jp/...
--入っているものはすべてWindows用でLinuxやmacOSで動かすこ...
--wineとかのエミュレータを使えば、Linux上でも動くかもしれ...
//--[bug] cacheという名前の空のディレクトリがないと、ecru...
|acl1/ (78.1KB)|acl1ライブラリ(作りかけ)|
|cache/ (0.00KB)|ecrun.exeがコンパイル結果を格納しておく...
|1ec.exe (9.50KB)|easy-C用のワンライナー用の疑似シェル|
|1ec.c [298行]|上記のソースコード|
|ecrun.exe (6.00KB)|easy-Cを実行するためのプログラム(例...
|ecrun.c [48行]|上記のソースコード|
|ecc0.exe (8.50KB)|ecrun.exeの下請け|
|ecc0.c [268行]|上記のソースコード|
|hl9b.exe (29.5KB)|HL-9b: easy-Cと文法が似ているのでいく...
|hl9b.c [740行]|上記のソースコード|
-1ec.exeを使えば、「2023.01.12 Thu #1」以降のすべてのプロ...
-hl9b.exeで実行できるもの、できないものの表です。
|1ec|HL-9b||
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|×|[[a23_usm001]] 2023.01.17 Tue #1 : 3dwave.c 同心円...
|〇|×|[[a23_usm002]] 2023.01.18 Wed #1 : 3dwave.c[13行] ...
|〇|〇|[[a23_usm002]] 2023.01.18 Wed #2 : kcubei.c[33行] ...
|〇|×|[[a23_usm002]] 2023.01.19 Thu #1 : kcube.c[23行] 回...
|〇|×|[[a23_usm002]] 2023.01.19 Thu #2 : kray.c[56行] 簡...
|〇|〇|[[a23_usm002]] 2023.01.23 Mon #1 : maze.c[14行] 迷...
|〇|〇|[[a23_usm002]] 2023.01.23 Mon #2 : 3dwavei.c[15行]...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #1 : daiku.c[13行] ...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #2 : kirakira.c[11行...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #2 : fujisan.c[13行]...
|〇|〇|[[a23_usm003]] 2023.01.25 Wed #1 : daigo.c[30行] ...
|〇|〇|[[a23_usm003]] 2023.01.25 Wed #2 : fuga.c[28行] 「...
~
** 2023.01.27 Fri #1
-私にとっては毎度おなじみのマンデルブロー集合のグラフィッ...
-mandel.c[27行]
AWin *w = aOpenWin(512, 384, "mandel");
int x, y;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
int sn = 0, sx, sy, n;
AInt32 c, cx, cy, zx, zy, xx, yy;
for (sx = 0; sx < 4; sx++) {
cx = (x * 4 + sx) * 56 + 4673536;
for (sy = 0; sy < 4; sy++) {
cy = (y * 4 + sy) * (-56) - 124928;
zx = cx; zy = cy;
for (n = 1; n < 447; n++) {
xx = aMul64Shr(zx, zx, 24);
yy = aMul64Shr(zy, zy, 24);
if (xx + yy > 0x4000000) break;
zy = aMul64Shr(zy, zx, 23);
zx = xx + cx - yy;
zy = zy + cy; }
sn = sn + n; }}
n = sn >> 4;
c = aRgb8(n, 0, 0);
if (n >= 256) {
c = aRgb8(0, 0, 0);
if (n < 447) {
c = aRgb8(255, n - 255, 0); }}
aSetPix(w, x, y, c); }}
aPrintTime();
https://essen.osask.jp/files/pic20230130a.png
~
** 2023.01.27 Fri #2
-ええと私は blikeライブラリ、blaライブラリ、aclライブラリ...
-''[blikeライブラリ (2010年)]''
-私がかつてwin32でのグラフィック表示方法について勉強した...
-そう思ってみると、ああ昔のBASICは良かったなあって思いま...
-それで「あのころのBASICのように」という意味で「BASIC-lik...
-blikeライブラリは、OSECPU-VMにも(多少改造されて)採用さ...
-''[blaライブラリ (2018年)]''
-blikeライブラリはウィンドウを一つしか持てないという問題...
-blaライブラリはES-BASICに採用されたりしました。
-''[aclライブラリ (2020年)]''
-blaライブラリは、Windowsにしか対応できていないという問題...
-このaclという名前は、「ある、ひとつの(a)」「C言語用の」...
-aclライブラリは2021年版の「10日くらいでできる!プログラ...
-''[acl1ライブラリ (2023年)]''
-aclライブラリはそんなには悪くなかったのですが、任意のラ...
-ということで、何をオーバーライドしたくて何をオーバーライ...
-このmalloc/freeの自由なオーバーライドはかなり有用で、普...
-(ちなみにこのcommon-argment方式に落ち着くまでに1年間く...
-あと重要な違いとして、acl1ライブラリはMMLによる音楽演奏...
-acl1ライブラリはeasy-Cに採用されています。
~
** 2023.01.28 Sat #1
-昨晩いろいろ試して、.exeファイルを小さくする方法がちょっ...
--あえて古いバージョン(MinGWの5.1.6だったかな)を使ってp...
--さらにmainCRTStartupを自作して、さらに.rdataを.dataに統...
--さらにリンカスクリプトを改造した: 2.50KB
---.textの後ろに.rdataをマージ
---.idataの後ろに.dataをマージ
---これでセクションが.textと.idataと.bssの3つだけになる。...
--上記にあるHL-9bもこの方法でリンクし直してみました。29.5...
~
** 2023.01.29 Sun #1
-主に自分用のメモ:
-以下のように普段の記述に「--verbose」を付ければ、gccがど...
prompt>gcc --verbose hello.c -O3 -o hello.exe
-collect2.exe(=ldの実体)への引数もこれで分かります。
-デフォルトのリンカスクリプトを取得するには以下のようにし...
prompt>gcc hello.c -O3 -o hello.exe -Wl,-s,--verbose
-これを見ながら適当に ldscript.txt を作って以下のようにす...
prompt>gcc hello.c -O3 -o hello.exe -Wl,-s,-T,ldscript.txt
~
** 2023.01.29 Sun #2
-主に自分用のメモ:
--すべて例外なく-Osを指定。-Wl,-s。
|gcc 3.4.5 デフォルト|30,208バイト||
|gcc 3.4.5 mainCRTStartup自作・リンカスクリプト自作|27,64...
|gcc 9.2.0 デフォルト|50,688バイト||
|gcc 9.2.0 mainCRTStartup自作・リンカスクリプト自作|32,52...
-これを見ると、サイズを追求するなら古いMinGWを使ったほう...
-というか、gcc 9.2.0 のデフォルトはちょっといただけないで...
--試しに -O3 にしてみたら65,024バイトになりました。だから...
--でもたぶん速度優先でコンパイルして実行速度で比較したら...
~
** 2023.01.30 Mon #1
-年と月を入力すると、カレンダーが出てくるというただそれだ...
-calendar.c[11行]
static char *a = "JanFebMarAprMayJunJulAugSepOctNovDec";
static int a1[12] = { 22, 4, 24, 20, 22, 18, 27, 23, 19,...
int yy = aInput("year=? "), mm = aInput("month=? ") - 1,...
if (yy % 400 == 0 || (yy % 4 == 0 && yy % 100 != 0)) { a...
printf("\n %.3s %4d\n\nSun Mon Tue Wed Thu Fri S...
w = yy - (mm <= 1); w = (w + w / 4 - w / 100 + w / 400 +...
for (d = 0; d < w; d++) { printf(" "); }
for (d = 1; d <= d1; d++) {
printf("%3d ", d); w = (w + 1) % 7;
if (w == 0) { printf("\n"); }}
if (w > 0) { printf("\n"); }
https://essen.osask.jp/files/pic20230131a.png
-このプログラムではa1[]という配列に少し工夫があって、7進...
~
** 2023.01.30 Mon #2
-なんかリンカがデフォルトでリンクしようとするオブジェクト...
-これにより、「hello, world」程度ならたった 1.5KB の実行...
~
//子供に教える手順
//nekofun. invader.pr.prs.prlf.prsp
//winのクローズ
* こめんと欄
#comment
終了行:
* a23_useSelfMade #3
-(by [[K]], 2023.01.23)
--親ページ: [[a23_useSelfMade]]
** 2023.01.24 Tue #1
-私は小学4年生の時に、中古のFM-8を使ってプログラミングを...
-中学に入ってFM-NEW7を中古で買いました(当時でも相当に型...
-しかし今私がC言語でプログラミングをすると、音は全く鳴ら...
-いや、Windows上でMinGWを使う環境でも、音を出す手段があり...
-さてeasy-Cにはワンライナーがあります。そしてグラフィック...
-まあこんな説明を書く必要はなかったのですが、なんというか...
-ということで daiku.c[13行] です。これはベートーベンの交...
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T110 @1 f+f+ga agf+e ddef+ f+.e8e2");
APlay_mml(p, 0, "f+f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "eef+d ef+8g8f+d ef+8g8f+e de<a>");
APlay_mml(p, 0, "f+2 f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "> f+f+ga agf+e ddef+ f+.e8e2");
APlay_mml(p, 0, "f+f+ga agf+e ddef+ e.d8d2");
APlay_mml(p, 0, "eef+d ef+8g8f+d ef+8g8f+e de<a>");
APlay_mml(p, 0, "f+2 f+ga agf+e ddef+ e.d8d2");
APlay_run(p);
-気づいた人はほとんどいないと思うので書いておきますが、こ...
~
** 2023.01.24 Tue #2
-ついでなので、他もどんどんやります。以下もすべて「30日で...
-kirakira.c[11行] : 「きらきら星」
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T120 @1 ccggaag2 ffeeddc2");
APlay_mml(p, 0, "ggffeed2 ggffeed2");
APlay_mml(p, 0, "ccggaag2 ffeeddc2 r1");
APlay_mml(p, 0, "ccggaag2 ffeeddc2");
APlay_mml(p, 0, "ggffeed2 ggffeed2");
APlay_mml(p, 0, "ccggaag2 ffeeddc2");
APlay_run(p);
-fujisan.c[13行] : 「富士山」
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T120 @1 g.g8agec8d8e2 d.g8gf8e8d2.r");
APlay_mml(p, 0, "g.g8eca.b8>c<a g.a8g8f8e8d8c2.r");
APlay_mml(p, 0, "d.d8ddc8d8e8f8g2 a.b8>c<ag2.r");
APlay_mml(p, 0, ">c2<age.e8ag fed.c8c2.r");
APlay_mml(p, 0, "g.g8agec8d8e2 d.g8gf8e8d2.r");
APlay_mml(p, 0, "g.g8eca.b8>c<a g.a8g8f8e8d8c2.r");
APlay_mml(p, 0, "d.d8ddc8d8e8f8g2 a.b8>c<ag2.r");
APlay_mml(p, 0, ">c2<age.e8ag fed.c8c2.r");
APlay_run(p);
-うーん、OS自作入門を見ていたら、自作入門のmmlplay.cみた...
~
** 2023.01.25 Wed #1
-今日もまずはOS自作入門から1曲。ベートーベンの交響曲第5番...
-daigo.c[30行]
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T155 @1 l8");
APlay_mml(p, 0, "rggge-2.rfffd1");
APlay_mml(p, 0, "rggge-a-a-a-g>e-e-e-c2r8<ggg");
APlay_mml(p, 0, "da-a-a-g>fffd2r8ggf");
APlay_mml(p, 0, "e-<e-e-fg>ggfe-<e-e-f");
APlay_mml(p, 0, "g>ggfl4e-rcrg2.l8r<a-a-a-f1r4");
APlay_mml(p, 0, " r a-a-a-fddd<ba-a-a-g<ggg");
APlay_mml(p, 0, ">>e-a-a-a-fddd<ba-a-a-g<ggg");
APlay_mml(p, 0, ">>e-g>ccc2<bbb>dd2ccce-e-ddf");
APlay_mml(p, 0, "feeggffa-a-ggb-b-a-a->c");
APlay_mml(p, 0, "c<bb>dce-e-e-c<ggge-c<gge-ccc<b>>>fdd");
APlay_mml(p, 0, "<bgffd<bgfd<b>ccc>>e-e-e-");
APlay_mml(p, 0, "c<aaag-e-e-e-c<aaaa4r2r4b-4r4");
APlay_mml(p, 0, "rb-b-b-e-2f2<b-2>l4b->e-de-fcc<b-");
APlay_mml(p, 0, "b->e-de-fcc<b->b->e-de-fcc<b-");
APlay_mml(p, 0, "<b->cd-c<b->c<b-a->d-e-fe-");
APlay_mml(p, 0, "d-e-d-ce-fg-fe-fg-fe-fg-f");
APlay_mml(p, 0, "e-fg-fe-fg-fg-al8b-2r8>c<b-a-");
APlay_mml(p, 0, "a-gfe-e-dcdfe-<b-g");
APlay_mml(p, 0, ">dc<a-f>c<b-ge-<b->>ab-a");
APlay_mml(p, 0, "b-ab-ab->c<b-a-a-gfe-e-dcd");
APlay_mml(p, 0, "fe-<b-g>dc<a-f>c<b-ge-");
APlay_mml(p, 0, "<b->b->b-b-e-ggge-<b-b-b-ge-e-e-");
APlay_mml(p, 0, "<b->ddde->ggge-<b-b-b-ge-e-e-");
APlay_mml(p, 0, "<b->b-b-b-b-4r4.b-b-b-b-4r4.>ddde-4r2");
APlay_run(p);
~
** 2023.01.25 Wed #2
-ずっとAPlayばかりですみません。でも本当にやっとできたの...
-単音ばかりでは面白くないので、和音が必要なバッハの小フー...
-fuga.c[28行]
APlay *p = aOpenPlay16(100000);
APlay_mml(p, 0, "T74 @20 g>d<b-.a8 g8b-8a8g8f+8a8d g8d8a...
APlay_mml(p, 1, "@20 r1 r1 r1 r1");
APlay_mml(p, 2, "@20 r1 r1 r1 r1");
APlay_mml(p, 3, "@20 r1 r1 r1 r1");
APlay_mml(p, 0, "<b-16a16g16b-16a16g16f+16a16g16d16g16a1...
APlay_mml(p, 1, "r1 daf.e8 d8f8e8d8c+8e8<a");
APlay_mml(p, 2, "r1 r1 r1");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "f16a16g16a16c+16a16g16a16d16a16g16a16c+...
APlay_mml(p, 1, ">d8<a8>e8<a8>f8e16d16e8<a8 >d8<a16>d16e...
APlay_mml(p, 2, "r1 r1 r1");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "e-8a8r8e-8d8g8r8d8 c16<b-16>c16d16c16a1...
APlay_mml(p, 1, ">c16<b-16>c16d16c16<b-16a16>c16<b-16a16...
APlay_mml(p, 2, "r1 r2<g4>d4 <b-4.a8g8b-8a8g8");
APlay_mml(p, 3, "r1 r1 r1");
APlay_mml(p, 0, "r2<d8r8c8r8 d8r8c8r8b-4>c4 d4c4r8<b-8r8...
APlay_mml(p, 1, "d16c16d16e-16d16c16<b-16a16b-16>d16c16d...
APlay_mml(p, 2, "f+8a8d4g8d8a8d8 b-8a16g16a8d8g8d16g16a8...
APlay_mml(p, 3, "r1 r1 r1");
APlay_run(p);
~
** 2023.01.25 Wed #3
-今日はまたワンライナーでいろいろ試して、win32でのウィン...
~
** 2023.01.26 Thu #1
-なぜこんなにMML演奏が楽しいのかを考えてみました。
-そもそもMMLによる演奏は、音がすごくいいかというとそんな...
-でも私のように現実の楽器はほとんど演奏できなくて、でも音...
~
** 2023.01.26 Thu #2
-ここまでのツールのダウンロード: https://essen.osask.jp/...
--入っているものはすべてWindows用でLinuxやmacOSで動かすこ...
--wineとかのエミュレータを使えば、Linux上でも動くかもしれ...
//--[bug] cacheという名前の空のディレクトリがないと、ecru...
|acl1/ (78.1KB)|acl1ライブラリ(作りかけ)|
|cache/ (0.00KB)|ecrun.exeがコンパイル結果を格納しておく...
|1ec.exe (9.50KB)|easy-C用のワンライナー用の疑似シェル|
|1ec.c [298行]|上記のソースコード|
|ecrun.exe (6.00KB)|easy-Cを実行するためのプログラム(例...
|ecrun.c [48行]|上記のソースコード|
|ecc0.exe (8.50KB)|ecrun.exeの下請け|
|ecc0.c [268行]|上記のソースコード|
|hl9b.exe (29.5KB)|HL-9b: easy-Cと文法が似ているのでいく...
|hl9b.c [740行]|上記のソースコード|
-1ec.exeを使えば、「2023.01.12 Thu #1」以降のすべてのプロ...
-hl9b.exeで実行できるもの、できないものの表です。
|1ec|HL-9b||
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|〇|[[a23_usm001]] 2023.01.16 Mon #1 : [ワンライナー] ...
|〇|×|[[a23_usm001]] 2023.01.17 Tue #1 : 3dwave.c 同心円...
|〇|×|[[a23_usm002]] 2023.01.18 Wed #1 : 3dwave.c[13行] ...
|〇|〇|[[a23_usm002]] 2023.01.18 Wed #2 : kcubei.c[33行] ...
|〇|×|[[a23_usm002]] 2023.01.19 Thu #1 : kcube.c[23行] 回...
|〇|×|[[a23_usm002]] 2023.01.19 Thu #2 : kray.c[56行] 簡...
|〇|〇|[[a23_usm002]] 2023.01.23 Mon #1 : maze.c[14行] 迷...
|〇|〇|[[a23_usm002]] 2023.01.23 Mon #2 : 3dwavei.c[15行]...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #1 : daiku.c[13行] ...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #2 : kirakira.c[11行...
|〇|〇|[[a23_usm003]] 2023.01.24 Tue #2 : fujisan.c[13行]...
|〇|〇|[[a23_usm003]] 2023.01.25 Wed #1 : daigo.c[30行] ...
|〇|〇|[[a23_usm003]] 2023.01.25 Wed #2 : fuga.c[28行] 「...
~
** 2023.01.27 Fri #1
-私にとっては毎度おなじみのマンデルブロー集合のグラフィッ...
-mandel.c[27行]
AWin *w = aOpenWin(512, 384, "mandel");
int x, y;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
int sn = 0, sx, sy, n;
AInt32 c, cx, cy, zx, zy, xx, yy;
for (sx = 0; sx < 4; sx++) {
cx = (x * 4 + sx) * 56 + 4673536;
for (sy = 0; sy < 4; sy++) {
cy = (y * 4 + sy) * (-56) - 124928;
zx = cx; zy = cy;
for (n = 1; n < 447; n++) {
xx = aMul64Shr(zx, zx, 24);
yy = aMul64Shr(zy, zy, 24);
if (xx + yy > 0x4000000) break;
zy = aMul64Shr(zy, zx, 23);
zx = xx + cx - yy;
zy = zy + cy; }
sn = sn + n; }}
n = sn >> 4;
c = aRgb8(n, 0, 0);
if (n >= 256) {
c = aRgb8(0, 0, 0);
if (n < 447) {
c = aRgb8(255, n - 255, 0); }}
aSetPix(w, x, y, c); }}
aPrintTime();
https://essen.osask.jp/files/pic20230130a.png
~
** 2023.01.27 Fri #2
-ええと私は blikeライブラリ、blaライブラリ、aclライブラリ...
-''[blikeライブラリ (2010年)]''
-私がかつてwin32でのグラフィック表示方法について勉強した...
-そう思ってみると、ああ昔のBASICは良かったなあって思いま...
-それで「あのころのBASICのように」という意味で「BASIC-lik...
-blikeライブラリは、OSECPU-VMにも(多少改造されて)採用さ...
-''[blaライブラリ (2018年)]''
-blikeライブラリはウィンドウを一つしか持てないという問題...
-blaライブラリはES-BASICに採用されたりしました。
-''[aclライブラリ (2020年)]''
-blaライブラリは、Windowsにしか対応できていないという問題...
-このaclという名前は、「ある、ひとつの(a)」「C言語用の」...
-aclライブラリは2021年版の「10日くらいでできる!プログラ...
-''[acl1ライブラリ (2023年)]''
-aclライブラリはそんなには悪くなかったのですが、任意のラ...
-ということで、何をオーバーライドしたくて何をオーバーライ...
-このmalloc/freeの自由なオーバーライドはかなり有用で、普...
-(ちなみにこのcommon-argment方式に落ち着くまでに1年間く...
-あと重要な違いとして、acl1ライブラリはMMLによる音楽演奏...
-acl1ライブラリはeasy-Cに採用されています。
~
** 2023.01.28 Sat #1
-昨晩いろいろ試して、.exeファイルを小さくする方法がちょっ...
--あえて古いバージョン(MinGWの5.1.6だったかな)を使ってp...
--さらにmainCRTStartupを自作して、さらに.rdataを.dataに統...
--さらにリンカスクリプトを改造した: 2.50KB
---.textの後ろに.rdataをマージ
---.idataの後ろに.dataをマージ
---これでセクションが.textと.idataと.bssの3つだけになる。...
--上記にあるHL-9bもこの方法でリンクし直してみました。29.5...
~
** 2023.01.29 Sun #1
-主に自分用のメモ:
-以下のように普段の記述に「--verbose」を付ければ、gccがど...
prompt>gcc --verbose hello.c -O3 -o hello.exe
-collect2.exe(=ldの実体)への引数もこれで分かります。
-デフォルトのリンカスクリプトを取得するには以下のようにし...
prompt>gcc hello.c -O3 -o hello.exe -Wl,-s,--verbose
-これを見ながら適当に ldscript.txt を作って以下のようにす...
prompt>gcc hello.c -O3 -o hello.exe -Wl,-s,-T,ldscript.txt
~
** 2023.01.29 Sun #2
-主に自分用のメモ:
--すべて例外なく-Osを指定。-Wl,-s。
|gcc 3.4.5 デフォルト|30,208バイト||
|gcc 3.4.5 mainCRTStartup自作・リンカスクリプト自作|27,64...
|gcc 9.2.0 デフォルト|50,688バイト||
|gcc 9.2.0 mainCRTStartup自作・リンカスクリプト自作|32,52...
-これを見ると、サイズを追求するなら古いMinGWを使ったほう...
-というか、gcc 9.2.0 のデフォルトはちょっといただけないで...
--試しに -O3 にしてみたら65,024バイトになりました。だから...
--でもたぶん速度優先でコンパイルして実行速度で比較したら...
~
** 2023.01.30 Mon #1
-年と月を入力すると、カレンダーが出てくるというただそれだ...
-calendar.c[11行]
static char *a = "JanFebMarAprMayJunJulAugSepOctNovDec";
static int a1[12] = { 22, 4, 24, 20, 22, 18, 27, 23, 19,...
int yy = aInput("year=? "), mm = aInput("month=? ") - 1,...
if (yy % 400 == 0 || (yy % 4 == 0 && yy % 100 != 0)) { a...
printf("\n %.3s %4d\n\nSun Mon Tue Wed Thu Fri S...
w = yy - (mm <= 1); w = (w + w / 4 - w / 100 + w / 400 +...
for (d = 0; d < w; d++) { printf(" "); }
for (d = 1; d <= d1; d++) {
printf("%3d ", d); w = (w + 1) % 7;
if (w == 0) { printf("\n"); }}
if (w > 0) { printf("\n"); }
https://essen.osask.jp/files/pic20230131a.png
-このプログラムではa1[]という配列に少し工夫があって、7進...
~
** 2023.01.30 Mon #2
-なんかリンカがデフォルトでリンクしようとするオブジェクト...
-これにより、「hello, world」程度ならたった 1.5KB の実行...
~
//子供に教える手順
//nekofun. invader.pr.prs.prlf.prsp
//winのクローズ
* こめんと欄
#comment
ページ名: