0から始める2chブラウザfor超漢字 "2ch de BTRON"at TECH
0から始める2chブラウザfor超漢字 "2ch de BTRON" - 暇つぶし2ch1:デフォルトの名無しさん
04/10/10 18:49:10
今後、BTRONが広まるには2chブラウザが欠かせない。

しかし
パーソナルメディアは動かないだろう。
超漢字古参ユーザも動いて紅。

そこで
CやC++は当然として、BASICもPascalもFORTRANもさわったことすらない
正真正銘プログラミングど素人の私が2ちゃんねるブラウザを作ろうと思う。

2ch de BTRON←プログラミング←2chブラウザの仕組み←C言語初級←初心者←0

まさに
UNIXをつくるためにつくられたC言語、
UNIXをみんなの手に取り戻すためにLinusが0から書き起こしたLinux ver 0.1,
これらに較べれば格段に小規模でありながら、格別に困難にして遙かな道のりの、
まず自分を改造する段階から始まる超フルスクラッチのプログラミングプロジェクト。

たぶん
2年ぐらいかかると思う…いや5年?……!、∞?………on

2:デフォルトの名無しさん
04/10/10 18:49:33
これまでの経緯

超漢字ユーザみんなのために2chブラウザが欲しい

ユーザに要望した

半年待った

梨の礫だった

自分でつくることにした

2ちゃんねるブラウザのソースを見た

まったくわからなかった

3:デフォルトの名無しさん
04/10/10 18:49:56

プログラミングを勉強することにした

プログラム板で推薦図書を調べた

『定本 明解C言語 入門編 (第1巻) 』がヒットした

電車でGo!!

街に着いた

本屋で『定本 明解C言語 入門編 (第1巻) 』を立ち読みした

1題目、左側にある空白がスペースなのかタブなのか悩んだ

1時間立ちつくした

4:デフォルトの名無しさん
04/10/10 18:50:36

初心者以下向きの本を探した

『世界で一番簡単なC言語のe本』に目を惹かれた

空白がインデントという名前で適当でいいことが判明した

とりあえず買って帰ることにした

『定本 明解C言語 入門編 (第1巻) 』
『世界で一番簡単なC言語のe本』
『プログラムはなぜ動くのか』
『コンピュータはなぜ動くのか』

先週

放置

現在にいたる

5:デフォルトの名無しさん
04/10/10 18:51:18
sage

6:デフォルトの名無しさん
04/10/10 18:51:39
C言語の環境をインストールする

gcc = (GNU Compiler Collection)

gcc-2.95とgcc-2.95.2があって違いがわからず。
悩んだがテキストに忠実に2.95をインストール。


人生初プログラム挑戦

コマンドでのフォルダの移動がうまくいかない。
なんだかよくわからないまま移動に成功。

コンパイル失敗。
→スペルミスを発見→修正

表示に成功。

なんだかおもしろい。
おいおい、「初歩的なプログラムなんて
所詮練習のためだけの自己満足でくだらない」
と思ってたが、面白いじゃないのよ!

作成されたexeを消しては、コメントを書き直して(←意味なし。小心者)
コンパイルを繰り返した。

試しに、できたプログラムをダブルクリックしたら、
目にもとまらぬ速さでなにかが現れ消えていった。

人間に優しくないプログラムだ。

7:デフォルトの名無しさん
04/10/10 18:52:29
板違いなので誘導されてきました。
ageてごめんなさい。

8:デフォルトの名無しさん
04/10/10 19:07:33
>>1
日記は自分の日記サイトへ

9:デフォルトの名無しさん
04/10/10 19:50:33
>>8
では、拙作第1号をば。
stdioってなに?
ていうかprintf以外意味わかりません。


/* 1.c 2004/10/10 */
#include <stdio.h>

int main(void) {
printf("Hey Men\n");
return 0;
}

10:0
04/10/10 19:55:14
>>8
だいたい日記じゃないです。
プロジェクトです。

11:デフォルトの名無しさん
04/10/10 20:12:01
「Hello World」じゃないところが渋いな

12:0
04/10/10 20:33:53
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ stdio.h」 */

int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}


わかったような、わからんような。やっぱわからん。

C入門
URLリンク(www.asahi-net.or.jp)
C言語入門(コンパイル:gcc)
URLリンク(www.stackasterisk.jp)

13:0
04/10/10 20:35:15
>>11
著作権に触れないようにテキストを編集しました。

14:デフォルトの名無しさん
04/10/10 20:35:55
C 言語覚えてから出直してくれ。

15:0
04/10/10 20:38:15
>>14
いま憶えてるところです。
放置してください?

16:デフォルトの名無しさん
04/10/10 20:40:02
超漢字って専用のAPIあるんだっけ?
あまりにマイナーなのでちょっと・・・

17:0
04/10/10 20:43:00
タブは消えるんだ…
複数半角スペースも1個になるような希ガス…

/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */

int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}


18:0
04/10/10 20:45:45
>>16
さっぱりわかりません。
それはだいぶ先の目標です。

>>17
あ、やっぱり消える。

みんなまさかソースのインデントに全角スペースを使ってるんですか?
2ちゃんねるに貼る時だけ?

/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */

int main(void) { /* 整数宣言 本体(空) */
   printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
   return 0; /* まじない「戻せ 0」 */
}

19:デフォルトの名無しさん
04/10/10 20:46:32
>>18
&nbsp;

20:デフォルトの名無しさん
04/10/10 20:48:43
普通いちいちコメントつけっかなあ

void main(){printf("HelloWorld\n");}

わ~い 一行HelloWorldだ~ (注:D専用)

21:0
04/10/10 20:58:17
>>19
ググリました。
NO-BREAK SPACEですか。なるほど…

全角スペースとはまた違う特殊な文字コードのようです。
わかりません。
どう使うんですか?
あ、いいです。
とりあえず前に進みます。

>>20
第1号なもんでうれしがりです(〃▽〃)
あと、自分への解説用です。


今日はこれまで。おやすみなさい。

22:デフォルトの名無しさん
04/10/10 21:06:02
>>21
使い方も何も2chに書き込むときにスペースを置換するだけ。
出力されるのはただのスペースだから特殊な文字コードでも何でもないぞ。

23:デフォルトの名無しさん
04/10/10 23:07:11
>>22
スペース出力するんじゃなくて、
ブラウザ側で半角スペースとして
認識するんじゃなかったっけ?

24:デフォルトの名無しさん
04/10/10 23:13:37
>>23
どこに難癖を付けたいのかよくわからん。
ブラウザに表示される文字のことを出力と言ってるのだがOK?
SGMLにおけるエンティティとか文字実体参照の概念はOK?

25:デフォルトの名無しさん
04/10/11 01:38:49
半角スペースとして出力するでいーです。

26:0
04/10/11 08:31:04
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */

int main(void) { /* 整数宣言 本体(空) */
   printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
   return 0; /* まじない「戻せ 0」 */
}


27:0
04/10/11 08:39:26
>>19>>22>>23-25
おお!
案ずるより産むが易し。

やってみました。
そうか、そうなのか。

昨日ググった時にはHTMLについてのことが書いてあったので
???だったのですが、やってみてちょっと感動。

2ちゃんねるブラウザや2ちゃんねるも
テキストみたいに見えてHTMLなのか。な?

28:0
04/10/11 09:41:21
寝る前に原理本を読むことにした。
5ページと保たなかった。

『プログラムはなぜ動くのか』

第1章 プログラマにとってCPUとはなにか

ソース
↓ コンパイル
マシン語
↓ ロード
メモリ
↓ 解釈・実行
CPU
↓ 出力
結果

29:0
04/10/11 11:14:41
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* プリプロセッサ制御文 */

int main(void) { /* 整数宣言 main関数→ */
  printf("Hey Men\n"); /* 式 */
  return 0; /* まじない */
} /* ←main関数 */

stdio = STanDard Input/Output 「標準入出力」
h = Header 「ヘッダー」
int = Integer 「整数」
f = Function 「関数」




30:デフォルトの名無しさん
04/10/11 12:34:57
マヂレスすると、LinuxとかでC言語によるプログラミングそのものに
慣れておかないとBTRONでのプログラミングは難しいぞ。
相当特殊な環境だからな。

31:デフォルトの名無しさん
04/10/11 12:42:49
モジラでp2ではイカンの?>1



32:0
04/10/11 13:31:59
e本第4章変数

