advance/hints
の編集
http://hrb.osask.jp/wiki/?advance/hints
[
リロード
|
差分
|
単語検索
|
一覧
] [
編集
|
バックアップ
|
添付
]
-- 雛形とするページ --
A
Akkie
Athlon64X2
Clover
DAsoran
Falcon
FormatRule
FrontPage
Genesis
Help
I
InterWikiName
InterWikiSandBox
InterWikiテクニカル
Jormungand
K
Kebo
Kor_Lee_Hee_Rak
Leaf
Linux
Linux/wako_memo
MOIZ99
MW
MenuBar
OSC
PG_MANA
ReadersOS
RecentDeleted
SKYDASH
SandBox
Sero
Sigle
Source
Triangle_Ld.
Zxcvbnm
advance
advance/CPU
advance/FDC
advance/FPU
advance/NotHariMain
advance/QEMUVGA
advance/RTC
advance/blike
advance/cpu_reset
advance/driver
advance/driver/01
advance/driver/02
advance/families
advance/filesystem
advance/fwrite
advance/hddboot
advance/he86
advance/hints
advance/ipl
advance/kernel
advance/keycode
advance/osselect
advance/smaller1
advance/startup
advnace/smaller2
anzy
aotatsu
banbi-
bluedwarf
bo
bugs
challengers
cybozulabsyouth11
deskmanta
esb02b
faq
faq/advance
faq/asm
faq/c00-03
faq/c04-07
faq/c08-15
faq/c16-23
faq/c24-31
faq/make
faq/others
faq/qemu
guide
guide03
guide05
guide07
hikarupsp
imp_log/0000
imp_log/0001
imp_log/0002
imp_log/0003
impressions
index
k
killer_elf
kota
lea
lea/10_memory
lea/4_color
lea/idea
lea/terms
links
logs
logs/osa_hrb/comments0000
logs/osa_hrb/rumors0000
masa
members
message
mistakes
moge32
moppoi5168
notice
osdevjp
populars
prog_index
projects
q_and_a
q_and_a_2
qa_log/0000
qa_log/0001
qa_log/0002
qa_log/0003
qa_log/0004
qa_log/0005
qa_log/0006
qa_log/0007
qa_log/0008
qa_log/0009
quark
rankings
rule
sakamoto
sasaki
spc09
spcc_30min_os
tatsu
tools
tools/bim2hrb
tools/bin2obj
tools/cc1
tools/edimg
tools/gas2nask
tools/makefont
tools/nask
tools/obj2bim
tools/sjisconv
uchan
uho
updates
violations
wako
white
win64-bit
x
ytakano
ヘルプ
リックス
質問します
整形ルール
本は買ったぞ!持ってるぞ!
練習用ページ
* [[K]]による改造のヒント集 -(by [[K]], 2006.09.27) -発展課題のページ(全部読む前にここを読むのは混乱するのでおすすめじゃないです) -思いつくままに適当に書いています。 *** ヒント集 -ゲームなどを作ると毎回違う乱数がほしくなります。乱数のパターンを変えるためには srand() という関数を使うのですが、パターンを変えるための番号(乱数の種といいます)も毎回同じだと結局変わりません。 --それで一般的なOSでは時刻取得APIを使って、そのときの時刻を乱数の種にします。 --ちなみにOSASKでは、乱数の種を得るための専用APIがあって、それを使うと「はりぼてOS」でいうところの timerctl.count の値(をもとに計算した値)が得られます。これだと秒よりも速い速度で変わるので、乱数の種には向いていると思います。 ---将来はこのAPIが返す値を設定可能にして(timerctl.countの値モードと固定値モード)、ゲームのデバッグをやりやすくしようと考えています(ゲームのデバッグ時に乱数のパターンを毎回同じにできるようにすると確認しやすい)。 ---- -今まで自分が書いてきた「はりぼてOS」用アプリを見渡してみたのですが、 api_cmdline(s, 30); for (p = s; *p > ' '; p++) { } /* スペースが来るまで読み飛ばす */ for (; *p == ' '; p++) { } /* スペースを読み飛ばす */ というのが一種の決まり文句になっているようです。このようによく使う機能をまとめて、 p = api_cmdline2(s, 30); みたいに書けたらアプリを作るのがラクですよね。こういうAPIを上手に揃えると、使いやすくてコンパクトなアプリが作りやすいOSになれると思います。 -こういう工夫を思いつけるのはアプリをいくつも作ってきたからですが、つまりアプリをほとんど作らない人はいいOSなんて作れないのです。CPUはOSを作る人のことをよく考えて命令が揃えられているなーと感じたかもしれませんが、それはまさにインテルのおじさんたちがOS開発のことをよく知っているおかげです。 * こめんと欄 -srandの宣言てどうなっているのですか?starsで毎回違った星空をだしたいと思っていまして。 -- [[Triangle_Ld.]] SIZE(10){2009-05-25 (月) 20:16:04} -↑関数を自作したら解決しました。すいません。 -- [[Triangle_Ld.]] SIZE(10){2009-05-25 (月) 21:03:34} -「srandは関数」と書くと初心者は「srandは関数なのか!じゃあ宣言しないとな。でもどう宣言するんだ〜」と、混乱してしまいます。「srandは関数だけど宣言する必要はありません」と書けば初心者も混乱しないと思います。 -- 名無しさん SIZE(10){2009-06-24 (水) 16:23:47} #comment
タイムスタンプを変更しない
* [[K]]による改造のヒント集 -(by [[K]], 2006.09.27) -発展課題のページ(全部読む前にここを読むのは混乱するのでおすすめじゃないです) -思いつくままに適当に書いています。 *** ヒント集 -ゲームなどを作ると毎回違う乱数がほしくなります。乱数のパターンを変えるためには srand() という関数を使うのですが、パターンを変えるための番号(乱数の種といいます)も毎回同じだと結局変わりません。 --それで一般的なOSでは時刻取得APIを使って、そのときの時刻を乱数の種にします。 --ちなみにOSASKでは、乱数の種を得るための専用APIがあって、それを使うと「はりぼてOS」でいうところの timerctl.count の値(をもとに計算した値)が得られます。これだと秒よりも速い速度で変わるので、乱数の種には向いていると思います。 ---将来はこのAPIが返す値を設定可能にして(timerctl.countの値モードと固定値モード)、ゲームのデバッグをやりやすくしようと考えています(ゲームのデバッグ時に乱数のパターンを毎回同じにできるようにすると確認しやすい)。 ---- -今まで自分が書いてきた「はりぼてOS」用アプリを見渡してみたのですが、 api_cmdline(s, 30); for (p = s; *p > ' '; p++) { } /* スペースが来るまで読み飛ばす */ for (; *p == ' '; p++) { } /* スペースを読み飛ばす */ というのが一種の決まり文句になっているようです。このようによく使う機能をまとめて、 p = api_cmdline2(s, 30); みたいに書けたらアプリを作るのがラクですよね。こういうAPIを上手に揃えると、使いやすくてコンパクトなアプリが作りやすいOSになれると思います。 -こういう工夫を思いつけるのはアプリをいくつも作ってきたからですが、つまりアプリをほとんど作らない人はいいOSなんて作れないのです。CPUはOSを作る人のことをよく考えて命令が揃えられているなーと感じたかもしれませんが、それはまさにインテルのおじさんたちがOS開発のことをよく知っているおかげです。 * こめんと欄 -srandの宣言てどうなっているのですか?starsで毎回違った星空をだしたいと思っていまして。 -- [[Triangle_Ld.]] SIZE(10){2009-05-25 (月) 20:16:04} -↑関数を自作したら解決しました。すいません。 -- [[Triangle_Ld.]] SIZE(10){2009-05-25 (月) 21:03:34} -「srandは関数」と書くと初心者は「srandは関数なのか!じゃあ宣言しないとな。でもどう宣言するんだ〜」と、混乱してしまいます。「srandは関数だけど宣言する必要はありません」と書けば初心者も混乱しないと思います。 -- 名無しさん SIZE(10){2009-06-24 (水) 16:23:47} #comment
テキスト整形のルールを表示する