qa_log/0000
の編集
http://hrb.osask.jp/wiki/?qa_log/0000
[
リロード
|
差分
|
単語検索
|
一覧
] [
編集
|
バックアップ
|
添付
]
-- 雛形とするページ --
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
ヘルプ
リックス
質問します
整形ルール
本は買ったぞ!持ってるぞ!
練習用ページ
* q_and_aの過去ログ(0000) -(by [[K]], 2006.03.28) -リンク: --[[q_and_a]]へ *** ログ -第1版の第1刷のp.93のVRAMの番地についてです。0xa000+319+199*320=0xaf9ffと0xaffffの値の違いの意味が分かりません。よろしくお願いします。 -- 名無しさん SIZE(10){2006-03-04 (土) 04:24:28} -初ご質問ありがとうございます。メモリマップ上ではVRAMは0xa0000〜0xaffffとなっています。しかし(319,199)の座標の画素に相当するのは0xaf9ff番地です。確かにこれはちょっとヘンです。では0xafa00番地に書き込んだらどうなるでしょうか。はい、何もおきません。でも書き込んだ値はもちろん記憶されます。つまりVRAMというメモリはあるのですが、画面外になってしまうので表示されないのです。おそらくもっと画素の多い画面モードになると、0xafa00〜0xaffffの内容も表示できるようになるのでしょう。 -- [[K]] SIZE(10){2006-03-04 (土) 10:47:37} -第1版の第1刷のp.45のMakefile導入したCD-ROM内のhelloos5をコマンドプロンプト上で「make run」するとhello.img , ipl.bin , ipl.lst は作成されるのですがprocess_begin: CreateProcess((null), copy helloos.img ..\z_tools\qemu\fdimage0.bin, ...)failed.と表示されhelloos4までに見られた「hellio,world]実行画面が表示されません。ご回答よろしくお願いします -- 名無しさん SIZE(10){2006-03-05 (日) 17:29:32} -ご質問ありがとうございます。もしやCygwinをお使いではありませんか?もしそうであれば、Cygwinはなぜかcopyコマンドに干渉するので、pathの設定などを見直してください。 -- [[K]] SIZE(10){2006-03-05 (日) 18:05:45} -第1版の第1刷のp.167のプロテクトモード移行についてです。2つ疑問があります。「MOV CR0,EAX」の時点ではCSの値は0x0000に設定されているようですが、これはCPUの仕様でしょうか?また、プロテクトモードでCSが0x0000の場合はGDTのヌルセレクタを用いたアドレス変換が行われる、という解釈でいいでしょうか?以上よろしくお願いします。 -- 名無しさん SIZE(10){2006-03-09 (木) 15:28:48} -CR0に代入した直後も、CSの解釈はリアルモード(16ビットモード)と同じ方法になっています。これはほかのセグメントレジスタにも言えます。CSやその他のセグメントレジスタへの代入命令が実行されたときになって初めて、GDTを参照してセグメントレジスタをプロテクトモード解釈するようになります。またプロテクトモードでは、CSに0(ヌルセレクタ)を代入することはできません。無理やり代入しようとすると一般保護例外になるはずです。 -- [[K]] SIZE(10){2006-03-09 (木) 17:28:27} -process_begin: CreateProcess((null)...ですが、Makefile中のすべてのcopyをcmd.exe /C copyに、delをcmd.exe /C delに書き換えると正常動作します(Win98系の場合は、cmd.exe /Cではなく command.com /C)。例外で、edimg.exeの引数に使っているcopyは書き換えてはだめです。 -- ''uchan'' SIZE(10){2006-03-09 (木) 18:54:07} -p18,19のhelloosを表示させるという部分なのですが、自作したものとサンプル、共にinstallをコンソールに打ち込んでも、指定されたプログラムは実行できません、と出てしまいます。runの方はうまく起動してくれるのですが、解決方法がありましたら教えていただけませんでしょうか?初歩的な質問で恐縮です。 -p23の「超長いソースプログラム」のhelloos.nas(184320行)でnask.exeを実行すると「NASK : too large helloos.nas」というエラーが発生しました。naskソースコードが多き過ぎるのでしょうか? -- ''まあ'' SIZE(10){2006-03-12 (日) 11:42:57} -まあさんへ。はいそうです。今のnaskはそんなに長いプログラムに対応できていません。どうもすみません。 -- [[K]] SIZE(10){2006-03-12 (日) 12:35:52} -installについてご質問くださった方へ:お名前が入っていないのはなぜでしょうか。消してしまわれたのでしょうか。できればそういう編集はしないでください。さてご質問の件ですが、お使いのOSやツールに理由があるように思います。まずはお使いのOSを教えてください。 -- ''K'' SIZE(10){2006-03-12 (日) 12:39:06} -編集中に同時に消してそのままにしてしまいました。申し訳ありません。installについての者ですが、使用しているOSはXPのHomeでSP2適用済みのOEM品です。よろしくお願いいたします。 -- ''kame'' SIZE(10){2006-03-12 (日) 13:59:28} -お返事ありがとうございます。WinXPのSP2は手元にないので分かりませんが、読者のほかの方で使っておられる人は多いと思うので、きっとその人たちが何かいいアドバイスをくれます。少し待ってみてください。 -- [[K]] SIZE(10){2006-03-12 (日) 15:07:50} -横から失礼。「install.bat」が、「install」のままなんてことがないですか? または、印刷の関係でスペースが見にくいので打ち間違いをされているとか?? スペースを確認してみてください。わざとスペースを二つとって見やすくするとこうですね。 「 ..\z_tools\imgtol.com w a: helloos.img 」 (的外れだったらごめんなさい) -- ''hideyosi'' SIZE(10){2006-03-12 (日) 15:33:51} -kameさんへ。僕もWinXP home SP2を使っていますが、正常にrunとinstallできます。http://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/safer_trouble.asp(IEのみ対応?)ここにそれらしきことが書いてあるようです。イベントビューアは、コントロールパネルの「管理」の中にあります。とにかく、今僕には原因がわかりません。 -- ''uchan'' SIZE(10){2006-03-12 (日) 15:36:16} -hideyosiさん、uchanさん、回答ありがとうございます。install.batはきちんとバッチファイルとプロパティで確認できるので問題ないようです。記述のミスかとも思ったのですが、CD内のサンプルを利用しても同じ結果となってしまい、やはり他に原因があるのかな?と思っています。イベントビューアでの確認でも特に異常は見当たりませんでした。プロフェッショナルの入っているノートではinstallコマンドは通るのですが、なにぶんフロッピーディスクが搭載されていないものですから。一応今からノートとの環境を比較してみたいと思います。 -- ''kame'' SIZE(10){2006-03-12 (日) 22:51:57} -自己解決しました!どうやらディレクトリの階層深く(正確には四つ下です)にtolsetを置いてしまったことが原因でした。初歩的なミスでお騒がせして申し訳ありません。皆様本当にご助言ありがとうございました。 -- ''kame'' SIZE(10){2006-03-13 (月) 00:50:09} -''kameさん:''おめでとうございます。よかったですね。(^^) がんばって進んでくださいね。 -- ''hideyosi'' SIZE(10){2006-03-13 (月) 01:12:49} -ほほうなるほど・・・。まさかそんなことで動かなくなるなんて知らなかったのでむしろ勉強になりました。多分パスが64文字を超えると起動不可能になるのだと思われます。ご報告ありがとうございました。 -- [[K]] SIZE(10){2006-03-13 (月) 01:50:27} -P87のset_paletteについて質問です。io_out8(0x03c9, rgb[0] / 4); とありますが、この/4の意味はなんですか?輝度の調節のためでしょうか? -- ''peco'' SIZE(10){2006-03-16 (木) 00:39:12} -とてもよいご質問をありがとうございます。その部分の説明を書いていませんでした(書いたつもりになっていました)。私たちは通常、輝度を00-ffつまり0〜255として扱っていますが、ビデオカードの標準状態では、輝度を0〜63の範囲で指定しなければいけないのです(63で255の明るさになる)。そのための割り算です。 -- [[K]] SIZE(10){2006-03-16 (木) 08:48:53} -割り込み処理に関して疑問があります。例えば、harib04gのint.cのinthandler21のio_out8(PIC0_OCW2, 0x61);の直後にマウスからの割り込み信号が来た場合、dataの値はどうなりますか。 -- 名無しさん SIZE(10){2006-03-16 (木) 08:51:18} -これまたよいご質問ありがとうございます。キーボードやマウスにはCPUの応対が間に合わなかったときのための小さなFIFOバッファが付いています。したがいまして、「データを読まない限り」次のデータが先にやってくることはありません。つまりデータを取りこぼしてしまうことはないのです。この例の場合、PICは割り込み監視を再開するわけですが、キーボードはPICが監視を再開したかどうかは関係なく、とにかくデータポートからデータを取ってもらえるまで、そのときのデータを保持することになります。ということで、期待通り動きます。 -- [[K]] SIZE(10){2006-03-16 (木) 11:35:04} -各種開発ツールのマニュアルなどはないのでしょうか。私が特に気になるのは、edimage -- 名無しさん SIZE(10){2006-03-19 (日) 09:51:32} -↑すいません。ボタンを押し間違えてしまったので書き直します。 各種開発ツールのマニュアルなどはないのでしょうか。私が特に気になるのは、edimgで、edimgに与えるコマンドがどのような効果を持っているのかがよくわかりません。また、naskについてですが、ソースにエラーがある場合、naskではエラー箇所は示さずソース内にあるエラーの個数のみを出力するようですが、naskを利用してエラー箇所を探すことはできないのでしょうか。 -- 名無しさん SIZE(10){2006-03-19 (日) 09:56:03} -大変よい質問をありがとうございます。しかしただ今当方が疲れておりますので、お返事は2日間くらいお待ちください。 -- [[K]] SIZE(10){2006-03-19 (日) 15:56:03} -naskのエラー個所探しについては、[[tools/nask]]にまとめたので、まずはそちらをご覧ください。それでまだ不明な点があれば、また質問してください。edimgはもうしばらくお待ちください。 -- ''K'' SIZE(10){2006-03-19 (日) 23:42:46} -edimgも書きました。[[tools/edimg]]を見てください。それでまだ不明な点があれば、また質問してください。 -- ''K'' SIZE(10){2006-03-21 (火) 17:23:16} -bootpack.cのHariMain関数を、自分の好きな関数名に変えたいです。如何すれば良いでしょうか。 -- ''M59'' SIZE(10){2006-03-24 (金) 18:34:08} -質問ありがとうございます。[[advance/NotHariMain]]にまとめましたのでご覧ください。 -- [[K]] SIZE(10){2006-03-24 (金) 20:28:15} -初版の第1刷のp19で!cons_nt.bat(!cons_9x.batmo)で開いたコンソールでrunをするとQEMUのウインドウは表示されるのですが、ウインドウの中が表示できず、進めなくなってしまいました。何かアドバイスいただけないでしょうか。環境はWinXP Home Sp2です。 -- 名無しさん SIZE(10){2006-03-28 (火) 00:44:02} -状況がよく分からないの教えてください。表示できなくて進めなくなったのは、QEMUのウィンドウでしょうか?それとも!cons_nt.batのウィンドウでしょうか? -- [[K]] SIZE(10){2006-03-28 (火) 00:51:10} -お忙しいところ済みません。 -- 名無しさん SIZE(10){2006-03-28 (火) 09:58:21} -asmhead.nas において、JMP DWORD 2*8:0x0000001b 命令で、C 言語プログラムの bootpack(HariMain) に跳べるのはなぜでしょうか? -- ''kero'' SIZE(10){2006-03-28 (火) 09:59:43} -第一版第一刷 P.171 下部に、「実際は、0x280001b 番地から実行することになります。これは、bootpack.hrb の0x1b 番地です。」となっていますが、bootpack.hrb を見ると、harib01b 等では、bootpack の先頭は、0x00000024 あたりになっていると思うのですが。 -- ''kero'' SIZE(10){2006-03-28 (火) 10:00:36} -行が分かれてしまって済みません -- ''kero'' SIZE(10){2006-03-28 (火) 10:03:38} -ご質問ありがとうございます。その疑問は、p.171の段階では分からないのですがp.461まで進むと分かるようになりますので、それまで楽しみにしていてください。 -- [[K]] SIZE(10){2006-03-28 (火) 10:40:24} -初版の第1刷のp19で!cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、表示できないウインドウはQEMUのウインドウです。タイトルバーなどは表示されますが、ウインドウ内が描画されず、他のウインドウを重ねると重ねたウインドウの表示がQEMUウインドウの中に残って再描画されない状態になってしまいます。 -- 名無しさん SIZE(10){2006-03-28 (火) 22:34:05} -まずは名無しさんへ。それはおそらくQEMUが暴走していると思われます。とりあえず暴走の理由は次の3つが考えられます。一つ目はhelloos.imgの入力ミスです。これはとりあえずCD-ROMからhelloos.imgをコピーすれば解決できます。二つ目はrun.batの入力ミスです。これもCD-ROMからコピーすれば解決できます。最後の可能性は、お使いのWindowsのバージョンです。もし95、98、Meであれば、p.1の前に書いてある文章をよく読んで、9x用のqemuが動くようにしてください。このどれでも解決しない場合は、また質問してください。 -- [[K]] SIZE(10){2006-03-28 (火) 23:51:47} -cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、hellos.ing,run.batともにCDからコピーしましたが変わりませんでした。またOSはWinXP Home SP2です。 -- 名無しさん SIZE(10){2006-03-29 (水) 00:13:23} -asmhead の JMP DWORD 2*8:0x0000001b に関して回答有難うございました。P.461 で hrb ファイルヘッダの e9 XX 00 00 00 で、 0xXX +0x20 の _HariStartup に JMP して C 言語プログラムが動作するのであろうことは理解できましたが、何故 0xXX +0x20 へ跳ぶのでしょうか? XX 番地へ跳ぶなら解るのですが。宜しくお願いします。 -- ''kero'' SIZE(10){2006-03-29 (水) 09:51:55} -P179のmemtest_subの関数の中でポインタpをvolatileで宣言すれば、アセンブラを使わず期待した結果を得ることができるのではないですか? -- ''yyusuke'' SIZE(10){2006-03-29 (水) 14:27:21} -yyusukeさん。実にその通りなのです!僕もそのことを自分で発見したときはうれしかったです。[[impressions]]にも同様の書き込みがあります。 -- [[uchan]] SIZE(10){2006-03-29 (水) 17:27:12} -名無しさんへ。似たような事例報告を1件だけ見たことがあるので、もしかしたらその人と同じ問題かもしれません。もしそうならどうやってもダメかもしれませんが、とにかく次の対策案を書きます。(1)tolsetの入っているハードディスクの空き容量がtolsetなどを入れた状態で5MB以上なのを確認してください。(2)5MB以上でもダメなら、WinNT系用のQEMUとの相性が「なぜか」悪い可能性が考えられますので、あえてWin9X用のQEMUを使うように設定を変えてみてください。その場合でも使うのは!cons_nt.batのほうで、!cons_9x.batを使ってはいけません。 -- [[K]] SIZE(10){2006-03-29 (水) 23:07:58} -keroさんへ。E9 xxxxxxxx は5バイトの相対JMP命令です。「相対」JMP命令なので、JMP先の指定は行き先を直接書くのではなく、「この命令の終わりから何バイト先か」を記述することになっています。だからそれでいいのです。 -- ''K'' SIZE(10){2006-03-29 (水) 23:10:59} -cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、HDDは5MB以上あります。Win9x用のQEMUの設定とはどのように行うのでしょうか。どっちにしても、run.batするのであれば同じQEMUが起動するように思うのですが違うのでしょうか。run.batでqemu.exeの起動オプションを変更するのでしょうか。たびたび申し訳ありませんがよろしくお願いします。 -- 名無しさん SIZE(10){2006-03-30 (木) 21:29:54} -名無しさんへ。〜の件と何度も書くのは明らかにムダなので、できれば適当な仮名を名乗ることにしていただきたいところです。さて本題ですが、同じrun.batであっても違うQEMUが起動するようになります。Win9X用のQEMUを使う方法については、上記の 03-28 23:51:47 でお答えしたとおり、p.1の前のページの説明を参照してください。 -- [[K]] SIZE(10){2006-03-30 (木) 22:51:17} -QEMUが起動しない件ですが、理解できず申し訳ありませんでした。今理解できました。p.1の説明のようにやってみましたが、結果は変わりませんでした。 -- ''J'' SIZE(10){2006-03-30 (木) 23:29:08} -Jさんへ。そうでしたか、Win9X用でもダメでしたか・・・。大変申し訳ないことに、筆者としては万策尽きてしまった感があります。とりあえずQEMUがなくても開発そのものはできますし、フロッピーディスクやCD-RW等を併用すれば実機テストができます。またもしかしたら他のエミュレータならうまくいくのかもしれません。ただ、いずれにせよ「make run」のお手軽な開発ではなくなってしまうので、申し訳ないです。これからいろいろ調べて[[faq/qemu]]にまとめますので、1週間後くらいにこのページをチェックしてみてください。まずはここまでいろいろと試してくださりありがとうございました。 -- [[K]] SIZE(10){2006-03-31 (金) 00:02:25} -Jさんへ。QEMU以外のエミュレータで、[[VMware Player:http://www.vmware.com/products/player/]]というのが有ります。これは、VMware Workstationという有名なエミュレータの機能限定版の様な物で、無料です。エミュレートするときに必要な仮想マシンの設定ファイルは他の人に作ってもらう必要がありますが、たぶんそのときになったら僕が作るでしょう。 -- [[uchan]] SIZE(10){2006-03-31 (金) 14:34:00}
タイムスタンプを変更しない
* q_and_aの過去ログ(0000) -(by [[K]], 2006.03.28) -リンク: --[[q_and_a]]へ *** ログ -第1版の第1刷のp.93のVRAMの番地についてです。0xa000+319+199*320=0xaf9ffと0xaffffの値の違いの意味が分かりません。よろしくお願いします。 -- 名無しさん SIZE(10){2006-03-04 (土) 04:24:28} -初ご質問ありがとうございます。メモリマップ上ではVRAMは0xa0000〜0xaffffとなっています。しかし(319,199)の座標の画素に相当するのは0xaf9ff番地です。確かにこれはちょっとヘンです。では0xafa00番地に書き込んだらどうなるでしょうか。はい、何もおきません。でも書き込んだ値はもちろん記憶されます。つまりVRAMというメモリはあるのですが、画面外になってしまうので表示されないのです。おそらくもっと画素の多い画面モードになると、0xafa00〜0xaffffの内容も表示できるようになるのでしょう。 -- [[K]] SIZE(10){2006-03-04 (土) 10:47:37} -第1版の第1刷のp.45のMakefile導入したCD-ROM内のhelloos5をコマンドプロンプト上で「make run」するとhello.img , ipl.bin , ipl.lst は作成されるのですがprocess_begin: CreateProcess((null), copy helloos.img ..\z_tools\qemu\fdimage0.bin, ...)failed.と表示されhelloos4までに見られた「hellio,world]実行画面が表示されません。ご回答よろしくお願いします -- 名無しさん SIZE(10){2006-03-05 (日) 17:29:32} -ご質問ありがとうございます。もしやCygwinをお使いではありませんか?もしそうであれば、Cygwinはなぜかcopyコマンドに干渉するので、pathの設定などを見直してください。 -- [[K]] SIZE(10){2006-03-05 (日) 18:05:45} -第1版の第1刷のp.167のプロテクトモード移行についてです。2つ疑問があります。「MOV CR0,EAX」の時点ではCSの値は0x0000に設定されているようですが、これはCPUの仕様でしょうか?また、プロテクトモードでCSが0x0000の場合はGDTのヌルセレクタを用いたアドレス変換が行われる、という解釈でいいでしょうか?以上よろしくお願いします。 -- 名無しさん SIZE(10){2006-03-09 (木) 15:28:48} -CR0に代入した直後も、CSの解釈はリアルモード(16ビットモード)と同じ方法になっています。これはほかのセグメントレジスタにも言えます。CSやその他のセグメントレジスタへの代入命令が実行されたときになって初めて、GDTを参照してセグメントレジスタをプロテクトモード解釈するようになります。またプロテクトモードでは、CSに0(ヌルセレクタ)を代入することはできません。無理やり代入しようとすると一般保護例外になるはずです。 -- [[K]] SIZE(10){2006-03-09 (木) 17:28:27} -process_begin: CreateProcess((null)...ですが、Makefile中のすべてのcopyをcmd.exe /C copyに、delをcmd.exe /C delに書き換えると正常動作します(Win98系の場合は、cmd.exe /Cではなく command.com /C)。例外で、edimg.exeの引数に使っているcopyは書き換えてはだめです。 -- ''uchan'' SIZE(10){2006-03-09 (木) 18:54:07} -p18,19のhelloosを表示させるという部分なのですが、自作したものとサンプル、共にinstallをコンソールに打ち込んでも、指定されたプログラムは実行できません、と出てしまいます。runの方はうまく起動してくれるのですが、解決方法がありましたら教えていただけませんでしょうか?初歩的な質問で恐縮です。 -p23の「超長いソースプログラム」のhelloos.nas(184320行)でnask.exeを実行すると「NASK : too large helloos.nas」というエラーが発生しました。naskソースコードが多き過ぎるのでしょうか? -- ''まあ'' SIZE(10){2006-03-12 (日) 11:42:57} -まあさんへ。はいそうです。今のnaskはそんなに長いプログラムに対応できていません。どうもすみません。 -- [[K]] SIZE(10){2006-03-12 (日) 12:35:52} -installについてご質問くださった方へ:お名前が入っていないのはなぜでしょうか。消してしまわれたのでしょうか。できればそういう編集はしないでください。さてご質問の件ですが、お使いのOSやツールに理由があるように思います。まずはお使いのOSを教えてください。 -- ''K'' SIZE(10){2006-03-12 (日) 12:39:06} -編集中に同時に消してそのままにしてしまいました。申し訳ありません。installについての者ですが、使用しているOSはXPのHomeでSP2適用済みのOEM品です。よろしくお願いいたします。 -- ''kame'' SIZE(10){2006-03-12 (日) 13:59:28} -お返事ありがとうございます。WinXPのSP2は手元にないので分かりませんが、読者のほかの方で使っておられる人は多いと思うので、きっとその人たちが何かいいアドバイスをくれます。少し待ってみてください。 -- [[K]] SIZE(10){2006-03-12 (日) 15:07:50} -横から失礼。「install.bat」が、「install」のままなんてことがないですか? または、印刷の関係でスペースが見にくいので打ち間違いをされているとか?? スペースを確認してみてください。わざとスペースを二つとって見やすくするとこうですね。 「 ..\z_tools\imgtol.com w a: helloos.img 」 (的外れだったらごめんなさい) -- ''hideyosi'' SIZE(10){2006-03-12 (日) 15:33:51} -kameさんへ。僕もWinXP home SP2を使っていますが、正常にrunとinstallできます。http://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/safer_trouble.asp(IEのみ対応?)ここにそれらしきことが書いてあるようです。イベントビューアは、コントロールパネルの「管理」の中にあります。とにかく、今僕には原因がわかりません。 -- ''uchan'' SIZE(10){2006-03-12 (日) 15:36:16} -hideyosiさん、uchanさん、回答ありがとうございます。install.batはきちんとバッチファイルとプロパティで確認できるので問題ないようです。記述のミスかとも思ったのですが、CD内のサンプルを利用しても同じ結果となってしまい、やはり他に原因があるのかな?と思っています。イベントビューアでの確認でも特に異常は見当たりませんでした。プロフェッショナルの入っているノートではinstallコマンドは通るのですが、なにぶんフロッピーディスクが搭載されていないものですから。一応今からノートとの環境を比較してみたいと思います。 -- ''kame'' SIZE(10){2006-03-12 (日) 22:51:57} -自己解決しました!どうやらディレクトリの階層深く(正確には四つ下です)にtolsetを置いてしまったことが原因でした。初歩的なミスでお騒がせして申し訳ありません。皆様本当にご助言ありがとうございました。 -- ''kame'' SIZE(10){2006-03-13 (月) 00:50:09} -''kameさん:''おめでとうございます。よかったですね。(^^) がんばって進んでくださいね。 -- ''hideyosi'' SIZE(10){2006-03-13 (月) 01:12:49} -ほほうなるほど・・・。まさかそんなことで動かなくなるなんて知らなかったのでむしろ勉強になりました。多分パスが64文字を超えると起動不可能になるのだと思われます。ご報告ありがとうございました。 -- [[K]] SIZE(10){2006-03-13 (月) 01:50:27} -P87のset_paletteについて質問です。io_out8(0x03c9, rgb[0] / 4); とありますが、この/4の意味はなんですか?輝度の調節のためでしょうか? -- ''peco'' SIZE(10){2006-03-16 (木) 00:39:12} -とてもよいご質問をありがとうございます。その部分の説明を書いていませんでした(書いたつもりになっていました)。私たちは通常、輝度を00-ffつまり0〜255として扱っていますが、ビデオカードの標準状態では、輝度を0〜63の範囲で指定しなければいけないのです(63で255の明るさになる)。そのための割り算です。 -- [[K]] SIZE(10){2006-03-16 (木) 08:48:53} -割り込み処理に関して疑問があります。例えば、harib04gのint.cのinthandler21のio_out8(PIC0_OCW2, 0x61);の直後にマウスからの割り込み信号が来た場合、dataの値はどうなりますか。 -- 名無しさん SIZE(10){2006-03-16 (木) 08:51:18} -これまたよいご質問ありがとうございます。キーボードやマウスにはCPUの応対が間に合わなかったときのための小さなFIFOバッファが付いています。したがいまして、「データを読まない限り」次のデータが先にやってくることはありません。つまりデータを取りこぼしてしまうことはないのです。この例の場合、PICは割り込み監視を再開するわけですが、キーボードはPICが監視を再開したかどうかは関係なく、とにかくデータポートからデータを取ってもらえるまで、そのときのデータを保持することになります。ということで、期待通り動きます。 -- [[K]] SIZE(10){2006-03-16 (木) 11:35:04} -各種開発ツールのマニュアルなどはないのでしょうか。私が特に気になるのは、edimage -- 名無しさん SIZE(10){2006-03-19 (日) 09:51:32} -↑すいません。ボタンを押し間違えてしまったので書き直します。 各種開発ツールのマニュアルなどはないのでしょうか。私が特に気になるのは、edimgで、edimgに与えるコマンドがどのような効果を持っているのかがよくわかりません。また、naskについてですが、ソースにエラーがある場合、naskではエラー箇所は示さずソース内にあるエラーの個数のみを出力するようですが、naskを利用してエラー箇所を探すことはできないのでしょうか。 -- 名無しさん SIZE(10){2006-03-19 (日) 09:56:03} -大変よい質問をありがとうございます。しかしただ今当方が疲れておりますので、お返事は2日間くらいお待ちください。 -- [[K]] SIZE(10){2006-03-19 (日) 15:56:03} -naskのエラー個所探しについては、[[tools/nask]]にまとめたので、まずはそちらをご覧ください。それでまだ不明な点があれば、また質問してください。edimgはもうしばらくお待ちください。 -- ''K'' SIZE(10){2006-03-19 (日) 23:42:46} -edimgも書きました。[[tools/edimg]]を見てください。それでまだ不明な点があれば、また質問してください。 -- ''K'' SIZE(10){2006-03-21 (火) 17:23:16} -bootpack.cのHariMain関数を、自分の好きな関数名に変えたいです。如何すれば良いでしょうか。 -- ''M59'' SIZE(10){2006-03-24 (金) 18:34:08} -質問ありがとうございます。[[advance/NotHariMain]]にまとめましたのでご覧ください。 -- [[K]] SIZE(10){2006-03-24 (金) 20:28:15} -初版の第1刷のp19で!cons_nt.bat(!cons_9x.batmo)で開いたコンソールでrunをするとQEMUのウインドウは表示されるのですが、ウインドウの中が表示できず、進めなくなってしまいました。何かアドバイスいただけないでしょうか。環境はWinXP Home Sp2です。 -- 名無しさん SIZE(10){2006-03-28 (火) 00:44:02} -状況がよく分からないの教えてください。表示できなくて進めなくなったのは、QEMUのウィンドウでしょうか?それとも!cons_nt.batのウィンドウでしょうか? -- [[K]] SIZE(10){2006-03-28 (火) 00:51:10} -お忙しいところ済みません。 -- 名無しさん SIZE(10){2006-03-28 (火) 09:58:21} -asmhead.nas において、JMP DWORD 2*8:0x0000001b 命令で、C 言語プログラムの bootpack(HariMain) に跳べるのはなぜでしょうか? -- ''kero'' SIZE(10){2006-03-28 (火) 09:59:43} -第一版第一刷 P.171 下部に、「実際は、0x280001b 番地から実行することになります。これは、bootpack.hrb の0x1b 番地です。」となっていますが、bootpack.hrb を見ると、harib01b 等では、bootpack の先頭は、0x00000024 あたりになっていると思うのですが。 -- ''kero'' SIZE(10){2006-03-28 (火) 10:00:36} -行が分かれてしまって済みません -- ''kero'' SIZE(10){2006-03-28 (火) 10:03:38} -ご質問ありがとうございます。その疑問は、p.171の段階では分からないのですがp.461まで進むと分かるようになりますので、それまで楽しみにしていてください。 -- [[K]] SIZE(10){2006-03-28 (火) 10:40:24} -初版の第1刷のp19で!cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、表示できないウインドウはQEMUのウインドウです。タイトルバーなどは表示されますが、ウインドウ内が描画されず、他のウインドウを重ねると重ねたウインドウの表示がQEMUウインドウの中に残って再描画されない状態になってしまいます。 -- 名無しさん SIZE(10){2006-03-28 (火) 22:34:05} -まずは名無しさんへ。それはおそらくQEMUが暴走していると思われます。とりあえず暴走の理由は次の3つが考えられます。一つ目はhelloos.imgの入力ミスです。これはとりあえずCD-ROMからhelloos.imgをコピーすれば解決できます。二つ目はrun.batの入力ミスです。これもCD-ROMからコピーすれば解決できます。最後の可能性は、お使いのWindowsのバージョンです。もし95、98、Meであれば、p.1の前に書いてある文章をよく読んで、9x用のqemuが動くようにしてください。このどれでも解決しない場合は、また質問してください。 -- [[K]] SIZE(10){2006-03-28 (火) 23:51:47} -cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、hellos.ing,run.batともにCDからコピーしましたが変わりませんでした。またOSはWinXP Home SP2です。 -- 名無しさん SIZE(10){2006-03-29 (水) 00:13:23} -asmhead の JMP DWORD 2*8:0x0000001b に関して回答有難うございました。P.461 で hrb ファイルヘッダの e9 XX 00 00 00 で、 0xXX +0x20 の _HariStartup に JMP して C 言語プログラムが動作するのであろうことは理解できましたが、何故 0xXX +0x20 へ跳ぶのでしょうか? XX 番地へ跳ぶなら解るのですが。宜しくお願いします。 -- ''kero'' SIZE(10){2006-03-29 (水) 09:51:55} -P179のmemtest_subの関数の中でポインタpをvolatileで宣言すれば、アセンブラを使わず期待した結果を得ることができるのではないですか? -- ''yyusuke'' SIZE(10){2006-03-29 (水) 14:27:21} -yyusukeさん。実にその通りなのです!僕もそのことを自分で発見したときはうれしかったです。[[impressions]]にも同様の書き込みがあります。 -- [[uchan]] SIZE(10){2006-03-29 (水) 17:27:12} -名無しさんへ。似たような事例報告を1件だけ見たことがあるので、もしかしたらその人と同じ問題かもしれません。もしそうならどうやってもダメかもしれませんが、とにかく次の対策案を書きます。(1)tolsetの入っているハードディスクの空き容量がtolsetなどを入れた状態で5MB以上なのを確認してください。(2)5MB以上でもダメなら、WinNT系用のQEMUとの相性が「なぜか」悪い可能性が考えられますので、あえてWin9X用のQEMUを使うように設定を変えてみてください。その場合でも使うのは!cons_nt.batのほうで、!cons_9x.batを使ってはいけません。 -- [[K]] SIZE(10){2006-03-29 (水) 23:07:58} -keroさんへ。E9 xxxxxxxx は5バイトの相対JMP命令です。「相対」JMP命令なので、JMP先の指定は行き先を直接書くのではなく、「この命令の終わりから何バイト先か」を記述することになっています。だからそれでいいのです。 -- ''K'' SIZE(10){2006-03-29 (水) 23:10:59} -cons_nt.bat(!cons_9x.batでも)で開いたコンソールでrunをするとウインドウの中が表示できない件ですが、HDDは5MB以上あります。Win9x用のQEMUの設定とはどのように行うのでしょうか。どっちにしても、run.batするのであれば同じQEMUが起動するように思うのですが違うのでしょうか。run.batでqemu.exeの起動オプションを変更するのでしょうか。たびたび申し訳ありませんがよろしくお願いします。 -- 名無しさん SIZE(10){2006-03-30 (木) 21:29:54} -名無しさんへ。〜の件と何度も書くのは明らかにムダなので、できれば適当な仮名を名乗ることにしていただきたいところです。さて本題ですが、同じrun.batであっても違うQEMUが起動するようになります。Win9X用のQEMUを使う方法については、上記の 03-28 23:51:47 でお答えしたとおり、p.1の前のページの説明を参照してください。 -- [[K]] SIZE(10){2006-03-30 (木) 22:51:17} -QEMUが起動しない件ですが、理解できず申し訳ありませんでした。今理解できました。p.1の説明のようにやってみましたが、結果は変わりませんでした。 -- ''J'' SIZE(10){2006-03-30 (木) 23:29:08} -Jさんへ。そうでしたか、Win9X用でもダメでしたか・・・。大変申し訳ないことに、筆者としては万策尽きてしまった感があります。とりあえずQEMUがなくても開発そのものはできますし、フロッピーディスクやCD-RW等を併用すれば実機テストができます。またもしかしたら他のエミュレータならうまくいくのかもしれません。ただ、いずれにせよ「make run」のお手軽な開発ではなくなってしまうので、申し訳ないです。これからいろいろ調べて[[faq/qemu]]にまとめますので、1週間後くらいにこのページをチェックしてみてください。まずはここまでいろいろと試してくださりありがとうございました。 -- [[K]] SIZE(10){2006-03-31 (金) 00:02:25} -Jさんへ。QEMU以外のエミュレータで、[[VMware Player:http://www.vmware.com/products/player/]]というのが有ります。これは、VMware Workstationという有名なエミュレータの機能限定版の様な物で、無料です。エミュレートするときに必要な仮想マシンの設定ファイルは他の人に作ってもらう必要がありますが、たぶんそのときになったら僕が作るでしょう。 -- [[uchan]] SIZE(10){2006-03-31 (金) 14:34:00}
テキスト整形のルールを表示する