/* 2.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
 int number;

 number = 2;
 printf("第%d号機\n",number);
 return 0;
}

33:0
04/10/11 13:39:04
小数を代入し表示する。

テキストでは1.5とキリのよい数字があがっているが、
なぜか1.500000と表示される。

悩んだが、前に進むことにした。
floatが有効桁7桁だからかな?

ま、いいや。とりあえず右手が腱鞘炎になりそうなので中断。
打ち慣れないバックスラッシュのキー位置がつらい。

/* e1.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
float a;

  a = 1.5;
  printf("a = %f\n",a);
  return 0;
}

34:0
04/10/11 13:43:19
>>30
クロス開発環境というやつですか。
いまは憎っくきWindows上でやってます(;´Д`)
とりあえずcの初心者になってからLinuxに移行します。

正真正銘のど素人なので
他の環境を固定しとかないと、
なにが失敗要因なのか特定しにくく
挫折を早めると思いますので。

>>31
私が見た時にはもう配布中止になってました。
そもそもp2って超漢字で使えるようになるんですか?

35:0
04/10/11 13:48:52
>>30
マイクロスクリプトやプログラミング言語Tはどうなんですか?

使い勝手とか、「こんなんじゃ小物すら作れん」とか、
「いや、意外と使える。みんな小物はマイクロスクリプトでやってる」とか、
「すばらしい。これぞ教育用プログラミング言語だ。T言語萬歳」とか、

なんぞ感想をいただけるとうれしいです。

36:デフォルトの名無しさん
04/10/11 13:49:27
Cを勉強してからじゃなく
ブラウザを作りながらCを学べ

37:0
04/10/11 13:50:58
>>36
>ブラウザを作りながらCを学べ

やってみましたとも。
挫折しました。
私は初心者ですらなかったようです(;・∀・)

38:31
04/10/11 13:58:53
>>34
ググッただけだからリンク切れなのかもしれんけど
URLリンク(www.personal-media.co.jp)
にFirefox0.7のビルドパッケージがあるらしい
で、p2別の所に立てればよいのでは?


39:デフォルトの名無しさん
04/10/11 14:01:49
>>34
そのうち配布されるようになるだろうからしばし待て。

> そもそもp2って超漢字で使えるようになるんですか?
mozillaが動けば使えるんじゃない?


40:31
04/10/11 14:05:22
>>34
普通に配布されていたよ...orz >Firebird0.7
URLリンク(www.chokanji.com)


41:デフォルトの名無しさん
04/10/11 14:17:00
>>36
0はプログラミングの経験はなさそうなのでむりぽ。

42:0
04/10/11 17:26:40
頭の芯から疲れる本だ。

『プログラムはなぜ動くのか』
第1章 CPU
CPUは、メモリから命令やデータをレジスタに出し入れ・
計算・並べ替えして、演算をこなす。

第2章 2進数
2進数の特徴はなかなかおもしろい。

2^8 = 8bit = 1Bite
2^8 = 256(「にごろ」ゲームジャンルで聴いたことがある。)
2^10 = 1024(「キロ」ハードディスクで聴いたことがある。
2^16 = 65536(実身数制限の壁(;´Д`))

シフト演算
  計算演算
  論理演算
NOT, AND, OR XOR
左シフト、右シフト
int 最大桁が符号を表し、桁あふれするとあふれたのは消える(;´Д`)イイノカ

第3章 小数点数
十進小数と二進小数の相性の悪さが計算誤差を生む。
Excelの馬鹿さ加減に少し納得。BODでも使えよ、重くていいから。

float 0-00000000-00000000000000000000000
double
エクセス○○(忘れた)
浮動小数点数 符号-指数-仮数

43:0
04/10/11 17:33:22
>>38>>40
ありがとうございます。

>>39
> そもそもp2って超漢字で使えるようになるんですか?

ところがですね、以前にMox2chを使えるかどうか試そうと思って、
とりあえずFirefoxにタブブラウザ拡張を入れようと思ったんですよ。
そしたら、手順どおりに進んだんですが最後に超漢字がフリーズ。
再起動したら、Firefoxが起動しない。(上書きインストールして復帰しましたが)

というわけで、p2は試してないんですが、嫌な予感がするでしょ?

>>41
ええ0ですから。
さいしょから0を名乗っていたんですが半角の0は名前に使えないようです。
というわけでよりはずかしい全角の0がハンドルネームです←何かの罰ですか

44:デフォルトの名無しさん
04/10/11 18:18:28
>>43
p2はサーバを用意して(超漢字でなくてLinuxなどでOK)、それをMozillaなどの
普通のWebブラウザで見る構成なのだが。
WebブラウザがJavaScriptやCookieをサポートしているのなら何もしなくても見れる。

45:0
04/10/11 18:51:07
>>44
ということはもう一台パソコンが必要なんですね。
ありません…

超漢字版のFirefoxはCookieはサポートしてましたが
JavaScriptはだめだったような気がします…

とおもって調べたらサポートしてました。

Mozilla Firebird 0.7 for 超漢字
URLリンク(www.chokanji.com)


ということは、私以外の人は古いマシンをサーバにして
p2でにちゃんねるブラウザが使えるようになりますね。

このプロジェクトの矛先が消えた…on

46:0
04/10/11 18:54:15
>>44
ところでサーバって個人で建てられるものなんですか?

インターネットは大学とかのイントラネットと商用ネットを
共通規格によって緩やかにつなぐものだという認識なのですが、
個人がサーバを建てるのは(できるとしたら)なんのためですか?

えー………、udとかの延長で社会貢献?

47:0
04/10/11 19:38:04
例題2

/* e2.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
     int a,b;

     a = 1;
     printf("a = %d\n",a);
     b = a;
     printf("b = %d\n",b);
     a = 2;
     printf("a = %d\n",a);

     return 0;
}

48:0
04/10/11 19:42:34
例題3

なるほど、変数は初期化しないと0じゃなくて「なにか」がでちゃうのね。

/* e3.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
     int a;

     printf("a = %d\n",a);
     return 0;
}

49:0
04/10/11 19:51:12
/* 3.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
     int number;

     number = 2 + 1;
     printf("第%d号機\n",number);
     return 0;
}

50:0
04/10/11 19:58:05
/* 練習4.c 2004/10/11 */
#include <stdio.h>

int main(void)
{
     int number;

     number = 3;
     number = number + 1;
     printf("練習 %d 題目\n",number);
     return 0;
}

51:0
04/10/12 08:04:09
/* e5.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     int a,b,c;

     a = 2;
     b = 5;
     c = a * b;
     printf("Ans = %d\n",c);

     return 0;
}

52:0
04/10/12 08:05:20
/* e6.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     float a,b,c;

     a = 0.2;
     b = 0.5;
     c = (a * b) / 2;
     printf("Ans = %f\n",c);

     return 0;
}

53:0
04/10/13 05:45:05
/* p1.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     int a,b,c;

     a = 2;
     b = 5;
     printf("a = %d\n",a);
     printf("b = %d\n",b);
     printf("値の入れ替え\n");
     c = a;
     a = b;
     b = c;
     printf("a = %d\n",a);
     printf("b = %d\n",b);

     return 0;
}

54:0
04/10/13 05:48:28
/* p2.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     double r,pi,l,a;

     r = 10;
     pi = 3.141592654;

     l = 2 * pi * r;
     a = pi * r * r;

     printf("半径 = %f\n",r);
     printf("円周 = %f\n",l);
     printf("面積 = %f\n",a);

     return 0;
}

55:0
04/10/13 05:49:09
/* p3.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     int a;

     a = 90;

     printf("%dmin = %dh%dm\n", a, (a/60), (a%60));

     return 0;
}

56:0
04/10/13 05:50:08
/* c4.c 2004/10/12 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 1;

printf("a = %d\n", a);

if (a < 5){
     printf("Statement 1\n");
}

if (a > 5){
     printf("Statement 2\n");
} else {
     printf("Statement 3\n");
}

if (a > 5){
     printf("Statement 4\n");
} else if (a < 0){
     printf("Statement 5\n");
} else {
     printf("Statement 6\n");
}

     return 0;
}

57:0
04/10/13 19:13:20
/* c5.c 2004/10/13 */
#include <stdio.h>

int main(void)
{
     int a, b;
     a = 8;
     b = 2;

     printf("a = %d\n",a);
     printf("b = %d\n",b);

     if (a > 0 && a < 10){
          printf("a > 0 かつ a < 10\n");
}

     if (a > 5 && b == 2){
          printf("a > 5 かつ b = 2\n");
}

     if (a != 0 || b == 5){
          printf("a ≠ 0 または b = 5\n");
}

     return 0;
}

58:0
04/10/14 21:02:20
/* e7.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a;
     a = -1;

     printf("a = %d\n", a);

     if (a >= 0){
          printf("%d >= 0\n", a);
     }else{
          printf("%d < 0\n", a);
     }

     return 0;
}

59:0
04/10/14 21:02:56
/* e8.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a, b;

     a = 4;
     b = a % 2;

     printf("a = %d\n", a);

     if (b == 0){
          printf("偶数\n");
     }else{
          printf("奇数\n");
     }

     return 0;
}

60:0
04/10/14 21:03:51
/* e81.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 4;

     printf("a = %d\n", a);

     if ((a%2) == 0){
          printf("偶数\n");
     }else{
          printf("奇数\n");
     }

     

return 0;
}

61:0
04/10/14 21:04:32
/* c6.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 1;

     switch (a) {
          case 0:
               printf("a == 0\n");
               break;
          case 1:
               printf("a == 1\n");
               break;
          default:
               printf("a != 0 かつ a != 1\n");
     }

     return 0;
}

62:0
04/10/14 21:05:25
/* e9.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 1;

     switch (a) {
          case 0:
               printf("a == 0\n");
               break;
          case 1:
               printf("a == 1\n");

          default:
               printf("a != 0 かつ a != 1\n");
     }

     return 0;
}

63:0
04/10/14 21:06:18
/* e10.c 2004/10/14 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 1;

     switch (a) {
          case 0:
               printf("×\n");
               break;
          case 1:
               printf("○\n");
               break;
          default:
               printf("?\n");
     }
}

64:0
04/10/14 21:08:50
>>63
なぜ return 0; が要らないんだろう。

65:デフォルトの名無しさん
04/10/14 22:33:31
>>64
この間、そのミス犯して、
しかも気づかずにコンパイル通っちゃって、
超不可解なバグに遭遇した。

C言語じゃないけどな。

66:デフォルトの名無しさん
04/10/14 23:59:03
>>64
returnを書かないとそのときのEAXの値が返される。
って言っても意味分からないだろうけど……。

67:0
04/10/16 07:14:03
/* c7.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;

     for (i=1; i<=3; i++) {
          printf("%d\n", i);
     }

     return 0;
}

68:0
04/10/16 07:14:59
/* e11.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;

     for (i=3; i>=1; i--) {
          printf("%d\n", i);
     }

     return 0;
}

69:0
04/10/16 07:15:39
/* c8.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i, j;

     for (i=1; i<=9; i++) {
          for (j=1; j<=9; j++){
               printf("%d * %d = %d\n", i, j, (i*j));
          }
     }

     return 0;
}

70:0
04/10/16 07:16:48
/* c9.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;
     i = 1;

     while (i<=3) {
          printf("%d\n", i);
          i++;
     }

     return 0;
}

71:0
04/10/16 07:17:15
/* c10.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;
     i = 1;

     do {
          printf("%d\n", i);
          i++;
     } while(i<=3);

     return 0;
}

72:0
04/10/16 07:17:39
/* e12.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;

     for (i=1; i<=3; i++) {
          printf("%d\n", i*2);
     }

printf("\n");

     i = 1;
     while (i<=3) {
          printf("%d\n", i*2);
          i++;
     }

printf("\n");

     i = 1;
     do {
          printf("%d\n", i*2);
          i++;
     } while(i<=3);

     return 0;
}

73:0
04/10/16 08:28:07
/* c11.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int a[10];

     a[0] = 1;
     a[1] = 2;
     a[2] = 3;

     printf("a[0] = %d\n", a[0]);
     printf("a[1] = %d\n", a[1]);
     printf("a[2] = %d\n", a[2]);

     return 0;
}

74:0
04/10/16 08:28:27
/* e13.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int a[100];
     int i;

     for (i = 0; i<=99; i++) {
          a[i] = i + 1;
          printf("a[%d] = %d\n", i, a[i]);
     }

     return 0;
}

75:0
04/10/16 08:28:54
/* c11-1.c 2004/10/15 */
#include <stdio.h>

int main(void)
{
     int i;
     int B[5];

     B[0] = 50;
     B[1] = 51;
     B[2] = 52;
     B[3] = 53;
     B[4] = 54;

     for (i = 0; i<=4; i++) {
          printf("3年B組出席番号B[%d]番○○さんの体重は %d kgです。\n", i, B[i]);
     }

     return 0;
}

76:デフォルトの名無しさん
04/10/16 11:46:17



77:0
04/10/16 18:32:03
/* c11-2.c 2004/10/16 */
#include <stdio.h>

int main(void)
{
     int i;
     int B[5][2];

     B[0][0] = 70;
     B[0][1] = 160;
     B[1][0] = 71;
     B[1][1] = 161;
     B[2][0] = 72;
     B[2][1] = 162;
     B[3][0] = 73;
     B[3][1] = 163;
     B[4][0] = 74;
     B[4][1] = 164;

     for (i = 0; i<=4; i++) {
          printf("3年B組出席番号 B-%d 番○○さ~ん\n", i);
          printf("身長 %d cm、体重 %d kgです(;´Д`)\n", B[i][1], B[i][0]);
     }

     return 0;
}

78:0
04/10/16 18:32:45
/* e14-1.c 2004/10/16 */
#include <stdio.h>

int main(void)
{
     int i, j;
     int a[2][2];

     a[0][0] = 0;
     a[0][1] = 1;
     a[1][0] = 2;
     a[1][1] = 3;


     for (i = 0; i < 2; i++) {
          for (j = 0; j < 2; j++) {
               printf("a[%d][%d] : %d\n", i, j, a[i][j]);
          }
     }

     return 0;
}

79:0
04/10/17 20:30:54
/* p3.c 2004/10/17 */
#include <stdio.h>

int main(void)
{
     int a;
     a = 12;

printf("a = %d\n", a);

     if (a >= 7 && a <= 12) {
          printf("elementary school\n");
     }else if(a >= 13 && a <= 15) {
          printf("junior high school\n");
     }else{
          printf("unknown\n");
     }

     return 0;
}

80:0
04/10/17 20:31:19
/* p5.c 2004/10/17 */
#include <stdio.h>

int main(void)
{
     int i, j;

     for (i=1; i<=9; i++) {
          for (j=1; j<=9; j++){
               printf("%d * %d = %d\n", i, j, (i*j));
          }
     }

     return 0;
}

81:0
04/10/18 20:53:17
/* p6.c 2004/10/18 */
#include <stdio.h>

int main(void)
{
     int a[10];
     int i;

     for (i = 0; i<=5; i++) {
          a[i] = i * 20;
          printf("a[%d] = %d\n", i, a[i]);

     }

     return 0;
}

82:デフォルトの名無しさん
04/10/18 22:23:21
WideStudioで作ったらええやん。
Windowsでも動くしね。

83:デフォルトの名無しさん
04/10/19 22:20:25
WideStudioってBTRON動くっけ? ITRONは動くとか言ってるけど。

84:デフォルトの名無しさん
04/10/19 23:07:41
>>83
URLリンク(www.widestudio.org)

85:デフォルトの名無しさん
04/10/20 06:48:16
WideStudioではBTRONっぽいアプリは作れんから微妙だね。

86:デフォルトの名無しさん
04/10/21 06:08:05
2chブラウザ作るなら最低限TRON作法は守ってほしい。

87:デフォルトの名無しさん
04/10/22 18:17:50
return 0;の意味はちゃんとわかってたほうがいいような?
おまじないってやってる本あるけど、どうなのかな・・・。
はじめから
void main(void)って覚えたほうが良いと思う。


88:デフォルトの名無しさん
04/10/22 23:37:22
>>87
釣りなら他でやれよ。

89:デフォルトの名無しさん
04/11/08 09:34:36
おっと偶然発見。
なんややっぱり挫折かwプ

90:0
04/11/25 09:24:16
関数の巻
/* c121.c 2004/11/24 */
#include <stdio.h>

int main(void)
{
     int a, b, c;

     a = 2;
     b = 8;
     c = a + b;
     printf("%d + %d = %d\n", a, b, c);

     a = 5;
     b = 5;
     c = a + b;
     printf("%d + %d = %d\n", a, b, c);

     return 0;
}

91:デフォルトの名無しさん
04/11/25 19:57:33

ホントに出来るか知らんけど、とにかくガンガレ!

92:デフォルトの名無しさん
04/11/27 02:29:41
超漢字か。ansi準拠のライブラリさえなかった気がするのだが。
#つーか、そもそもクロス開発しないとやってられない気がする。
いずれにしても、PCの知識、Webの知識、文字コードの知識、BTRONの知識、Cの知識を
これから身に付けていくつもりなのかな? はたして何スレかかるんだろうねぇw

93:0
04/11/28 08:50:47
/* c122.c 2004/11/27 */
#include <stdio.h>

int Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
     int c;

     c=a+b;

     return c; /* return 戻り値 */
}

int main(void)
{
     int a,b,c;

     a=3;
     b=7;
     c=Add(a,b);
     printf("%d + %d = %d\n",a,b,c);

     a=5;
     b=5;
     c=Add(a,b);
     printf("%d + %d = %d\n",a,b,c);

     return 0;
}


94:0
04/11/30 21:59:35
/* c123.c 2004/11/30 */
#include <stdio.h>

void Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
     int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */

     c=a+b;
     printf("%d + %d = %d\n",a,b,c);
}

int main(void)
{
     int a,b;

     Add(a,b); /* ←実験 */

     a=3;
     b=7;
     Add(a,b);

     a=5;
     b=5;
     Add(a,b);

     return 0;
}


95:デフォルトの名無しさん
04/12/01 00:02:41
>>94
そのコードにまともに警告を吐かないコンパイラを使っているなら、逝っとけ。
警告を吐けるのに無視している(or吐かせない設定にしている)のなら、帰れ。
つーか、ここはチラシの裏じゃない。

96:デフォルトの名無しさん
04/12/29 02:10:04
まぁ、初期化してない変数という存在を
知ることも大切なんじゃないかなとね。

ところでBCCはデフォルトでそのコードに
エラー出さないようなのだが。気のせいか。

97:デフォルトの名無しさん
05/01/31 17:34:46
三日坊主か

98:0
05/03/12 23:15:02
/*e14.c 2005/03/12 */
#include <stdio.h>

void Tashizan(void)
{
     int a;
     int b;
     int c;

     a=1;
     b=1;
     c=a+b;
     printf("%d + %d = %d\n",a,b,c);
     a=2;
     b=8;
     c=a+b;
     printf("%d + %d = %d\n",a,b,c);
}

int main(void)
{
     Tashizan();

return 0;
}

99:デフォルトの名無しさん
05/03/13 09:31:39
またはじめたんけ。
大丈夫か?

100:デフォルトの名無しさん
05/03/13 14:13:17
うんも

101:0
05/03/14 12:14:54
/* e15.c 2005/03/14 */
#include <stdio.h>

void Sub(int a, int b)
{
     int c;

     c=a-b;
     printf("%d - %d = %d\n",a,b,c);
}

int main(void)
{
     int a,b;

     Sub(a,b);

     a=10;
     b=2;
     Sub(a,b);

     a=10;
     b=5;
     Sub(a,b);

     return 0;
}


102:0
05/04/18 10:00:13
/* e15-1.c 2005/04/17 */
#include <stdio.h>

void Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
     int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */

     c=a+b;
     printf("%d + %d = %d\n",a,b,c);
}

void Sub(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
     int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */

     c=a-b;
     printf("%d - %d = %d\n",a,b,c);
}



103:0
05/04/18 10:02:48
int main(void)
{
     int a,b;

     a=2;
     b=8;
     Add(a,b);

     a=10;
     b=5;
     Sub(a,b);

     return 0;
}

104:デフォルトの名無しさん
05/04/18 13:59:19
emacs for BTRONの上でNavi2chを使え。

105:0
05/04/19 07:43:41
/* c13.c 2005/04/19 */
#include <stdio.h>

int main(void)
{
     int a;

     a=1;

     printf("a: Value[%d],Address[%p]\n", a, &a);

     return 0;
}

106:0
05/04/19 07:44:43
>>104
初心者なもので、もっと詳しく書いていただかないと理解すらできませんorz

107:0
05/04/19 07:47:58
このとおりお願いしますsto>>104

108:デフォルトの名無しさん
05/04/19 16:12:22
>>106
なんで自称初心者って2ちゃんねるでスレ建てできてもgoogleが使えないんですか?
初心者なのでわかりません。よろしくお願いしますsto

109:0
05/04/20 13:45:49
/* c16.c 2005/04/19 */
#include <stdio.h>

int Sub(int,int);

int Sub(int a, int b)
{
     int c;

     c=a+b;

     return c;
}

int main(void)
{
     int a;
     int b;
     int c;

     a=1;
     b=9;
     c=Sub(a,b);
     printf("%d + %d = %d\n", a,b,c);

     a=2;
     b=8;
     c=Sub(a,b);
     printf("%d + %d = %d\n", a,b,c);

     return 0;
}

110:デフォルトの名無しさん
05/04/20 14:06:11
>>3
>1題目、左側にある空白がスペースなのかタブなのか悩んだ

こいつみどころあるな。
おれは、インデントがタブかスペースかなんて考えたこともなかったよ。


111:デフォルトの名無しさん
05/04/20 20:27:33
ちょっとペース遅くないか?
もっと飛ばしていかないと面白くないっしょ?

112:0
05/04/21 09:43:55
/* c16.c 2005/04/20 標準関数の巻*/
#include <stdio.h> /* STunDard Input Output Header */
#include <math.h> /* MATHmatics Header */

int main(void)
{
     double a;
     double b;

     a=5.0;
     b=sqrt(a); /* square root */
     printf("aの平方根は%fです\n",b);

     return 0;
}


113:0
05/04/21 13:17:03
%d Decimal number
%f Floating-point number
%c Character
%s character String
%p Pointer

114:デフォルトの名無しさん
05/04/22 00:17:27
>>112
英語の勉強もしましょう。

115:0
05/04/22 11:04:57
/* c14.c 2005/04/22 ポインタの巻 */
#include <stdio.h>

int main(void)
{
     int a;
     int *p; /* 「間接演算子」*により、int型の変数のアドレスを指し示す " p " */

     a=1;
     p=&a;

     printf("a: 値[%d]、アドレス[%p]\n", a,&a);
     printf("p: 値[%d]、アドレス[%p]\n", *p,p);

return 0;
}


116:デフォルトの名無しさん
05/04/22 17:10:51
淡々と進んでるな・・・

117:デフォルトの名無しさん
05/04/22 18:03:37
ようやくポインタまで来たか。
まだまだ先は長いな・・・。

118:0
05/04/23 11:12:20
/* c15.c 2005/04/23 ポインタとアドレスの関係 */
#include <stdio.h>

int main(void)
{
     int a;
     int *p;

     a=1;
     p=&a; /* アドレスは必ず指定!!!!! */
     *p=100;

     printf("a: 値[%d]、アドレス[%p]\n", a,&a);
     printf("p: 値[%d]、アドレス[%p]\n", *p,p);

     return 0;
}

119:デフォルトの名無しさん
05/04/23 12:14:58
>>118
どうでもいいっちゃどうでもいいのだが、

printf("a: 値[%d]、アドレス[%p]\n", a,&a);
    ___________↑↑
   |                   ̄| 
   ここは半角スペース入ってて   ここは入ってないのが気になった。

120:デフォルトの名無しさん
05/04/23 12:15:43
スl レH

121:デフォルトの名無しさん
05/04/23 12:46:17
まずマイクロスクリプトで作れよ。

122:デフォルトの名無しさん
05/04/23 12:46:48
まずマイクロスクリプトで作れよ。

123:0
05/04/24 11:27:06
/* p4.c 2005/04/24 */
#include <stdio.h>

int main(void)
{
     int a;

     a=90;

     printf("%dmin = %dh%dm\n", a, (a/60),(a%60));

     return 0;
}

124:0
05/04/24 13:02:28
/* p7.c 2005/04/24 */
#include <stdio.h>

void mtoh(int a)
{
     printf("%dmin = %dh%dm\n", a, (a/60),(a%60));
}

int main(void)
{
     int a;

     a=90;
     mtoh(a);

     return 0;
}


125:デフォルトの名無しさん
05/04/24 13:38:48
なんだこのチラシの裏は!!!

126:デフォルトの名無しさん
05/04/24 20:15:28
超漢字ってこんな短いコードで作れるのか?
すげぇなぁ…。さすが東大。

127:デフォルトの名無しさん
05/04/25 01:21:15
超漢字って開発環境ってついてくるの?

128:蕪木ら某 ◆Googl8RmwA
05/04/25 04:49:13
>>127
URLリンク(www.chokanji.com)

URLリンク(www.personal-media.co.jp)
URLリンク(www.widestudio.org)

URLリンク(www.personal-media.co.jp)

スレリンク(os板)l50
etc.

129:0
05/04/27 14:20:42
/* p8.c 2005/04/26 */
#include <stdio.h>

void school(int a)
{
     if (a>=7 && a<=12){
          printf("小学校\n");
     }else if(a>=13 && a<=15){
          printf("中学校\n");
     }else{
          printf("不明\n");
     }
}

int main(void)
{
     int a;

     a=12;
     school(a);

     return 0;
}

130:デフォルトの名無しさん
05/04/27 17:01:54
粛々と進めているんだな…

>>129さんは,今はどういう環境で実験してるの?
BTRONって良く知らないんだよね…

131:0
05/04/28 12:10:42
>>130
憎っくきWindows上

132:デフォルトの名無しさん
05/04/28 23:22:00
>>131
ダメじゃんw

133:0
05/04/29 12:09:40
/* c181.c 2005/04/29 文字 */
#include <stdio.h>

int main(void)
{
     char c;

     c='M';
     printf("%c", c);

     return 0;
}

134:0
05/04/30 08:52:21
/* c182.c 2005/04/30 文字列 */
#include <stdio.h>

int main(void)
{
     char s[7]="αβγ";

     printf("%s\n", s);

     return 0;
}

135:デフォルトの名無しさん
05/04/30 09:17:39
> char s[7]="αβγ";
自分で数を数える愚は避けよう。
この場合、char s[] = ...; で充分。

136:0
05/04/30 10:55:15
>>135
なるほど~
勉強になりました。
ありがとう。

>char s[] = ...;
で、キャラクターストリングスの長さは自動的に格納されるのですね。

137:デフォルトの名無しさん
05/04/30 11:18:11
勿論、
char s[]="αβγ";
とした場合に
char s[7]="αβγ";
と解釈されるという意味でね。
つまり、初期化のときにしか使えない手法ということ。

138:0
05/04/30 11:56:52
>>137
今はまだ写経の段階ですので理論的解説を加えていただいて助かりましたですハイ

139:デフォルトの名無しさん
05/04/30 12:18:44
2ch も BTRON も無関係だな

140:デフォルトの名無しさん
05/04/30 13:42:07
BTRONの開発環境って最悪らしいから、BTRON上のJavaVM
で動くアプリを考えた方がよさそうな気がするが。

JavaVMがないならまず用意してもらわないとならんが、
遠回りするだけの価値はあるはず。

141:0
05/05/01 13:24:51
/* c183.c 2005/05/01 宣言文と初期化の分離 */
#include <stdio.h>

int main(void)
{
     char s[7];

     s[0]='A';
     s[1]='B';
     s[2]='C';
     s[3]='\0';

     printf("%s\n", s);

     return 0;
}

142:0
05/05/02 11:44:01
/* c191.c 2005/05/02 標準入力 */
#include <stdio.h>

int main(void)
{
     char s[10];

     scanf("%s", s);
     printf("%s\n", s);

     return 0;
}

143:0
05/05/02 11:59:38
>>142
宣言した長さは10文字分のはずなのに131文字まで入出力できるのはなぜですか?
もしかしてまたタブーを犯しましたか?

144:デフォルトの名無しさん
05/05/02 19:51:22
forでdeとは折衷な

145:デフォルトの名無しさん
05/05/02 21:42:03
>>143
その通り。scanf()を使いたいなら(その例の場合)%9sとしてバッファオーバーランを防止すべき。
普通は、fgets()で1行入力してそれをsscanf()なりその他の手段で分解する。

恐らくは、一歩ずつ手探りで進んでいるようだがあまりに進捗が悪すぎる。
それに、疑問に感じたならばC関連のスレをざっと眺めてはどうだろうか。
scanf()の弊害など、何度も話題になっているから容易く見つかることだと思うが。

146:デフォルトの名無しさん
05/05/02 23:33:14
この板1年以上ぶりにきたら
なんかいいスレ立ってるな、応援してっぞ
俺も参加したいけど"超漢字"もってないしな
X21で動くのかな?
確か2万位だったかな?
買ってみるかな...


まずは調べるか...

147:146
05/05/02 23:50:24
X21で一応動いてるみたいだな
直販2万5千、登録2万
どゆこと? 登録ユーザってのは買って登録したひとってこと?

ソフマップとかで取り寄せて買ったらやすく買えるのかな?
買ったひと情報プリーズ


ってか、他の板の超漢字に付いてのスレッドってあるの?
まとめていただけるとありがとぉ ござりまう

148:デフォルトの名無しさん
05/05/03 01:06:58
超漢字ってターミナルエミュレータってあるの?
どのシェルが動くとか聞いたことないんだけど



149:デフォルトの名無しさん
05/05/03 02:23:31
正直、超漢字ってどれくらいシェアあるの?

150:デフォルトの名無しさん
05/05/03 02:33:27
途中で挫折すんなよ。
応援してるから。

151:0
05/05/03 10:03:47
/* c192.c 2005/05/03 整数の標準入力 */
#include <stdio.h>

int main(void)
{
     int a;

     scanf("%d", &a);
     printf("a : %d\n", a);

     return 0;
}

152:0
05/05/03 10:25:18
>>145
アドバイスありがとう。
とても助かります。

調べてみましたが、scanfはバッファオーバーランに対して脆弱な関数のようです。
なるべく使わないように、使う場合は細心の注意を要するとありました。

>>146
私のペースでは5年以上かかりそうです。
よかったらたすけてください。
熱烈歓迎しますされます。

>>147
【超漢字】BTRON総合スレッド/5版【PMC】
スレリンク(os板)
【マターリ】TRON/超漢字初心者スレッド/2版【質問歓迎】
スレリンク(os板)

>>148
なんのことやらさっぱりわかりません。

>>150
ありがとう。
一度挫折してますけど復活しました。

153:0
05/05/03 10:26:07
>>149
そういう尺度では測れないぐらいマイナーだと思います。

154:デフォルトの名無しさん
05/05/03 21:12:10
>>148
UnixLikeな開発環境があって、そいつはBシェルもどきが動いた筈。
しかし、私が某ツールを移植するときにはその開発環境でさえまともな
ストリームI/Oがなかった。従って、その辺りから実装しなければならなかった。


155:0
05/05/06 12:12:12
/* e16.c 標準入力を使った改良 */
#include <stdio.h>

int main(void)
{
     int a;

     scanf("%d", &a);
     printf("a = %d\n", a);

     if (a<5){
          printf("S 1\n");
     }

     if (a>5){
          printf("S 2\n");
     }else{
          printf("S 3\n");
     }

     if (a>5){
          printf("S 4\n");
     }else if (a<0){
          printf("S 5\n");
     }else{
          printf("S 6\n");
     }

     return 0;
}

156:デフォルトの名無しさん
05/05/06 12:13:10
URLリンク(ZT243059.ppp.dion.ne.jp)
おkwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwうぇwwwっうぇwwwwwwwwwwww
wwwおkwwwwwwwwwwwwwwwwwwwww

157:0
05/05/07 11:00:23
/* c201.c 2005/05/07 二次元の文字配列 */
#include <stdio.h>

int main(void)
{
     int i;
     int A[5][2];
     char namae[5][10] = {
          "A0",
          "A1",
          "A2",
          "A3",
          "A4"
     };

     A[0][0] = 10;
     A[0][1] = 100;
     A[1][0] = 20;
     A[1][1] = 200;
     A[2][0] = 30;
     A[2][1] = 300;
     A[3][0] = 40;
     A[3][1] = 400;
     A[4][0] = 50;
     A[4][1] = 500;



158:0
05/05/07 11:02:08
     for (i=0; i<=4; i++) {
          printf("A[%d]さん\n", i);
          printf("名前:%s\n", namae[i]);
          printf("体重:%dkgで、身長:%dcm\n", A[i][0],A[i][1]);
     }

     return 0;
}

159:デフォルトの名無しさん
05/05/07 19:12:54
俺に超漢字をくれたら作ってやる。

160:デフォルトの名無しさん
05/05/07 22:12:19
>>159
たいした金額じゃないから買えよ。
で、まともな2chブラウザとそれに使ったライブラリを公開してくれたら超漢字代くらい払ってやるから。

161:デフォルトの名無しさん
05/05/08 01:53:54
超漢字で使えるエディタって何があるの??
EmacsとかVimって移植されてるの??
さすがにそこからやるのはなぁー

162:デフォルトの名無しさん
05/05/08 02:24:24
mevがあるけど
俺には終了のさせ方すらわからん
だれか教えてくれ

163:デフォルトの名無しさん
05/05/08 02:51:58
なんで超漢字なんて使ってンの

164:デフォルトの名無しさん
05/05/08 02:58:39
そこにそれがあるから。

165:0
05/05/08 11:34:36
/* c202.c 2005/02/08 構造体 */
#include<stdio.h>

struct Mystruct {
     int a;
     int b;
};

int main(void)
{
     struct Mystruct s;
     int c;

     s.a=3;
     s.b=7;

     c=s.a+s.b;

     printf("%d+%d=%d\n", s.a,s.b,c);

     return 0;
}

166:デフォルトの名無しさん
05/05/09 18:33:14
着実に進んでるなぁ
歩みが遅い気がしないでもないけど半年以上続ける気力は素直に賞賛

167:0
05/05/11 12:28:04
/* c203.c 2005/05/11 構造体の宣言 */
#include <stdio.h>
#include <string.h>

struct Mys {
     int taiju;
     int shincho;
     char namae[10];
};

int main(void)
{
     int i;
     struct Mys s;

     i=0;

     s.taiju=48;
     s.shincho=159;
     strcpy(s.namae, "A0");

     printf("A[%d]さん\n", i);
     printf("名前:%s\n", s.namae);
     printf("体重:%dkgで、身長:%dcm\n", s.taiju, s.shincho);

     return 0;
}

168:デフォルトの名無しさん
05/05/11 13:40:50
まじめに本のコードを打ってるだけじゃ進歩はないだろうな。

169:デフォルトの名無しさん
05/05/11 22:35:38
今は写経の段階だってさ

170:デフォルトの名無しさん
05/05/11 22:42:07
写経始めて早7ヶ月か・・・・

171:デフォルトの名無しさん
05/05/20 23:25:14
俺の予想では、後半年位続いて
自然消滅にスーパーヒトシ君かける

172:デフォルトの名無しさん
05/05/21 10:31:23
つか超漢字用のFirefoxに2chブラウザの拡張入れればいいだけじゃないの?

173:デフォルトの名無しさん
05/06/01 00:33:28
近況報告きぼんage

174:デフォルトの名無しさん
05/06/05 03:20:07
標準の表計算とか使って作れないの?

175:誤爆の気がしてきた
05/06/05 06:44:14
>>174
超漢字に表計算は標準ではないと思う。
で、何を作れと?

176:デフォルトの名無しさん
05/06/05 11:51:38
超漢字4が出品されてんぞ
URLリンク(page13.auctions.yahoo.co.jp)

ってか、ついにスレぬし飽きたのかな?
あきたんんらいいが、こうプツッとなくなると
事故とかいろいろな想像していやだな

177:デフォルトの名無しさん
05/06/08 00:12:56
乗り気な奴が数人いるのに
すれぬしは、協力してほしいと言うだけで
何の方針も立てないから誰も何もできないんだな
せめて、UIだけでも設計するべきでは?


178:デフォルトの名無しさん
05/06/08 00:47:30
おそらく途中で1が「なんで超漢字で2chブラウザなのか」って
疑問に直面にしてしまったから、スレが止まっているのでわ?


179:デフォルトの名無しさん
05/06/08 01:02:54
まぁなぁーー
おまえらって超漢字で何やってる?
俺は本気でなにもすることがないから、昔暇だった時に移植した
アプリのドキュメントの書き直しくらいなんだけど
もう移植はするきないから、本家がアップデートしたときのみ
そのことを追記してるだけになってる
起動は1ヶ月に1回位だな、

超漢字だからできることは一回もやったことがない

180:デフォルトの名無しさん
05/06/08 01:04:49
文化財の保存のお仕事でもしていないかぎり、
超漢字に用事ないでそ。。

181:デフォルトの名無しさん
05/06/12 02:35:24
完全に息の根が止まったな

182:デフォルトの名無しさん
05/06/20 16:06:53
こりゃもう駄目だなwだからもっとペースあげろと言ったのに。

183:デフォルトの名無しさん
05/07/04 05:16:54
超漢字ってせめて、Javaは動かないの?

184:デフォルトの名無しさん
05/07/10 20:00:49
Javaがまともに動くのはWindowsだけ
てか、あれほど開発に向かない言語はないでしょ

てか、最後の書き込みから2ヶ月か
死んだな

185:デフォルトの名無しさん
05/07/13 23:36:07
gccのクロスコンパイラ環境よりはさすがにマシだと思うけど

186:デフォルトの名無しさん
05/07/14 03:29:35
クロスコンパイラ環境てw


187:デフォルトの名無しさん
05/07/16 23:32:41
だって超漢字にはセルフコンパイル環境がないから

188:デフォルトの名無しさん
05/07/17 00:05:29
>>187
作ったけどクロス開発の方が楽だった_/ ̄|○

189:デフォルトの名無しさん
05/08/05 15:49:12
おまいら、Nスペで国産OS TRON の出番ですよ。

NHK総合 8/28(日)午後9:00~

 NHKスペシャル 日本の群像 再起への20年

「第4回 極小コンピューター 技術者たちの攻防」

  1984年、誰もが簡単にコンピューターを使えるようにと
東京大学の坂村健氏が開発した基本ソフト「トロン」。

しかし、無料提供を目的にしたトロンは、
89年にアメリカから貿易障壁のリストに挙げられ、
普及中止に追い込まれる。

結局、90年代のパソコン市場は、
世界標準を握ったアメリカ製の基本ソフト
「ウィンドウズ」に支配されることになった。

……

URLリンク(www.nhk.or.jp)


190:0
05/08/06 16:20:03
Linuxから書き込み

191:0
05/08/06 16:54:04
死の行軍を乗り越えて、
黄泉がえってまいりました。

192:0
05/08/06 17:00:59
/* c204.c */
#include <stdio.h>
#include <string.h>

struct Mys {
     int taiju;
     int sincho;
     char namae[10];
};

int main(void)
{
     int i;
     struct Mys s[5];

193:0
05/08/06 17:02:35
     s[0].taiju = 50;
     s[0].sincho = 160;
     strcpy(s[0].namae, "A0");
     s[1].taiju = 51;
     s[1].sincho = 161;
     strcpy(s[1].namae, "A1");
     s[2].taiju = 52;
     s[2].sincho = 162;
     strcpy(s[2].namae, "A2");
     s[3].taiju = 53;
     s[3].sincho = 163;
     strcpy(s[3].namae, "A3");
     s[4].taiju = 54;
     s[4].sincho = 164;
     strcpy(s[4].namae, "A4");

     for (i=0; i<=4; i++) {
          printf("A[%d]さん\n", i);
          printf("名前:%s\n", s[i].namae);
          printf("体重:%dで身長:%d\n", s[i].taiju, s[i].sincho);
     }

     return 0;
}

194:0
05/08/06 18:04:53
おすすめの2chブラウザはありませんか。
携帯から書き込むのは辛いです。
ずっと人多杉
だそうで、2chブラウザがないと書き込むのがめんどくさすぎます。
できれば、かちゅーしゃライクなGUIのがいいです。
よろしくお願いします。

195:デフォルトの名無しさん
05/08/06 18:09:51
おいおい帰ってきてるぞ

196: ◆i6G.jsz.NY
05/08/06 18:40:08
0って>>1じゃないの?
しばらくというか2ヵ月くらい止まってたからちょっと心配したよ

>>0
エディタは何使ってるの?
Emacsなら"navi2ch"、Vimなら"Chalice"ってのがあって
それぞれのエディタ操作で使えるから、エディタの操作の鍛錬にもなるよ

GUIの専用ブラウザなら
"かちゅーしゃ"って使ったこと無いから知らないけど
"おちゅーしゃ"ってやつが名前的にも似てるからいいんでないの?
これも使ったこと無いからどんなものなのかわからないけど
これの場合、"navi2ch", "Chalice"とは違って基本的にCでかかれてるから
コード読んだらそれなりに勉強になるかもね

197:デフォルトの名無しさん
05/08/06 18:52:35
いくらなんでもこいつの進歩遅すぎだろ
俺は数回新人研修したことあるけど
一週間でソケットでちょっとした通信までやらしたぞ

198:0
05/08/06 18:55:18
>>195
おさわがせしました。

>>196
今は、エディタはKwriteというのをつかってます。
よく勉強します。

>>197
Σ(´Д` )

199:デフォルトの名無しさん
05/08/06 18:55:51
GPによるプログラム生成の実験なんでしょ?

200:0
05/08/06 18:56:58
やっぱり超漢字が楽しい、恋しい。
はやく2ch de BTRONを作って、
超漢字に帰ってひたりたいです。

201:デフォルトの名無しさん
05/08/06 18:58:52
おいおい0
実際のところ
>0って>>1じゃないの?
これはどうなのよ

202:デフォルトの名無しさん
05/08/06 19:02:40
>>197
だいたいそんなものでしょ
うちは4日で入門書の応用レベルまでの研修だったけど
ソケットを教えたほうが興味がでるんじゃないかって事で
6日でソケットまでになった

203:0
05/08/07 09:25:47
>>201
そうです。
さいしょから0を名乗っていたのですが、
半角の0は名前にできないことを知らなかったもので
デフォルトの名無しさんになってしまいました。
とちゅうでおかしいなと思って全角の0を名乗りました。

204:デフォルトの名無しさん
05/08/07 14:13:23
>>203
いやだから 0 ではなく 1 じゃないのか?って聞いてると思うんだが


205:デフォルトの名無しさん
05/08/12 18:46:50
いきなりだんまりかよ

206:デフォルトの名無しさん
05/08/13 03:37:04
たぶんまだ理解できていないのだろう。
0よ、いいかその耳かっぽじってよーく聞け!つーか読め。
2chでは掲示板の先頭の番号は1だ。
0と言う物は存在しない。
この1はスレを立てた本人だ。そうだお前だ。
スレ主を名乗るのであれば、0では無く1と名乗らねばならない。
それでも0を名乗るのならば、その理由はなんなんだ。

207:デフォルトの名無しさん
05/08/13 11:04:33
0から始めるの0だろ
レベル0みたいな感じなんじゃね

208:デフォルトの名無しさん
05/08/21 13:44:10
>>203
0さんのプロジェクト? に参加していいですか。
超漢字用の2chブラウザほしいです。
最近BBBだとOS板見れないし、自分で作るしかなさそうです・・・

209:デフォルトの名無しさん
05/08/23 12:22:18
>>208
>1は一年近く掛かってまだこのレベルだよ。
自分で作りたいなら別に始めた方がいいよ。
#ここ乗っ取るのもありだがなw

210:デフォルトの名無しさん
05/08/23 12:31:17
>#ここ乗っ取るのもありだがなw

お、良い考えw

211:デフォルトの名無しさん
05/08/24 13:49:09
0さんはザ・掲示板から来たんじゃない?
2ちゃんに似てるから。

212:デフォルトの名無しさん
05/08/24 20:07:05
0は復活したと思ったらそこからまた音沙汰無し
やる気無いんじゃないの

213:208
05/08/27 18:53:55
>>209->>210
ここを乗っ取るつもりはありません。勝手に?参加するだけです。
0さんはどこへ行ったんでしょうか・・・

とりあえずウィンドウが開くところはできました・・・。ピクトグラムは"しぃ"にしました。
これからパーツ制御とかの実装が大変そうです。よく分からないです。
その前に構造を考えないと・・・







214:デフォルトの名無しさん
05/08/27 20:36:58
1はポインタとガチンコ勝負してるはずさ
百戦錬磨ポインタ圧勝ってとこだな
俺の予想だとbeepが鳴り止まなくなってあたふたしてる
わかるぞ!俺も同じ経験した!

ってことで213さん話し進めちゃってくれよBTRON?CとかJとかあるけどB?

215:208
05/08/27 20:56:57
>>214
BTRONです。今のところ、超漢字のセルフ開発環境で作っていこうと思っています。
Linuxとかの知識はまったくないです。プログラムもC言語しか分かりません。



216:208_(1)
05/08/28 01:52:54
/*
  2ch de BTRON ウィンドウオープン
*/

#include <basic.h>
#include <bstdlib.h>
#include <bstdio.h>
#include <bstring.h>
#include <errcode.h>
#include <tstring.h>
#include <tcode.h>
#include <tctype.h>
#include <keycode.h>
#include <btron/btron.h>
#include <btron/dp.h>
#include <btron/hmi.h>
#include <btron/libapp.h>

/* デバッグ用 */
#include <util/debug.h>

/* ウィンドウ定義 */
#define WIN_MAIN 0 /* メインウィンドウ番号 */
#define WIN_MAX 1 /* ウィンドウオープン最大数 */

/* その他の定義 */
#define DB_MISC(n) (0x9000+n) /* その他のデータ定義 */
#define WIN_TL   DB_MISC(1) /* ウィンドウタイトル */
#define PICT_NUM  101     /* ピクトグラム */


217:208_(2)
05/08/28 01:54:53
/* グローバルデータ定義 */
WINFOREC winfo[WIN_MAX + 1]; /* ウィンドウ情報レコード */

PAT *pbgpat; /* パネル背景パターン */

/* 関数定義 */
EXPORT W MAIN(MESSAGE *msg);
EXPORT W exec_main(M_EXECREQ *msg);
EXPORT PAT *wget_bgpat(W pattern);
EXPORT VOID  free_bgpat(PAT *pat);
EXPORT VOID  evt_idle(VOID);
EXPORT W evt_menu(VOID);
EXPORT VOID  evt_disp(W ix, W mode, RECT *newr);
EXPORT VOID  evt_sts(W ix, W sts);
EXPORT VOID  evt_sts(W ix, W sts);
EXPORT W evt_key(VOID);
EXPORT W evt_press(W ix);
EXPORT W evt_finish(W ix, W mode);
EXPORT W evt_paste(W ix, PNT pos);
EXPORT VOID  evt_scrl(W ix, W sts, W diff);


218:208_(3)
05/08/28 01:55:32
/* イベント処理関数 */
EXPORT WFUNCREC wfunc = {
NULL,    /* バックグラウンド処理 */
evt_idle,  /* アイドル処理 */
NULL,    /* 一般メッセージ処理 */
evt_menu,  /* メニュー処理 */
evt_disp,  /* 表示処理 */
evt_sts,  /* 状態変化処理 */
evt_key,  /* キー入力処理 */
evt_press, /* PD プレス処理 */
evt_finish, /* 終了処理 */
evt_paste, /* 張り込み処理 */
NULL,    /* 応答処理 */
evt_scrl,  /* スクロール */
NULL,    /* デバイスイベント */
NULL     /* 仮身要求イベント */
};


219:208_(4)
05/08/28 01:56:24
/*
 はじめの一歩
*/
EXPORT W MAIN(MESSAGE *msg)
{
 W   sts;
 W   err;
 LINK lnk;

 /* 自アプリケーション(プログラムファイル)のリンクを取得 */
 if ((err = prc_inf(0, PI_LINK, (VP)&lnk, sizeof(LINK)) < 0)) {
  DEBUG_PRINT(("err = %s\n", sts));
  goto EXIT;
 }

 /* データボックスを開く */
 if ((sts = opendbox(&lnk, USER_DATA, 0x2000)) < ER_OK) {
  DEBUG_PRINT(("err = %s\n", sts));
  goto EXIT;
 }

 /* ライブラリ関係初期化 */
 getscreen();   /* スクリーン情報の初期化 */
 initstdpnl();   /* 標準パネルの初期化 */
 chg_wrk(NULL);  /* 作業ファイルを空にしておく : ディスクを切断できるようにするため */


220:208_(5)
05/08/28 01:57:41
 /* 起動タイプに応じた処理を行う */
 switch(msg->msg_type) {
  case 0:      /* コンソール起動 */
    break;
  case EXECREQ:  /* 仮身のオープン起動 */
    if (MSGSIZE(msg->msg_size) == sizeof(M_EXECREQ))
      sts = exec_main((M_EXECREQ*)msg);
    break;
  case DISPREQ:   /* 開いた仮身の起動 */
    if (MSGSIZE(msg->msg_size) == sizeof(M_DISPREQ))
      ;
    break;
  case PASTEREQ:  /* データの貼り込み起動 */
    if (MSGSIZE(msg->msg_size) == sizeof(M_PASTEREQ))
      ;
    break;
  case FUSENREQ:  /* 付箋のオープン起動 */
    if (MSGSIZE(msg->msg_size) == sizeof(M_FUSENREQ))
      ;
    break;
  case TADREQ:   /* 開いた仮身のTADデータ作成起動 */
    if (MSGSIZE(msg->msg_size) == sizeof(M_TADREQ))
      ;
    break;
  default:        /* その他の起動 */
    sts = EX_NOSPT;
  }


221:208_(6)
05/08/28 09:01:27
/* 終了処理 */
EXIT:

  /* システムデータボックスのクローズ */
  closedbox();

  /* システムメッセージパネルをクリアし、ポインタ形状を選択指に変更する */
  sysmsg(0);

  /* プロセスの終了 */
  ext_prc(sts);

  return sts;
}


222:208_(7)
05/08/28 09:12:26
/*
  仮身のオープン起動
*/
EXPORT  W exec_main(M_EXECREQ *msg)
{
 ERR  err;  /* リターン値 */
 TC  title[L_FNM + 1] = {TK_2,TK_c,TK_h,TK_KSP,TK_d,TK_e,TK_KSP,TK_B,TK_T,TK_R,TK_O,TK_N,TK_NULL}; /* ウィンドウタイトル */
 WID  wid;  /* ウィンドウID */
 RECT rect = { { 0,0,600, 400 } };  /* ウィンドウサイズ */

  /* 主ウィンドウのオープン */
  wid = err = wopn_wnd(WA_NORMAL, msg->pwid, &rect, &msg->r, PICT_NUM, title, WHITE0, NULL);
  if (err < ER_OK) {
    goto EXIT;
  }

  /* ウィンドウ情報レコード設定 */
  winfo[WIN_MAIN] = (WINFOREC) {
              wid,          /* ウィンドウID */
              0x10 + W_MOVE, /* ウィンドウ属性 */
              {{0,0,0,0}},      /* 変形リミット */
              {-1,-1,-1},      /* スクロールバーパーツID (右, 下, 左) */
              {0,0}          /* アプリケーション用 */
            };
  /* ウィンドウ情報レコードの最後は初期化する */
  winfo[WIN_MAX] = (WINFOREC) { 0, 0, { { 0,0,0,0 } }, { -1,-1,-1 }, { 0,0 } };


223:208_(8)
05/08/28 09:15:34

  /* 仮身要求処理の開始 */
  osta_prc(msg->vid, wid);

  /* イベントループ処理 -- 初期表示要求が即時に発生する */
  err = evt_loop(&wfunc, winfo);


/* 終了処理 */
EXIT:

  /* 処理終了の通知 */
  if (msg->vid > 0) oend_prc(msg->vid, NULL, 0);

  /* ウィンドウのクローズ */
  if (wid >= 0) wcls_wnd(wid, CLR);

  return err;
}


224:208_(9)
05/08/28 09:21:36
/*
  ウィンドウ背景パターンの取得
*/
EXPORT  PAT *wget_bgpat(W pattern)
{
  PAT *pat = NULL;
  W   size;   /* pattern の領域サイズ */

  size = wget_inf(pattern, NULL, 0);
  if(size > 0)  pat = (PAT *)malloc(size);
  if(pat != NULL) {
    /* ウィンドウの背景パターンの取出し */
    wget_inf(pattern, pat, size);
  } else {
    /* 背景情報なし、または領域確保に失敗 */
    pat = WHITE0; /* 背景は白とする */
  }

  return pat;
}

225:208_(10)
05/08/28 09:26:15
/*
  背景パターンのメモリ解放
*/
EXPORT  VOID  free_bgpat(PAT *pat)
{
  if (pat && pat != WHITE0) free(pat);

  return;
}

226:208_(11)
05/08/28 09:43:46
/*********************************************************************
  イベント処理
*********************************************************************/

/*
  アイドル処理
*/
EXPORT  VOID  evt_idle(VOID)
{
  /* 自ウインドウの作業領域内にポインタがあるとき */
  if (wevt.s.wid == winfo[WIN_MAIN].wid && wevt.s.cmd == W_WORK) {
    if ( ! ( wevt.s.stat & (ES_CMD | ES_BUT2) ) ) {
      /* ポインタ形状の変更 */
      setpointer(PS_SELECT, NULL);
    }
  }

  return;
}

/*
  メニューイベント処理
    (キーメニューの場合も key_fn() から呼ばれる)
*/
EXPORT  W evt_menu(VOID)
{

  return 0; /* menu_fn(); */
}

227:208_(12)
05/08/28 09:45:33
/*
  表示処理
*/
EXPORT  VOID  evt_disp(W ix, W mode, RECT *newr)
{
  /* 部分再描画領域 */
  LOCAL RLIST rlist[4]; /* 再表示用 RECT-LIST */
  W   wid = winfo[WIN_MAIN].wid;

  if (mode < 0) {
    /* 初期化処理 */
    genrectlist(4, rlist);    /* rlist の初期化 */

    /* ウィンドウの背景パターンでの塗り潰し */

    /* パーツの登録 */

  } else {
    RECT  r;
    W   i;

    /* ウィンドウの配色変更 */
    if(wcolor_changed) {
      PAT *pbgpat;

      pbgpat = wget_bgpat(WI_PANELBACK);  /* ウィンドウ背景パターンの取得 */
      wset_bgp(wid, pbgpat);  /* 背景パターンの設定 */
      free_bgpat(pbgpat);   /* 背景パターンメモリ解放 */
    }


228:208_(13)
05/08/28 09:46:20

    /* 再描画要求の処分 */
    do {
      i = wsta_dsp(wid, &r, rlist);
      if (i <= 0) break;
      if (i > 4) {

      } else {

      }
    } while (wend_dsp(wid) > 0);

    /* 全画面モード */
    if (mode == 5) {

    }

    /* 表示領域の変更 */
    if (mode >= 2 && mode != 7) {
    
    }
  }
}

229:208_(14)
05/08/28 09:49:13
/*
  状態変化処理
*/
EXPORT  VOID  evt_sts(W ix, W sts)
{
  if (sts != 0x100) {

  }

  return;
}


/*
  キー入力処理
*/
EXPORT  W evt_key(VOID)
{
  if ( ( wevt.s.stat & ES_CMD ) && ( wevt.e.data.key.code > KC_SPACE ) ) {
    /* [命令](Ctrl) 同時押しならキーマクロ */
    return 0;
  } else {
    /* 通常のキー入力処理 */
  
  }

  return 0;
}

230:208_(15)
05/08/28 09:56:05
/*
  PD プレスイベント処理
*/
EXPORT  W evt_press(W ix)
{

  return 0;
}


/*
  終了処理
*/
EXPORT  W evt_finish(W ix, W mode)
{

  return 1;
}


231:208_(16)
05/08/28 10:10:00
/*
  張り込み処理
*/
EXPORT  W evt_paste(W ix, PNT pos)
{
  W rv = W_NAK;

  return rv;
}


/*
  スクロール処理
*/
EXPORT  VOID  evt_scrl(W ix, W sts, W diff)
{

  return;
}

232:208
05/08/28 10:21:43
>>216-231の内容を window.c としてファイルに保存しておく。
次は、データボックス(現在はピクトグラムデータのみ)

233:208 b-2ch.d (1)
05/08/28 10:25:46
----------------------------------------------------------------------
-- b-2ch.d : データボックス定義
----------------------------------------------------------------------

{% USER_DATA: L  0L} -- データタイプ = 64
{# 0x2000L 0L 0L} -- データ番号


-- 標準定数定義
#include <stddef.d>

----------------------------------------------------------------------
-- データ参照テーブル
--(データ番号)と(オフセット) のペアのエントリとなっており、
--データ番号によりデータを検索するため、エントリの順番は任意。
--このテーブルは基本的に変更してはいけない。
----------------------------------------------------------------------


234:208 b-2ch.d (2)
05/08/28 10:26:25
.BASE = 0L

DATA_END/4 -- データエントリワード数

-- 標準パネルデータ定義

-- その他のデータ定義
MISC+101img_pict-- ピクトグラム
MISC+255pict_db


-- アプリケーションライブラリのデータ参照テーブル
#include <libapp.i>

.DATA_END:

-- アプリケーションライブラリのデータ定義
#include <libapp.d>


235:208 b-2ch.d (3)
05/08/28 10:31:22
----------------------------------------------------------------------
-- ピクトグラム
----------------------------------------------------------------------

--  1 2 3 4 <--データ番号
-- 0: 0 0 0 0 白
-- 1: 0 0 0 1 薄い灰
-- 2: 0 0 1 0 赤
-- 3: 0 0 1 1 薄い赤
-- 4: 0 1 0 0 緑
-- 5: 0 1 0 1 薄緑
-- 6: 0 1 1 0 黄
-- 7: 0 1 1 1 薄黄
-- 8: 1 0 0 0 青
-- 9: 1 0 0 1 薄い青
-- a: 1 0 1 0 マゼンタ
-- b: 1 0 1 1 薄いマゼンタ
-- c: 1 1 0 0 水色
-- d: 1 1 0 1 薄い水色
-- e: 1 1 1 0 灰
-- f: 1 1 1 1 黒

236:208 b-2ch.d (4)
05/08/28 10:34:06
.BASE = 0L

-- イメージデータ番号の定義
.PICTNUM = 101

.img_pict: 120+pict_data

.pict_db:  pict_data
       0

.BASE = 0Y

-- CBMP構造による定義
.pict_data: PICT_DATA:L PICTNUM+0L
       36+80+4+320+36+160+36+20+4+80L
       {0L 4L 0x0101H 4H 0H 0H 20H 20H 120L 200L 280L 360L}

237:208 b-2ch.d (5)
05/08/28 10:54:48
-- mask20 --
`□□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□■■■□□□□□■■■□□□□□□ □□□□□□□□□□□□`
`□□□■■■□□□□□■■■□□□□□□ □□□□□□□□□□□□`
`□□■■■■■□□□■■■■■□□□□□ □□□□□□□□□□□□`
`□□■■■■■■■■■■■■■□□□□□ □□□□□□□□□□□□`
`□■■■■■■■■■■■■■■■□□□□ □□□□□□□□□□□□`
`□■■■■■■■■■■■■■■■□□■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■□ □□□□□□□□□□□□`
`□■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`□□■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■□ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■□□ □□□□□□□□□□□□`

0L  -- ギャップ

238:208 b-2ch.d (6)
05/08/28 10:55:33
-- data20_1 --
`□□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□■□□□■□□□■□□□■□□□□□ □□□□□□□□□□□□`
`□□■□□■■■■■□□□□■□□□□□ □□□□□□□□□□□□`
`□■□□□■□□□□□□■□□■□□□□ □□□□□□□□□□□□`
`□■□□■□■□□□□■□■□■□□■■ □□□□□□□□□□□□`
`■□■□□■□□□□□□■□□□■■□■ □□□□□□□□□□□□`
`■□■■□□□■□□□□□□□□■■□■ □□□□□□□□□□□□`
`■□□■□□□□■■■■□□□□■□■□ □□□□□□□□□□□□`
`□■□□□□□□□□□□□□□■■□■■ □□□□□□□□□□□□`
`□□■■■□□□□□■■■□■□□■□■ □□□□□□□□□□□□`
`■■■□□■■■■■■□□■■■■□□■ □□□□□□□□□□□□`
`■□■□□■□□□□■□□■□□■□□■ □□□□□□□□□□□□`
`■□□■■□□□□□□■■□□□■□□■ □□□□□□□□□□□□`
`■□□□□□□□□□□□□□□□■□□■ □□□□□□□□□□□□`
`■□□□□□□□□□□□□□□□■□■□ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■□□ □□□□□□□□□□□□`


239:208 b-2ch.d (7)
05/08/28 10:56:36
-- data20_2 --
`□□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□■□□□■□□□■□□□■□□□□□ □□□□□□□□□□□□`
`□□■□□■■■■■□□□□■□□□□□ □□□□□□□□□□□□`
`□■□□□■□□□□□□■□□■□□□□ □□□□□□□□□□□□`
`□■□□■□■□□□□■□■□■□□■■ □□□□□□□□□□□□`
`■□□□□■□□□□□□■□□□■■□■ □□□□□□□□□□□□`
`■□□□□□□■□□□□□□□□■■□■ □□□□□□□□□□□□`
`■□□□□□□□■■■■□□□□■□■□ □□□□□□□□□□□□`
`□■□□□□□□□□□□□□□■■□■■ □□□□□□□□□□□□`
`□□■■■□□□□□■■■□■□□■■■ □□□□□□□□□□□□`
`■■■□□■■■■■■□□■■■■■■■ □□□□□□□□□□□□`
`■□■□□■□□□□■□□■□■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■□ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■□□ □□□□□□□□□□□□`


240:208 b-2ch.d (8)
05/08/28 10:57:28
-- data20_3 --
`□□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□■□□□■□□□■□□□■□□□□□ □□□□□□□□□□□□`
`□□■□□■■■■■□□□□■□□□□□ □□□□□□□□□□□□`
`□■□□□■□□□□□□■□□■□□□□ □□□□□□□□□□□□`
`□■□□■□■□□□□■□■□■□□■■ □□□□□□□□□□□□`
`■□■□□■□□□□□□■□□□■■□■ □□□□□□□□□□□□`
`■■■■□□□■□□□□□□□□■■□■ □□□□□□□□□□□□`
`■□■■□□□□■■■■□□□□■□■□ □□□□□□□□□□□□`
`□■□□□□□□□□□□□□□■■□■■ □□□□□□□□□□□□`
`□□■■■□□□□□■■■□■□□■■■ □□□□□□□□□□□□`
`■■■□□■■■■■■□□■■■■■■■ □□□□□□□□□□□□`
`■□■□□■□□□□■□□■□■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■■□ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■□□ □□□□□□□□□□□□`


241:208 b-2ch.d (9)
05/08/28 11:01:40
-- data20_4 --
`□□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□□■□□□□□□□■□□□□□□□ □□□□□□□□□□□□`
`□□□■■■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□□■□■□□□□□■□■□□□□□□ □□□□□□□□□□□□`
`□□■■■□■□□□■■□□■□□□□□ □□□□□□□□□□□□`
`□□■■□■■■■■■□□□■□□□□□ □□□□□□□□□□□□`
`□■■□■■□□□□□□■□□■□□□□ □□□□□□□□□□□□`
`□■□■■□■□□□□■□■□■□□■■ □□□□□□□□□□□□`
`■■□□■■□□□□□□■□□□■■□■ □□□□□□□□□□□□`
`■□□□□□□■□□□□□□□□■■□■ □□□□□□□□□□□□`
`■■□□□□□□■■■■□□□□■□■□ □□□□□□□□□□□□`
`□■■■■□□□□■■□□□□■■□■■ □□□□□□□□□□□□`
`□□■■■■■□□□■■■□■■□■□■ □□□□□□□□□□□□`
`■■■■■■■■■■■□□■■■■□□■ □□□□□□□□□□□□`
`■□■■□■□□□□■■□■□□■□□■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■□■□□■ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■□■□□■ □□□□□□□□□□□□`
`■□□□□□□□□□□□□□□□■□■□ □□□□□□□□□□□□`
`■■■■■■■■■■■■■■■■■■□□ □□□□□□□□□□□□`



242:208 b-2ch.d (10)
05/08/28 11:10:48
-- 15 * 15
{0L 4L 0x0101H 2H 0H 15H 15H 72L 104L 136L 168L}

-- mask15 --
`□□□□□□□□□□□□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□■■■□□□□□■■■□□□ □`
`□■■■□□□□□■■■□□□ □`
`■■■■■□□□■■■■■□□ □`
`■■■■■■■■■■■■■□□ □`
`■■■■■■■■■■■■■■□ □`
`■■■■■■■■■■■■■■□ □`
`■■■■■■■■■■■■■■■ □`
`■■■■■■■■■■■■■■■ □`
`■■■■■■■■■■■■■■■ □`
`■■■■■■■■■■■■■■□ □`
`■■■■■■■■■■■■■□□ □`
`□■■■■■■■■■■■□□□ □`

0H  -- ギャップ

243:208 b-2ch.d (11)
05/08/28 11:11:25
-- data15_1 --
`□□□□□□□□□□□□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□■□■□□□□□■□■□□□ □`
`□■□■□□□□□■□■□□□ □`
`■□□□■□□□■□□□■□□ □`
`■□□■■■■■□□□□■□□ □`
`□□□■□□□□□□■□□■□ □`
`□□■□■□□□□■□■□■□ □`
`■□□■□□□□□□■□□□■ □`
`■■□□□■□□□□□□□□■ □`
`□□□□□□■■■■□□□□■ □`
`□□□□□□□□□□□□□■□ □`
`■□□□□□□□□□□□■□□ □`
`□■■■■■■■■■■■□□□ □`

0H  -- ギャップ

244:208 b-2ch.d (12)
05/08/28 11:11:56
-- data15_2 --
`□□□□□□□□□□□□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□■□■□□□□□■□■□□□ □`
`□■□■□□□□□■□■□□□ □`
`■□□□■□□□■□□□■□□ □`
`■□□■■■■■□□□□■□□ □`
`□□□■□□□□□□■□□■□ □`
`□□■□■□□□□■□■□■□ □`
`□□□■□□□□□□■□□□■ □`
`□□□□□■□□□□□□□□■ □`
`□□□□□□■■■■□□□□■ □`
`□□□□□□□□□□□□□■□ □`
`■□□□□□□□□□□□■□□ □`
`□■■■■■■■■■■■□□□ □`

0H  -- ギャップ

245:208 b-2ch.d (13)
05/08/28 11:12:29
-- data15_3 --
`□□□□□□□□□□□□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□■□■□□□□□■□■□□□ □`
`□■□■□□□□□■□■□□□ □`
`■□□□■□□□■□□□■□□ □`
`■□□■■■■■□□□□■□□ □`
`□□□■□□□□□□■□□■□ □`
`□□■□■□□□□■□■□■□ □`
`■□□■□□□□□□■□□□■ □`
`■■□□□■□□□□□□□□■ □`
`■□□□□□■■■■□□□□■ □`
`□■□□□□□□□□□□□■□ □`
`■□□□□□□□□□□□■□□ □`
`□■■■■■■■■■■■□□□ □`

0H  -- ギャップ

246:208 b-2ch.d (14)
05/08/28 11:14:23
-- data15_4 --
`□□□□□□□□□□□□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□□■□□□□□□□■□□□□ □`
`□■■■□□□□□■□■□□□ □`
`□■□■□□□□□■□■□□□ □`
`■■■□■□□□■□□□■□□ □`
`■■□■■■■■□□□□■□□ □`
`■□■■□□□□□□■□□■□ □`
`□■■□■□□□□■□■□■□ □`
`□□■■□□□□□□■□□□■ □`
`□□□□□■□□□□□□□□■ □`
`□□□□□□■■■■□□□□■ □`
`■□□□□□■■■□□□□■□ □`
`■■■□□□□□□□□□■□□ □`
`□■■■■■■■■■■■□□□ □`

0H  -- ギャップ

247:208 b-2ch.d (15)
05/08/28 11:28:13
-- 10 * 10
{0L 4L 0x0101H 2H 0H 10H 10H 60L 80L 100L 120L}

-- mask10 --
`□□■□□□□□□□ □□□□□□`
`□■■■□□□□□■ □□□□□□`
`□■■■□□□□□■ □□□□□□`
`■■■■■□□□■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`
`■■■■■■■■■■ □□□□□□`

0L  -- ギャップ

-- data10_1 --
`□□■□□□□□□□ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`■□□□■□□□■□ □□□□□□`
`■□□■■■■■□□ □□□□□□`
`□□□■□□□□□■ □□□□□□`
`□□■□■□□□■□ □□□□□□`
`■□□■□□□□□■ □□□□□□`
`■□□□□■□□□□ □□□□□□`
`□■□□□□■■■□ □□□□□□`

248:208 b-2ch.d (16)
05/08/28 11:29:05
-- data10_2 --
`□□■□□□□□□□ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`■□□□■□□□■□ □□□□□□`
`■□□■■■■■□□ □□□□□□`
`□□□■□□□□□■ □□□□□□`
`□□■□■□□□■□ □□□□□□`
`□□□■□□□□□■ □□□□□□`
`□□□□□■□□□□ □□□□□□`
`□□□□□□■■■□ □□□□□□`

-- data10_3 --
`□□■□□□□□□□ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`■□□□■□□□■□ □□□□□□`
`■□□■■■■■□□ □□□□□□`
`□□□■□□□□□■ □□□□□□`
`□□■□■□□□■□ □□□□□□`
`■□□■□□□□□■ □□□□□□`
`■□□□□■□□□□ □□□□□□`
`■■□□□□■■■□ □□□□□□`



249:208 b-2ch.d (17)
05/08/28 11:29:35
-- data10_4 --
`□□■□□□□□□□ □□□□□□`
`□■■■□□□□□■ □□□□□□`
`□■□■□□□□□■ □□□□□□`
`■■■□■□□□■□ □□□□□□`
`■■□■■■■■□□ □□□□□□`
`■□■■□□□□□■ □□□□□□`
`□■■□■□□□■□ □□□□□□`
`□□■■□□□□□■ □□□□□□`
`□□□□□■□□□□ □□□□□□`
`□□■□□□■■■□ □□□□□□`


250:208
05/08/28 11:38:27
>>233-249
データボックスは以上

次は、機能付箋 ファイル名を b-2ch.f として保存する。

-----------------------------------------------------------------
-- b-2ch.f機能付箋
-----------------------------------------------------------------
0 0 0 0                        -- 表示位置
16                           -- 文字サイズ
0x10000000L 0x10000000L 0x10FFFFFFL  -- 枠色 文字色 背景色
4                            -- ピクトグラム番号
0x80000xCFFE0xBF23          -- アプリケーションID
"2ch de BTRON"16              -- 付せん名
"2ちゃんねる"16                  -- データタイプ名
12                           -- 固有データサイズ
------ 固有データ ------
0 0 620 480                     -- ウィンドウ外枠(未使用)
0 0                           -- 表示オフセット(未使用)

-----------------------------------------------------------------

251:208
05/08/28 11:46:10
最後に Makefile を作成
内容がほとんど分からないですが、
コンパイルするソースファイルの指定と
原紙箱への登録、圧縮アーカイブ(プログラム、付箋などを1つにまとめたもの)を作成しているようです。

252:208 Makefile (1)
05/08/28 11:47:12
#
#@(#)Makefile
#GNU make 用
#
#make の方法
#・make
#リリース用の正式版を作成
#・make mode=debug
#デバッグ用に作成
#・make clean
#make で作成した全てのファイルを削除
#・make install
#規定の場所にインストール (実機用のみ)
#

# バージョン
version = 0x0001

# リリース用をデフォルトにする
mode =

# ソースの依存関係ファイル (自動生成)
DEPS = Dependencies
DEPENDENCIES_OUTPUT := $(DEPS)

# アプリケーション標準ルール
include ../../etc/makerules

LDLIBS += -limg


253:208 Makefile (2)
05/08/28 11:48:13
#----------------------------------------------------------------------
# 作成対象
TARGET = b-2ch

# ソースファイルのサーチパス
S = ../src
VPATH = $(S)

# ヘッダファイルのディレクトリ追加
HEADER := $(S) $(HEADER)

DATABOX_HEADER := $(S)

# ソースファイル
SRC =window.c

WC_SRC = $(filter %.C, $(SRC))

# オブジェクトファイル
OBJ = $(addsuffix .o, $(basename $(SRC)))

# コンパイルオプション
ifneq ($(mode), debug)
CFLAGS += -Wall
endif

254:208 Makefile (3)
05/08/28 11:49:15
#----------------------------------------------------------------------
.PHONY: all clean install

INST = $(addprefix $(TARGET), .bz .map)
NOINST = $(addprefix $(TARGET), .out .dbx .fsn .form)

all: $(INST)

$(TARGET).out: $(OBJ)
$(LINK.o) $(LDOBJS) $^ $(LOADLIBES) $(LDLIBS) -lker $(OUTPUT_OPTION)

clean:
$(RM) $(OBJ)
$(RM) $(WC_SRC:%.C=%.c) $(DBSRC)
$(RM) $(INST) $(NOINST) *.lst $(DEPS)

install: $(INST:%=$(EXE_INSTALLDIR)/%) \
$(NOINST:%=$(EXE_INSTALLDIR)/%)

$(EXE_INSTALLDIR)/$(TARGET).out: $(EXE_INSTALLDIR)/%: %
$(EXE_INSTALL_STRIP)

255:208 Makefile (4)
05/08/28 12:04:28
# 原紙名
FORM_NAME = 2ch de BTRON

# 原紙集め(原紙箱)へのリンクデータ作成
# -a アプリケーションタイプ(0x0001: 文章 0x8003: アプリケーション)
$(TARGET).form: $(TARGET).fsn
       $(MKBTF) -o$@ -a0x0001 -t$(FORM_NAME) \
             8.0.$(TARGET).fsn

# 圧縮アーカイブ
$(TARGET).bz: $(NOINST)
       $(CP) $(TARGET).out _t
       $(STRIP) _t
       $(MKBTF) -o$@ -a0x8003 -c -tB-2ch \
              9.0x163._t \
              7.$(version).$(TARGET).fsn \
              10.0.$(TARGET).dbx \
              @0.0.0x8001.0.0x800c.$(TARGET).form
       $(RM) _t


256:208 Makefile (5)
05/08/28 12:16:52
# ソースの依存関係

$(WC_SRC:%.C=%.c):

$(DBSRC):

$(TARGET).dbx: $(TARGET).d
$(TARGET).fsn: $(TARGET).f

ifdef DEPENDENCIES_OUTPUT
$(DEPS):   ; touch $(DEPS)
else
$(DEPS): $(SRC)  ; $(MAKEDEPS) $@ $?
endif

include $(DEPS)


257:208
05/08/28 12:31:21
まとめ

ウィンドウ表示プログラム

>>216-231 プログラム    window.c

>>233-249 データボックス b-2ch.d

>>250    機能付箋    b-2ch.f

>>252-256 メイクファイル Makefile

以上の4つのファイルにより実行形式ファイルを作成する。

ただウィンドウを表示するプログラムですが結構長くなりますね。
これからどうするかまだ考えていません。
以上、チラシの裏でした。

258:デフォルトの名無しさん
05/08/28 17:29:43
長ぇなぁおい。これで乗っ取る気はないなんて言っても誰も信じなくなるぞw

259:デフォルトの名無しさん
05/08/28 20:07:07
これがbtronなのかここまできてやっと中見えたね
これが動くんでしょ??環境そこまで糞じゃなくない?

260:デフォルトの名無しさん
05/08/28 20:25:24
ディレクトリの概念がないだけで充分糞です。

261:デフォルトの名無しさん
05/08/29 19:44:04
>>208
うざぃ

>>259
誰が糞なんていったんだ?

>>260
あほぬかせ

262:デフォルトの名無しさん
05/08/29 22:44:32
あの中途半端な用語も何とかして欲しいよなぁ。
「実身」「仮身」ってなんだよw

263:デフォルトの名無しさん
05/08/29 23:30:41
日本人だから日本語に違和感があるだけ
FATだって、英語圏の人から見たらおんなじ感じ

264:デフォルトの名無しさん
05/08/30 05:21:40
FATは(その表記を)普段目にしないで済むじゃん。
実身はメニュー操作するたびに目にする羽目に。

265:デフォルトの名無しさん
05/08/30 13:40:06
だったら一番見るのが
Windowsだな

266:デフォルトの名無しさん
05/09/12 17:10:38
おい!!!それで終わりかよ!!!!
続けてよ

267:デフォルトの名無しさん
05/09/13 22:59:33
208さん、外野のヤジは気にせず、マイペースでガンがってください。

268:デフォルトの名無しさん
05/09/20 19:20:11
このスレまだあったのね。
208タソのあれはB-TRONアプリのコードなん?

DOS時代を思い出した。

269:208
05/09/25 18:24:56
>>266-267
忙しくて、最近こっちに手を回せていません。
長々とコードを公開しいる割には進んでいません、すみません。
現在、URLリンク(age.s22.xrea.com) を参考にして
超漢字からDATを取得できるようになりました。まだ表示はできませんが・・・。

>>268
超漢字4で動作します。



270:デフォルトの名無しさん
05/09/25 19:18:10
>>269
どっかにWiki立ててもらうから
そこにアップしてもらってもいい?

271:デフォルトの名無しさん
05/11/29 18:20:40
結局0君はやめちゃったのか。
最初から全部詰め込もうとするのはやはりダメないい見本。

272:208
06/01/29 21:11:13
数ヶ月ぶりに作成再開しています。
今後の予定

(1)DATデータを1行ごとに取得
    ↓ <-- 現在作成地点
(2)sjisをtronコードに変換(半角・全角の区別が必要)
    ↓
(3)HTMLの解析(<br>, <a>ぐらい?)
    ↓
(4)行ごとにデータを格納(どのようなデータ形式がほしいか?)
    ↓
(5)DATデータをすべて取得するまで(1)-(4)をループ
    ↓
(6)描画


GUI構想
・シンプルな1ペイン型
・ほかの必要な操作はメニューにする
____________________________________________________________________________
|ブックマーク||URLリンク(www.***********)           |
|-板一覧 -スレッド一覧 -スレッド|| < || > ||再読込||中断|
------------------------------------------------



273:208
06/02/12 21:26:13
行ごとのデータ形式は以下のような感じにして、板一覧、スレッド一覧、スレッドとも処理(描画、リンク選択・・・)を共通化する。


/* HTMLタイプ */
#define T_STR 1
#define T_LINK 2

typedef struct {
 W  atr;  /* 表示属性(半角/全角) */
 TC *str; /* 文字列 終端は TNULL */
 W  len; /* str の長さ(TC数) 最後の TNULL の分は含めない */
} TSTR;

typedef struct {
 TC   *addr; /* アドレス */
 W    len;  /* アドレスの長さ */
 TSTR name; /* 表示文字列 */
} TLINK;

typedef struct htmlitem {
 W    type; /* HTMLタイプ */
 union {
  TSTRtstr;
  TLINKtlink;
 } c;
} HTMLITEM;


274:orez ◆rfUW/QuraQ
06/03/01 22:53:31
>>208
(2)まで終わったら、そこからは俺も参加できるよ。
そこまでは頼む。

275:208
06/03/05 21:38:26
>>274
現在は(3)あたりを作成中です。
まずは板一覧から作成
板一覧は毎回データを取得しに行くのではなく、レコード(別なファイルでもよい?)から
読み込み、起動の高速化を図る。


起動

<板一覧のレコードはあるか> No→ レコード作成
↓Yes                    ↓
↓                 板一覧のダウンロード(板一覧の解析)
↓                       ↓
レコード読み込み   ←  レコードに保存

HTMLITEMの作成(リストにする)

<板一覧が操作対象か> Yes→ イベント(再表示)の通知
↓No                   ↓
イベント待ち(アイドル)    ←   再表示


276:orez ◆rfUW/QuraQ
06/03/05 22:13:32
>>275
レスありがとう。。
ソースどっかにあげたりはしない??
見てみたいんだけどさ。
適当なところで協力できればと思うんだけど。。。

277:208
06/03/19 21:18:16
>>276
ソースをオープンにするのはもうしばらく時間をください。
最新版は現在コンパイルが通らなくなっています。(いじりすぎました)
少し前のバージョンを改良したいと思います。
ソースを公開するとしたら、アップローダーみたいなところが良いですか?



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch